[ Príspevkov: 16 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
INSERT INTO

Registrovaný: 27.11.08
Prihlásený: 08.07.17
Príspevky: 634
Témy: 98 | 98
Bydlisko: Veľký Krtíš...
NapísalOffline : 30.05.2009 22:24 | INSERT INTO

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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.05.09
Prihlásený: 30.05.09
Príspevky: 56
Témy: 0 | 0
NapísalOffline : 30.05.2009 22:38 | INSERT INTO

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 :)


Offline

Užívateľ
Užívateľ
INSERT INTO

Registrovaný: 26.11.06
Prihlásený: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
NapísalOffline : 30.05.2009 22:54 | INSERT INTO

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.


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.05.09
Prihlásený: 30.05.09
Príspevky: 56
Témy: 0 | 0
NapísalOffline : 30.05.2009 22:58 | INSERT INTO

flety, prosím ťa, najskôr to vyskúšaj, potom posudzuj či to ide :)


Offline

Skúsený užívateľ
Skúsený užívateľ
INSERT INTO

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14691
Témy: 66 | 66
Bydlisko: Žilina
Vek: 30
NapísalOffline : 30.05.2009 23:10 | INSERT INTO

to prvé s tým insertom ide určite, istý si nie som jedine pri tom spôsobe bez úvodzoviek


_________________
C#, PHP, ...
Offline

Užívateľ
Užívateľ
INSERT INTO

Registrovaný: 31.05.09
Prihlásený: 02.06.17
Príspevky: 562
Témy: 37 | 37
Bydlisko: BegyBen
NapísalOffline : 31.05.2009 1:33 | INSERT INTO

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='', .... ");


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3991
Témy: 96 | 96
NapísalOffline : 31.05.2009 16:02 | INSERT INTO

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."')
");


Offline

Skúsený užívateľ
Skúsený užívateľ
INSERT INTO

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14691
Témy: 66 | 66
Bydlisko: Žilina
Vek: 30
NapísalOffline : 31.05.2009 16:21 | INSERT INTO

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, ...
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3991
Témy: 96 | 96
NapísalOffline : 31.05.2009 22:02 | INSERT INTO

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.


Offline

Skúsený užívateľ
Skúsený užívateľ
INSERT INTO

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14691
Témy: 66 | 66
Bydlisko: Žilina
Vek: 30
NapísalOffline : 31.05.2009 22:11 | INSERT INTO

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, ...
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3991
Témy: 96 | 96
NapísalOffline : 31.05.2009 22:15 | INSERT INTO

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 :)


Offline

Správca fóra
Správca fóra
INSERT INTO

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 31.05.2009 22:18 | INSERT INTO

drzte sa temy! ak nemate k veci co povedat, neprispievajte!


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Skúsený užívateľ
Skúsený užívateľ
INSERT INTO

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1586
Témy: 96 | 96
NapísalOffline : 01.06.2009 11:39 | INSERT INTO

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


Offline

Užívateľ
Užívateľ
INSERT INTO

Registrovaný: 27.11.08
Prihlásený: 08.07.17
Príspevky: 634
Témy: 98 | 98
Bydlisko: Veľký Krtíš...
Napísal autor témyOffline : 01.06.2009 16:30 | INSERT INTO

Ď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:
INSERT INTO

Ďakujem

*aj keď vypišem stlpce kam to ma dat


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3991
Témy: 96 | 96
NapísalOffline : 01.06.2009 17:09 | INSERT INTO

za '".$_POST['banka']."' ti (mi) chýba čiarka


Offline

Užívateľ
Užívateľ
INSERT INTO

Registrovaný: 27.11.08
Prihlásený: 08.07.17
Príspevky: 634
Témy: 98 | 98
Bydlisko: Veľký Krtíš...
Napísal autor témyOffline : 01.06.2009 17:15 | INSERT INTO

Ďakujem, už všetko funguje :).


 [ Príspevkov: 16 ] 


INSERT INTO



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

SQL INSERT INTO SELECT

v Databázy

1

151

18.10.2015 15:48

BX

V tomto fóre nie sú ďalšie neprečítané témy.

vynechanie tabulky pri INSERT INTO

v PHP, ASP

5

231

02.03.2008 21:56

max-m

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie.

K:/ Into the wild (Utek do divočiny)

v Kúpim

1

133

29.11.2014 9:06

Lessik

V tomto fóre nie sú ďalšie neprečítané témy.

Creative Live! and Audigy 24bit into X-Fi Xtreme Audio drive

v Zvuk

2

341

22.08.2009 18:40

Glu2m

V tomto fóre nie sú ďalšie neprečítané témy.

mnohonásobný insert

v PHP, ASP

2

226

26.04.2010 2:39

Feko

V tomto fóre nie sú ďalšie neprečítané témy.

Insert ID

v Databázy

4

529

21.06.2009 11:26

neopagan

V tomto fóre nie sú ďalšie neprečítané témy.

Linked list - insert

v Assembler, C, C++, Pascal, Java

6

242

25.05.2012 10:18

Fico

V tomto fóre nie sú ďalšie neprečítané témy.

Veľky insert - problem

v Databázy

8

453

06.05.2009 14:54

Hue

V tomto fóre nie sú ďalšie neprečítané témy.

TinyMCE Insert Link - otazka

v Ostatné

1

277

09.06.2010 14:24

Revolution

V tomto fóre nie sú ďalšie neprečítané témy.

Insert correct SIM card

v Mobilné zariadenia

4

812

15.12.2009 21:45

dom34

V tomto fóre nie sú ďalšie neprečítané témy.

[SQL] Oracle - vnoreny INSERT vo Fukcii

v Databázy

15

941

13.05.2010 13:04

coldak

V tomto fóre nie sú ďalšie neprečítané témy.

Po zapnutí PC naskočí(disk boot failure please insert sy.

v Operačné systémy Microsoft

2

509

13.08.2008 18:09

adic

V tomto fóre nie sú ďalšie neprečítané témy.

Po zapnutí PC naskočí(disk boot failure please insert sys

v Operačné systémy Microsoft

1

479

16.08.2008 20:37

Gyrxiur

V tomto fóre nie sú ďalšie neprečítané témy.

insert - co sa deje s stlpcom "id"

v Databázy

7

464

26.12.2010 10:14

robertg



© 2005 - 2017 PCforum, edited by JanoF