8797 sujets

Développement web côté serveur, CMS

Bonjour à toutes et à tous,

En faite j'aurais besoin de savoir comment vérifier si la personne à écrit une adresse e-mail valide...

Mon code php est (déjà pour moi même je vais pas aller très loin... Smiley sweatdrop ) un peu flou.

J'ai essayé de regardé un peu sur internet mais je ne sais pas comment l'adapter à mon code...
Voilà mon code

<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php 
// On commence par récupérer les champs 

if(isset($_POST['nom']))      $nom=$_POST['nom'];
else      $nom="";

if(isset($_POST['prenom']))      $prenom=$_POST['prenom'];
else      $prenom="";

if(isset($_POST['mail']))      $mail=$_POST['mail'];
else      $mail="";

if(isset($_POST['pass']))      $pass=$_POST['pass'];
else      $pass="";

if(isset($_POST['adresse']))      $adresse=$_POST['adresse'];
else      $adresse="";

if(isset($_POST['lieu']))      $lieu=$_POST['lieu'];
else      $lieu="";

if(isset($_POST['telephone']))      $telephone=$_POST['telephone'];
else      $telephone="";

// On vérifie si les champs sont vides 
if(empty($nom) OR empty($prenom) OR empty($mail) OR empty($pass)) 
    { 
echo '<font color="red">Attention, vous n\'avez pas remplis tous les champs obligatoir.<br>Merci de cliquer sur précédent ou sur retour et de remplir tous les éléments.</font><br><br><a href="contact.php">Retour</a>';
    } 

// Aucun champ n'est vide, on peut enregistrer dans la table 
else      
    { 
       // connexion à la base
$db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
// sélection de la base  

    mysql_select_db('univie',$db)  or die('Erreur de selection '.mysql_error()); 
     
    $sql = "SELECT id FROM telechargements WHERE mail='$mail'"; 
    $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());  
     
    // on compte le nombre de résultats 
    $res = mysql_num_rows($req); 

    if($res!=0)  // l'url existe déjà, on affiche un message d'erreur 
        { 
        echo '<font color="red">Désolé, mais cette e-mail existe déjà.</font>'; 
        } 
    else  // L'url n'existe pas, on insère les informations du formulaire dans la table 
        {    
        $sql = "INSERT INTO telechargements(id, nom, prenom, mail, pass, adresse, lieu, telephone) VALUES('','$nom','$prenom','$mail','$pass','$adresse','$lieu','$telephone')"; 
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());  
         
        // on affiche le résultat pour le visiteur 
        echo 'Vos infos on été ajoutées.'; 
        } 
		
    mysql_close();  // on ferme la connexion 
    }  
?> 
</body>
</html>


Le problème c'est que je vois toujours des vérificateur de mail avec des "false" et des "true" mais je ne sais pas comment adapter cela à mon code, c'est trop tordu pour moi Smiley biggol

Merci d'avance
Modifié par Tidus_6_9_2 (15 Feb 2008 - 17:40)
C'est bon j'ai rien dit j'ai trouvé un tuto sur les regex qui ne me semble pas trop compliqué. Merci pour ceux qui on pris la peine de lire ^^ bonne soirée
plusieurs remarques :

- le faire en php n'est pas "cool" pour l'utilisateur qui - s'il a fait une erreur - devra remplir une seconde fois le formulaire...
- email est masculin (cet email.. pas cette email Smiley langue )


Perso, j'utilise ceci en javascript lors du submit du formulaire :


	if (document.getElementById("email").value.length != 0)
	{
		var email = document.getElementById("email").value;
		var verif = /^[a-zA-Z.0-9_-]+@[a-zA-Z.0-9-]{2,}[.][a-zA-Z]{2,3}$/
		if (verif.exec(email) == null)
		{
			alert("Veuillez remplir un email valide, merci !");
			document.getElementById('email').style.backgroundColor = 'red';
			document.getElementById('email').style.color = 'white';
			document.getElementById('email').focus();
			return false;
		} 

	}

fred036 a écrit :
- le faire en php n'est pas "cool" pour l'utilisateur qui - s'il a fait une erreur - devra remplir une seconde fois le formulaire...
On ne peut se fier à Javascript tout simplement parce qu'il peut être désactivé. Le Javascript est complémentaire au PHP mais ne peut le remplacer.
fred036 a écrit :
- email est masculin (cet email.. pas cette email Smiley langue )
Faux, email n'est pas un mot français il n'a donc pas de genre.
a écrit :
fred036 a écrit :
- le faire en php n'est pas "cool" pour l'utilisateur qui - s'il a fait une erreur - devra remplir une seconde fois le formulaire...


et de toute façon c'est faux, l'astuce consistant soit a coder la verif et le formulaire sur une même page et de faire des echo des variables postées
ou alors d'utiliser les sessions ou alors autre chose... y a pleins de solutions en php pour contourner ce probleme.
Modifié par CPascal (19 Feb 2008 - 16:43)