[ sekvoja @ 27.11.2006. 14:53 ] @
Pozdrav, imam problem sa unosom navodnika (") u mysql bazu. Na php.net-u sam nasao kod koji bi trebalo to da sredjuje:

$encoded=htmlspecialchars(str_replace('\\', '', $_POST[contributed_text]), ENT_QUOTEA);

To savrseno radi u lokalu, ali na netu javlja sledeci error:

Warning: htmlspecialchars() expects parameter 2 to be long, string given in /home/content/*/*/html/php_uploads/contribute_wish.php on line 180

U tom redu nalazi se upravo htmlspecialchars funkcija.
Ako postoji bolji nacin za sredjivanje pomenutog problema, bio bih zahvalan za savet. Pozz...
[ Nemanja Avramović @ 27.11.2006. 15:02 ] @
Ček ček ček... a da probaš addslashes pre upisa u bazu i stripslashes pri čitanju?
[ alkal @ 27.11.2006. 15:14 ] @
mysql_real_escape_string()
[ Jezdimir Lončar @ 27.11.2006. 23:56 ] @
Kad ima potrebe koristim add/stripslashes f-je...
[ sekvoja @ 28.11.2006. 02:12 ] @
Ja sam samo uklonio ENT_QUOTEA i sada sljaka OK. Nista mi nije jasno... Probacu i te vase solucije iako sam slab sa php-om, valjda ne moze biti tesko.

Nego pada mi na pamet drugi problem: Ako neko zlonamerno unese u formu recimo echo '<div>bla bla bla</div>, php ce to obraditi doslovce i napravice taj div, jel tako? Mislim neko moze tako da potpuno zezne koncepciju sajta. Koja je zastita od toga? Pozz...
[ Mr. Jack @ 28.11.2006. 08:11 ] @
> Nego pada mi na pamet drugi problem: Ako neko zlonamerno unese u
> formu recimo echo '<div>bla bla bla</div>, php ce to obraditi
> doslovce i napravice taj div, jel tako? Mislim neko moze tako da
> potpuno zezne koncepciju sajta. Koja je zastita od toga? Pozz...

Ako se tako nešto unese u formu ne može da ti zezne ništa pošto se to prebacuje u promenljivu (osim ako ne izvršiš to sa eval). Ako hoćeš da izbaciš sve html i php tagove iz stringa pogledaj funkciju strip_tags.

Poslušaj ostale savete i koristi add/strip slashes kada upisuješ i vadiš podatke iz baze.
[ Jezdimir Lončar @ 28.11.2006. 09:07 ] @
[ netačno rešenje ]

[Ovu poruku je menjao Neohacker dana 29.11.2006. u 10:02 GMT+1]

[Ovu poruku je menjao Nemanja Avramović dana 29.11.2006. u 13:04 GMT+1]
[ Nemanja Avramović @ 28.11.2006. 11:24 ] @
Citat:
sekvoja: Nego pada mi na pamet drugi problem: Ako neko zlonamerno unese u formu recimo echo '<div>bla bla bla</div>, php ce to obraditi doslovce i napravice taj div, jel tako? Mislim neko moze tako da potpuno zezne koncepciju sajta. Koja je zastita od toga? Pozz...


Ako ti neko u bazu upiše: <div>bla bla bla</div>, ili još gore: <script>alert(document.cookie);</script> i ti to echo-uješ, taj HTML kod će se zaista izvršiti!
Dobro rešenje za ovo je korišćenje funkcije htmlspecialchars pre ispisa na stranicu kako bi se uneti kod ispisao takav kakav je, ili korišćenje funkcije strip_tags kako bi se skinuli tagovi iz teksta (onda bi <div>bla bla bla</bla> postalo "bla bla bla" a <script>alert(document.cookie);</script> bi postalo "alert(document.cookie);".
[ sekvoja @ 28.11.2006. 15:39 ] @
strip_tags sasvim lepo resava ovaj problem, hvala na odgovoru...
[ Jezdimir Lončar @ 29.11.2006. 09:01 ] @
Izgleda naša greška...
Ja nikad nisam to probao...
Pokuša ću to kad budem na rač.