problema addslashes

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

nemo
Junior Member
Mesaje: 31
Membru din: Mar Mai 04, 2004 2:22 pm

problema addslashes

Mesajde nemo » Vin Oct 08, 2004 5:13 pm

am si eu un formular cu 2 cimpuri sa zicem. unul de tip input text(subiect), si celalalt textarea(corpul mesajului) exact ca cel din phpromania de pe forum.
dai 'Trimite'. daca nu ai scris nimic in subiect apare mesajul "Va rugam completati la subiect", iar cimpul textarea va contine datele introduse anterior(le retin in value=<?=$_POST['mesaj']?>).
problema este ca daca am ex: I'll be back in cimpul textarea ce imi va aparea acum in cimpul textarea este I\'ll be back, daca mai dau odata 'Trimite' fara sa mai modific nimic si din nou cu cimpul subiect necompletat imi va aparea i\\\'ll ba back , inca un Trimite si 7 backslash-uri imi vor aprea.
eu nu fac nici un fel de verificare a textului(ce este scris; fac verif doar daca s-a scris sau nu) DOAR in momentul introducerii in baza de date. atunci am:

$subiect = htmlspecialchars(trim($subiect));
$mesaj = htmlspecialchars(trim($mesaj));
if (!get_magic_quotes_gpc()){
$subiect = addslashes(($subiect);
$mesaj = addslashes($mesaj);
}
dar asta deja userul nu o mai vede... si nu are nci o legatura.

in manual scrie:
Do not use addslashes() on strings that have already been escaped with magic_quotes_gpc as you'll then do double escaping. The function get_magic_quotes_gpc() may come in handy for checking this.
eu fac verificarea, si chiar daca tai codul de mai sus, chiar daca il mut la inceputul scriptului sau la sfirstit, imi face acelasi lucru. iar eu vreau sa-l fac sa mearga indiferent de directivele din php.ini

mersi



Avatar utilizator
ExcalIbvr
Senior Member
Mesaje: 1105
Membru din: Dum Mai 02, 2004 10:56 pm
Localitate: Oradea
Contact:

Mesajde ExcalIbvr » Sâm Oct 09, 2004 1:51 am

Exista si functia stripslashes()



nemo
Junior Member
Mesaje: 31
Membru din: Mar Mai 04, 2004 2:22 pm

stripslashes() face ceva ciudat

Mesajde nemo » Sâm Oct 09, 2004 1:25 pm


svarga15
PHPRomania Supporter
Mesaje: 9
Membru din: Lun Oct 11, 2004 12:52 pm
Contact:

Alternativa addslashes()

Mesajde svarga15 » Lun Oct 11, 2004 12:59 pm

Pt anulare efect magic quotes poti folosii functiile urmatoare :

function array_stripslashes(&$array)
{

foreach ($array as $key=>$value)
{
if (is_array($array[$key]))
{
stripslashes_array($array[$key]);
}
else
{
$array[$key] = stripslashes($array[$key]);
}
}
}


set_magic_quotes_runtime(0);

if (get_magic_quotes_gpc ())
{
if ( version_compare("4.1.0", phpversion(), "<") )
{
array_stripslashes($_POST);
array_stripslashes($_GET);
array_stripslashes($_COOKIES);
}
array_stripslashes($HTTP_POST_VARS);
array_stripslashes($HTTP_GET_VARS);
array_stripslashes($HTTP_COOKIES_VARS);
}



Pt afisarea intr-un textarea sa input poti folosii functia :



function unformatUserInputText( $text ) {

$text = str_replace("&lt;", "<", $text);
$text = str_replace("&gt;", ">", $text);
$text = str_replace(" &nbsp;"," ",$text);
$text = str_replace("<br />","",$text);

return($text);
}


Succes ;)


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 20 vizitatori