Stránka: 1 z 1
| [ Príspevkov: 16 ] | |
| Autor | Správa |
|---|
Registrovaný: 27.11.08 Prihlásený: 30.01.20 Príspevky: 630 Témy: 98 | 98 Bydlisko: Veľký Krtíš... |
Dobrý deň,
mam pre niekoho asi primitivny problem:
Citácia: Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /amd/10.0.0.24/home/data/html/domena.sk/public_html/_sub/objednavka/objednavka.php on line 23
riadok 23 je riadok kde zacina VALUES
Kód: $sql = mysql_query(" INSERT INTO tabulka (obchodnemeno, street, psc, city, land, ico, icodph, predcislie, ucet, banka, kam_street, kam_city, kam_psc, kam_land, mail, tel, vybavene, ip) VALUES($_POST['obchodnemeno'], $_POST['street'], $_POST['psc'], $_POST['city'], $_POST['land'], $_POST['ico'], $_POST['icodph'], $_POST['predcislie'], $_POST['ucet'], $_POST['banka'], $_POST['kam_street'], $_POST['kam_city'], $_POST['kam_psc'], $_POST['kam_land'], $_POST['mail'], $_POST['tel'], 'nie', $ip) ");
Ďakujem za pomoc.
|
|
Registrovaný: 30.05.09 Prihlásený: 30.05.09 Príspevky: 56 Témy: 0 | 0 |
v prvom rade to takto určite nerob, pretože vôbec neošetruješ nebezpečný vstup.. (vkladáš do DB priamo čo ti naservíruje užívateľ - teda v prípade, ak si ich nikde neošetril, čo sa z tohto skriptu nedá vidieť, ale radšej to spomeniem). A po druhé, to isté sa dá napísať jednoduchším spôsobom:
Kód: $sql = mysql_query("INSERT INTO tabulka SET obchodnemeno='$premenna', street='', .... ");
podľa mňa je to prehľadnejšie, a výsledok je rovnaký...
inak to, čo ti spôsobuje problémy pri tom query je zápis premenných. Buď ošetri tie premenné a pri tom ich vlož do klasických, čiže nie POST a tak vkladaj, alebo skús potom tie premenné napísať v štýle $_POST[nazov], čiže bez vnútorných úvodzoviek.. to by tiež mohlo fungovať.
V každom prípade daj vedieť či to už ide 
|
|
Registrovaný: 26.11.06 Prihlásený: 09.10.24 Príspevky: 4118 Témy: 319 | 319 Bydlisko: HE/BA |
walther, nevyzerá to, že sa vyznáš - Tvoj spôsob na vkladanie funguje pri úprave, pri vkladaní zrejme nie(neštudoval som to ale pochybujem, že to ide.) A nikdy si nepočul o takom, že string musí byť vždy v úvodzovkách? Myslím, že tvoje rady mu veľmi nepomôžu.
NickVK, skús si to rozdeliť na viacero riadkov a podľa toho zistíš kde je chyba a keď nebudeš vedieť tak hoď sem po rozdelení, pretože teraz nevidím nikde chybu.
|
|
Registrovaný: 30.05.09 Prihlásený: 30.05.09 Príspevky: 56 Témy: 0 | 0 |
flety, prosím ťa, najskôr to vyskúšaj, potom posudzuj či to ide 
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14571 Témy: 66 | 66 Bydlisko: Žilina |
to prvé s tým insertom ide určite, istý si nie som jedine pri tom spôsobe bez úvodzoviek
_________________ C#, PHP, ... |
|
Registrovaný: 31.05.09 Prihlásený: 02.06.17 Príspevky: 562 Témy: 37 | 37 Bydlisko: BegyBen |
Odporucam si naprv ulozit Tvoje informacie dopremennych a nie ich rovno hadzat do databazy neoserene. Su to zle zvyky urcitych "programaorov" odktorych si to asi obkukal.
Takze najprv si to hod do premennych. Rada citlive info by som cez globalnu premennu POST nedaval a oseri si to na HTML tagy napr. regularnym vyrazom a samozrejme podla chuti.
Potom ukladaj ako spominal kolega waltherold
Kód: $sql = mysql_query("INSERT INTO tabulka SET obchodnemeno='$premenna', street='', .... ");
|
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 | 96 |
Snacker: riadny hlod ... ošetrovať je správne, ale kľudne to môžeš ošetrovať už v POST aspoň budeš mať v premenných väčší poriadok.
NickVK: tvoje SQL by malo vyzerať takto (ak som sa nikde nepomýlil).
Kód: $sql = mysql_query(" INSERT INTO tabulka (obchodnemeno, street, psc, city, land, ico, icodph, predcislie, ucet, banka, kam_street, kam_city, kam_psc, kam_land, mail, tel, vybavene, ip) VALUES( '".$_POST['obchodnemeno']."', '".$_POST['street']."', '".$_POST['psc']."', '".$_POST['city']."', '".$_POST['land']."', '". $_POST['ico']."', '". $_POST['icodph']."', '". $_POST['predcislie']."', '".$_POST['ucet']."', '".$_POST['banka']."' '". $_POST['kam_street']."', '".$_POST['kam_city']."', '".$_POST['kam_psc']."', '". $_POST['kam_land']."', '".$_POST['mail']."', '". $_POST['tel']."', 'nie','".$ip."') ");
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14571 Témy: 66 | 66 Bydlisko: Žilina |
tominator, vezmime si prípad viacerých programátorov v jednom teame a nejaký zložitejší program... keď sa pozrieš na ten skript spätne, vieš si byť 100% istý, že je tá premenná $_POST ošetrená? tým, že uložíš ošetrenú hodnotu do lokálnej premennej skript síce o dačo spomalíš (naozaj to neucítiš), ale budeš mať v každom prípade istotu, že sa jedná o lokálnu premennú, ktorá ak obsahuje hodnotu, je na 100% ošetrená... poznám x ľudí, čo tiež takto hovorili "veď to netreba, to je zbytočné" atď.. a potom sa zabudlo na maličkosť a ...  ale však koľko ľudí, toľko chutí
inak by ma seriózne zaujímalo, ako vyzerá taký "poriadok v premenných", keď si nemôžeš byť hneď istý, či to už ošetrené je alebo nie
samozrejme netreba zabúdať na to, že zápis $premenna je o poznanie kratší ako $_POST['premenna']
_________________ C#, PHP, ... |
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 | 96 |
walther:  nechcem ťa uraziť, neber to v zlom, ale to nesvedčí o mojom neporiadku ale o tvojej zaostalosti.
Kontrola prebieha automaticky. Pozri si napr. Často používané scripty a stenleyho užitočnú funkciu Safety. Jednoducho do sckriptu sa ti ani reálne nedostane hodnota, ktorá by nebola ošetrená. Preto si nepotrebujem pamätať ďalších xy premenných ale pracujem s originálom. Túto automatickú bezpečnosť môžeš kedykoľvek zvýšiť alebo upraviť. Môžeš založiť na Blackliste i Whiteliste, jednoducho vyrobíš si filter.
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14571 Témy: 66 | 66 Bydlisko: Žilina |
dobre, ja som zaostalý, ty si king
ale v poriadku, keď berieš za jednoduchšie písať 100x $_POST['premenna'] miesto $premenna, tak budiž. Česť vidieť tvoje výtvory som už mal...
_________________ C#, PHP, ... |
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 | 96 |
Myslím, že nemal  (Teda nie moderné) Je tu pár ľudí na fóre, ktorý tú česť majú a ver, že mi dosvečia, že práca je efektívna 
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
drzte sa temy! ak nemate k veci co povedat, neprispievajte!
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 | 96 |
Ja rad pouzivam sprintf() Kód: $query = sprintf("INSERT INTO tabulka (obchodnemeno, street, psc, city, land, ico, icodph, predcislie, ucet, banka, kam_street, kam_city, kam_psc, kam_land, mail, tel, vybavene, ip) VALUES('%s','%s','%s','%s','%s','%s','%s')", $_POST['premenna1'], $_POST['premenna2']......)
p.s. máš tu sql injection ako krava
http://en.wikipedia.org/wiki/SQL_injection
|
|
Registrovaný: 27.11.08 Prihlásený: 30.01.20 Príspevky: 630 Témy: 98 | 98 Bydlisko: Veľký Krtíš... |
Ďakujem, kod ktory mi dal Tominator uz nechadze chybu ale ked overujem ci vsetko prebehlo ok tak mi if hodi false
tzn: po odoslani dat z formulara vypise*:
Kód: Column count doesn't match value count at row 1 Pri komunikácií s databázou sa vyskytla chyba. Prosím skúste to znova. Ak sa problém zopakuje kontaktujte administrátora.
aby ste nepovedali ze neviem pocitat alebo ze som slepy tak:
Ďakujem
*aj keď vypišem stlpce kam to ma dat
|
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 | 96 |
za '".$_POST['banka']."' ti (mi) chýba čiarka
|
|
Registrovaný: 27.11.08 Prihlásený: 30.01.20 Príspevky: 630 Témy: 98 | 98 Bydlisko: Veľký Krtíš... |
Ďakujem, už všetko funguje  .
|
|
Stránka: 1 z 1
| [ Príspevkov: 16 ] | |
|