Autor | Zpráva | ||
---|---|---|---|
Petr789 Profil * |
Zdravím, s PHP začínám, mám script na zpracování dat z formuláře a nemůžu ani za boha přijít na to kde mám chybu.
$sql_zapis = "INSERT INTO posts (category,text) VALUES ('$_POST["kategorie"]','$_POST["text"]')"; mysqli_query ($db_spojeni, $sql_zapis); Vždy mi to při zpracování vyhodí chybu - Parse error: parse error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\PHPWebServer\http_docs\01\odeslani.php on line 30 (řádek 30 je ten s $sql_zapis...) Vše ostatní jsem zkoušel a funguje - POST OK, podmínky co se vykonají před tímhle kódem OK, spojení s DB funguje, jen mi to prostě nejde zapsat do databáze a vyhodí to výše zmíněnou chybu. Pro pořádek ještě napíšu, že se tam odesílá celkem 9 sloupců, tedy ne jen ty dva, to jsem upravil aby to tady bylo přehlednější, ale to by snad nemělo mít vliv. Asi je tam někde chyba, ale prostě nemůžu přijít na to kde. Nepozná někdo ze zkušenějších nějakýho toho broučka? :) Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
|
||
Keeehi Profil |
#2 · Zasláno: 15. 2. 2010, 19:27:47 · Upravil/a: Keeehi
Takto to je správně:
$sql_zapis = "INSERT INTO posts (category,text) VALUES ('".$_POST["kategorie"]."','".$_POST["text"]."')"; |
||
Radek9 Profil |
#3 · Zasláno: 15. 2. 2010, 19:28:31
Uvozovky v uvozovkách…
$sql_zapis = "INSERT INTO posts (category,text) VALUES ('".$_POST["kategorie"]."','".$_POST["text"]."')"; |
||
Petr789 Profil * |
#4 · Zasláno: 15. 2. 2010, 19:31:14
Ještě doplnění, vyzkoušel jsem odesílat i tenhle kus (tedy konkrétně přesně tady tu verzi ořezanou jen na dva sloupce místo devíti) a chybu to háže stejnou, takže je zcela jistě nějaká chyba tady :)
|
||
Keeehi Profil |
#5 · Zasláno: 15. 2. 2010, 19:33:24
Petr789:
Nechybí ti tak náhodou na předchozím řádku středník? |
||
Petr789 Profil * |
#6 · Zasláno: 15. 2. 2010, 19:38:58
Aaa, díky, funguje to. Přesně jak jsem si myslel, chyba v uvozovkách, těčkách, střednících a tak, s tím ještě trochu bojuju, no to se časem podá :)
|
||
Petr789 Profil * |
#7 · Zasláno: 15. 2. 2010, 19:40:30
Jinak co si myslel s tím "Dej si ale pozor na ochranu!". Je tam něco co by se dalo bezpečnostně udělat líp? Stačí jen rámcově a já už si to najdu na internetu.
|
||
Keeehi Profil |
#8 · Zasláno: 15. 2. 2010, 19:43:58
nemáš ošetřené proměnné $_POST["cokoliv"]; Tyto proměnné se dají lehce podvrhnout, takže je musíš předem ošetřit. Čti třeba tu.
|
||
fuckin Profil |
#9 · Zasláno: 15. 2. 2010, 19:45:49
|
||
Petr789 Profil * |
#10 · Zasláno: 15. 2. 2010, 20:23:14
Ok, našel jsem si tenhle článek kde je to dobře vysvětleno :) Pokud tomu teda dobře rozumím, tak řešením by mělo být, když do VALUES budu psát místo tohoto
'".$_POST["text"]."' tohle '".mysql_real_escape_string($_POST["kategorie"])."' Což by mělo před provedením příkazu s databází upravit nebezpečný znaky na neškodnou podobu. Správně? |
||
Časová prodleva: 14 let
|
0