[ pela @ 05.02.2007. 17:44 ] @
php5 i mysql5.02
Na serveru mi je ukljucen magic quote. "get_magic_quotes_gpc=1"
Znaci da na svakom POST-u i GET-u dodaje backslash na navodnike... Do ulaza u bazu drzi backslash a zatim sve ubacuje u bazu normalno.. Znaci u bazi nisu sa backslash-om.

Kad ih vadim iz baze u neki html input tag.. na primer text ako ne stavim u value htmlspechar.. kako bese
onda nece da mi prikaze vrednost polja. Rusi mi kod.

Code:

echo "
 ...pa ide tu nesto....
...<input type='text' value = '".htmlspecialchars("$POST['$nekoPoljeIzBaze'], ENT_QUOTES); 
";


I to je OK!! Ovako mi radi!! Medjutim ako to stavim na neki link
Code:
 ... [url=http://www.asdasda.php?nekaPromenljiva=htmlspecialchars(]www.asdasda.php?nekaPromenljiva=htmlspecialchars([/url]"$POST['$nekoPoljeIzBaze'], ENT_QUOTES)) .... 

pa to sa linka prebacim na neku drugu stranu gde to opet treba da vratim u bazu nece da radi !!!

Kako da ih vadim iz baze i kako opet da ih vracam nazad?

Pozdrav svima
Pela

[ Zokii1983 @ 06.02.2007. 04:56 ] @
pa zasto jednostavno neiskljucis magic quotes u skripti??


ne na serveru nego samo na forumu ili sta vec imas..
[ pela @ 06.02.2007. 07:29 ] @
Hmmm... pa zasto da ih iskljucim?

Naprotiv to mi odgovara... ne koristim nigde i ne zamaram se sa addslash-om u svakom POST-u ili GET-u...
Meni je samo problem kako na koji nacin, da ih opet vratim nazad... u bazu.

Iz baze ih vadim pomocu htmlspecialchars() zato sto mi dodatni navodnik rusi kod.
(kad iz baze izadje bas navodnik ' a ne &#039).

Mozda bih trebao ipak da ih pre unosa u bazu pretvorim u &#039 ??!
Pa da ih vadim na input ili link ili bilo koji output direktno ?



[ pela @ 08.02.2007. 06:58 ] @
Konacno...
Zacarani krug resen.

Znaci ovako, pod uslovom da vam je na serveru ukljucen
get_magic_quotes_gpc = 1


Sve sto vam putem POST-a ili GET-a ide u bazu ide vam do baze sa slash-om \
U bazi navodnik ili bilo koji drugi specijalni karakter ulazi bez slash-a.


Kad se vadi iz baze za prikaz ili kao vrednost nekog inputa mora se prikazati sa funkcijom
htmlspecialchars($whilePromenljiva['imePOlja'], ENT_QUOTES) (ovo vazi samo za navodnike)
(moze i sa htmlentities() u kom slucaju svi specijalni znaci ekvivalentno dobijaju svoju html zamenu/karakter)


Zatim kad se zavrsi promena (na primer u input-u) vraca se nazad
gde se prihvata pomocu promenljive $promenljiva=stripslashes($_POST['imeInputa']);
Koristim stripslashes zato sto magic po default-u opet stavlja \


a zatim se ubacuje u SQL pomocu mysql_real_escape_string($promenljiva)
mysql_query("UPDATE baza SET polje='".mysql_real_escape_string($promenljiva)."' WHERE... ");



Valjda ce ovo biti nekom od koristi...
pOzdr.
Pela