Version complète: sur le forum Webmaster Hub : ereg et retour chariot
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
aodot
Bonjour,

Afin de sécuriser mes formulaire PHP je désire détecter les \r et \n mais la fonction eregi ne fonctionne pas.

if (eregi("\r",$from) || eregi("\n",$from)){
die("Why ?? sad.gif");
}

Auriez vous une solution a ce soucis ? A mon avis c'est le \ qui pose problème car il détecte les r et les n et non les \n et \r.

Merci par avance
kazhar
Il faut mettre deux \
CITATION
if (eregi("\\r",$from) || eregi("\\n",$from)){


Par ailleurs les expressions régulières posix tendent à ne plus être supportées (eregi et dérivés n'existeront plus dans PHP6).
Je te conseille fortement de passer dès maintenant aux expressions perl avec preg_match
aodot
Bnjour et merci pour votre réponse,

J'ai essayé avec les \\ mais ça détecte toujours les r et les n et non les \r et les \n.

J'ai donc essayé avec la fonction preg_match :

CODE
if (preg_match("/\r/i",$mdp) || preg_match("/\n/i",$mdp) || preg_match("/\r/i",$pseudo) || preg_match("/\n/i",$pseudo))
{
die("Erreur !!");
}


J'ai indiqué le i pour que ce ne soit pas sensible à la casse.

Mais cela ne détecte plus rien. Bizarre non ?

Edit 10h22 :

Et avec cette méthode rien n'y fait non plus ça ne détecte pas les \n et \r :

CODE
if ((stristr($mdp, "\n")) || (stristr($mdp, "\r")) || (stristr($pseudo, "\n")) || (stristr($pseudo, "\r")) )
{
die("Erreur !!");
}
michmuch51
salut les hubiens,

me suis un peu cassé la tête cette nuit avec ça je suis parti sur cette base:
str_replace("\n",' ',$expression);

chez moi ça roule comme ça, c'est surtout à ne pas oublier l'histoire des guillemets wink.gif
aodot
re-bonjour,

J'ai trouvé la solution :

CODE
if ((stristr($nom, "\\n")) || (stristr($nom, "\\r")) || (stristr($email, "\\n")) || (stristr($email, "\\r")) || (stristr($question, "\\n")) || (stristr($question, "\\r"))   )
{
die("Erreur !!");
}


Si ça peut aider, en tout cas ça ne résoud pas mon problème de backdoor sur mon serveur.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.