Recherche de caractère precis dans une chaine de caractère

Résolu
cs_darkdog85 Messages postés 7 Date d'inscription jeudi 2 avril 2009 Statut Membre Dernière intervention 6 avril 2011 - 9 déc. 2009 à 16:48
cs_darkdog85 Messages postés 7 Date d'inscription jeudi 2 avril 2009 Statut Membre Dernière intervention 6 avril 2011 - 9 déc. 2009 à 18:26
Voila je cherche a scanner la chaine de caractère email, pour savoir si le @ et présent. Bien sur, viendra les espaces, le "." etc mais je n'arrive pas a trouver la fonction qui me faudrait. j'ai trouver "ereg" mais elle est obselete.

voici le bout de code :

<?php
if (ereg("@",$_POST['email']))
{
return ($_bouleen = true);
}
else
{
return ($_bouleen = false);
}
?>
<?php
if ($_POST['email'] =="")
{
echo " L'E-mail DOIT être rempli

";
}
elseif ($_bouleen = false)
{
echo " Votre e-mail n'est pas valide

";
}
else
{
echo "Votre e-mail est ",$_POST['email'],"

";
}
?>

4 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
9 déc. 2009 à 17:25
Salut,

Tu veux faire quoi précisément ? T'assurer que le @ est présent dans la chaîne ou t'assurer que l'adresse email est valide ?
Dans le premier cas, il suffit d'utiliser strpos().
Dans le second cas, tu as plusieurs possibilités : soit tu vérifies que l'adresse est conforme aux RFC 5321 et 5322 soit tu vérifies qu'elle est valide selon des critères totalement subjectifs comme on en trouve dans la plupart des scripts un peu partout sur le web (et qui sont donc plus ou moins fiables, certains plus que d'autres).
Un peu de lecture ?
- regular-expressions.info
- stackoverflow.com

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
3
cs_darkdog85 Messages postés 7 Date d'inscription jeudi 2 avril 2009 Statut Membre Dernière intervention 6 avril 2011
9 déc. 2009 à 18:26
voici le code qui marche pour cela :
<?php
$mystring = $_POST['email'];
$findme = '@';
$pos = strpos($mystring, $findme);
?>
<?php
if ($_POST['email'] =="")
{
echo " L'E-mail DOIT être rempli

";
}
elseif ($pos === false)
{
echo "L'E-mail DOIT être valide

";
}
else
{
echo "Votre E-mail est strong>",$_POST['email'],"

";
}
?>
3
cs_darkdog85 Messages postés 7 Date d'inscription jeudi 2 avril 2009 Statut Membre Dernière intervention 6 avril 2011
9 déc. 2009 à 17:01
EDIT du code avec un que j'ai trouver sur le site
<?php
if (@ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-] {2,3})*$",$_POST['email']))
{
return ($_bouleen = true);
}
else
{
return ($_bouleen = false);
}
?>
0
cs_darkdog85 Messages postés 7 Date d'inscription jeudi 2 avril 2009 Statut Membre Dernière intervention 6 avril 2011
9 déc. 2009 à 17:35
ok merci, c'est strpos() qui va m'interesser alors, je vais tester sa :)
0