probleme avec ereg

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme avec ereg

par hakazizi » 13 avr. 2008, 11:32

et voila cela fonctionne tres bien pour recupere l'inscription a une news-letter.
mais reste un petit soucis c'est la loi informatique et liberté je sait pas trop ajouté un lien qui supprimerais l'adresse l'adresse mail avec un code en get et les deux ensemble permettebt la suppression de l'adresse mail.
si vous avez une meilleur idée.
j'ai trouver la syntaxe preg_match() sur php.net mais il n'yaurait pas un moyens de simplifier tous cela?
<?php
include"php/connectionbd.php";
if(preg_match("/^([A-Za-z0-9]([A-Za-z0-9_-]*\.?[A-Za-z0-9])*)(\+[A-Za-z0-9]+)?@([A-Za-z0-9]([A-Za-z0-9-_]*[A-Za-z0-9])*\.)*([A-Za-z0-9]([A-Za-z0-9-_]*[A-Za-z0-9]+)*)\.[A-Za-z]{2,6}$/",$_POST['nl']) OR $POST['nl']!=NULL)
{ 
mysql_query("INSERT INTO nl (mail) VALUES ('$nl')") OR die('vous &ecirc;tes d&eacute;j&agrave inscrit avec cette adresse mail');
echo'vous &ecirc;tes bien inscrit &agrave; notre news-letter<br>
avec l'adresse mail: '.$nl.'';
}
else
{ 
echo'Votre adresse mail n'est pas du bon format o&ugrave; le champs est vide';
}
?>

par zeus » 13 avr. 2008, 10:39

D'accord avec truc sur le fait qu'il faut utiliser preg_match() par rapport à ereg (qui, soit dit en passant, va disparaitre avec l'arrivée de PHP6)

Sinon, ereg() retourne soit un entier, soit false. Essaye de vérifier cette valeur de retour avec un var_dump() pour savoir s'il s'agit bien d'une erreur dans l'ER ;)

par Truc » 13 avr. 2008, 00:01

ton code correspond à un "if() else" et non2 if()... dans la logique tout du moins

Refait un test avec preg_match()... que des avantages

probleme avec ereg

par hakazizi » 12 avr. 2008, 23:29

Le probleme que j'ai c'est que ereg() ne filtre rien.
il verifie seulement que le champs n'est pas vide.
ce petit bout de code fonctionne tres bien sous easyphp(php4)
mais pas chez celeonet(php5)
qui ne m'affiche le message d'erreur que si le champs nl est vide.
que ce soit dans le bon format ou pas sa passe c'est d'autant plus embettant que si je met un <script>code_malveillant</script> sa passe
et si je met une adresse mail valide sa passe aussi.
je ne comprend pas ou est mon erreur.
j'ai lu et relu le tuto ereg(); mais je n'ai pas trouvé de solution.
if(ereg("[A-Za-z0-9._-]{1,100}@[A-Za-z0-9._-]{1,100}.[a-z]{2,4}",$_POST['nl']))
{ 
$nl=$_POST['nl'];
 }
if($nl==NULL)
{ echo'Votre adresse mail n'est pas du bon format o&ugrave; le champs est vide'; exit(); }
merci.