Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Membre du Club
    Étudiant
    Inscrit en
    novembre 2008
    Messages
    133
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2008
    Messages : 133
    Points : 55
    Points
    55

    Par défaut fonction de verification login E-mail ou pseudo

    Bonjour tout le monde
    Je suis en train de développer un système pour vérifier si le login et une adresse email ou un pseudo pour un site.
    j'ai bien lu le cours Validation d'adresse e-mail en PHP
    Ensuite j'ai adopté cette fonction à mon besoin!
    Le problème c que le premier résultat est fausse et reste c bon !!
    Voici mon code avec les commentaires.
    Tout d'abord la fonction: retourne la bonne clause Where pour une requete SELECT avec cette façon :
    - si le login et un email => USER_EMAIL ='".$elogin."' AND PASSWORD LIKE '".$epass."' AND ID_STAT=1
    -si c'est un pseudo => USERNAME ='".$elogin."' AND PASSWORD LIKE '".$epass."' AND ID_STAT=1 AND CREATED_TSTAMP < '".$dt_ancien_ins."'
    avec $dt_ancien_ins une date.

    ensuite le traitement de l'affichage et enfin le résultat avec le problème mentioné en rouge.

    PS: Je joins un petit fichier pour l'exemple

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    function getClauseByloginType ($elogin,$epass,$dt_ancien_ins)
    		{
    			$atom   = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';   // caractères autorisés avant l'arobase
    			$domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // caractères autorisés après l'arobase (nom de domaine)
     
    			$regex = '/^' . $atom . '+' .   // Une ou plusieurs fois les caractères autorisés avant l'arobase
    			'(\.' . $atom . '+)*' .         // Suivis par zéro point ou plus
    											// séparés par des caractères autorisés avant l'arobase
    			'@' .                           // Suivis d'un arobase
    			'(' . $domain . '{1,63}\.)+' .  // Suivis par 1 à 63 caractères autorisés pour le nom de domaine
    											// séparés par des points
    			$domain . '{2,63}$/i';          // Suivi de 2 à 63 caractères autorisés pour le nom de domaine
     
    			// test de l'adresse e-mail
    			if (preg_match($regex, $elogin)) 
    			{				
    		  		return " USER_EMAIL ='".$elogin."' AND PASSWORD LIKE '".$epass."' AND ID_STAT=1 ";
    			} 
    			else 
    			{				
    		 		 return " USERNAME ='".$elogin."' AND PASSWORD LIKE '".$epass."' AND ID_STAT=1  AND '".$dt_ancien_ins."'";
    			}
    		}//End getCaluseByLoginType
    mes echo
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    		$dt_ancien_ins = "2012-12-18";
     
    		$email1 = "isemail1@yahoo.fr ";
    		$email2 = "isemail2@yahoo.fr";
    		$email3 = "isemail1_3@hotmail.fr";
    		$email4 = "isemail1.isemail1.isemail1@gmail.com";
    		$email5 = "isemail1-3@ochan";
    		$login1 ="log_in1";
    		$login2 ="log.in2"; ;
    		$login3 ="cfr.com"; 
    		$v =   getClauseByloginType($email1,"",$dt_ancien_ins);
    		echo $v."<br /> <br /> <br />";
    		$v1 = getClauseByloginType($email2,"",$dt_ancien_ins);
    		echo $v1."<br /> <br /> <br />";
    		$v2 = getClauseByloginType($email3,"",$dt_ancien_ins);
    		echo $v2."<br /> <br /> <br />";
    		$v3 = getClauseByloginType($email4,"",$dt_ancien_ins);
    		echo $v3."<br /> <br /> <br />";
    		$v4 = getClauseByloginType($email5,"",$dt_ancien_ins);
    		echo $v4."<br /> <br /> <br />";
    		$v5 = getClauseByloginType($login1,"",$dt_ancien_ins);
    		echo $v5."<br /> <br /> <br />";
    		$v6 = getClauseByloginType($login2,"",$dt_ancien_ins);
    		echo $v6."<br /> <br /> <br />";
    		$v7 = getClauseByloginType($login3,"",$dt_ancien_ins);
    		echo $v7."<br /> <br /> <br />";
    		exit();
    Voici le resultat remarquer le premier result en rouge !

    USERNAME ='isemail1@yahoo.fr ' AND PASSWORD LIKE '' AND ID_STAT=1 AND '2012-12-18'


    USER_EMAIL ='isemail2@yahoo.fr' AND PASSWORD LIKE '' AND ID_STAT=1


    USER_EMAIL ='isemail1_3@hotmail.fr' AND PASSWORD LIKE '' AND ID_STAT=1


    USER_EMAIL ='isemail1.isemail1.isemail1@gmail.com' AND PASSWORD LIKE '' AND ID_STAT=1


    USERNAME ='isemail1-3@ochan' AND PASSWORD LIKE '' AND ID_STAT=1 AND '2012-12-18'


    USERNAME ='log_in1' AND PASSWORD LIKE '' AND ID_STAT=1 AND '2012-12-18'


    USERNAME ='log.in2' AND PASSWORD LIKE '' AND ID_STAT=1 AND '2012-12-18'


    USERNAME ='cfr.com' AND PASSWORD LIKE '' AND ID_STAT=1 AND '2012-12-18'
    merci bien en avance.
    cette fontion ma rendu fou ce matin
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur
    Avatar de rawsrc
    Homme Profil pro Martin
    Dev indep
    Inscrit en
    mars 2004
    Messages
    3 579
    Détails du profil
    Informations personnelles :
    Nom : Homme Martin
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : mars 2004
    Messages : 3 579
    Points : 8 287
    Points
    8 287

    Par défaut

    Salut,

    Pour valider les mails, PHP le fait nativement. Le tuto est obsolète.
    # Dans la Création, tout est permis mais tout n'est pas utile...

  3. #3
    Membre du Club
    Étudiant
    Inscrit en
    novembre 2008
    Messages
    133
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2008
    Messages : 133
    Points : 55
    Points
    55

    Par défaut

    Citation Envoyé par rawsrc Voir le message
    Salut,

    Pour valider les mails, PHP le fait nativement. Le tuto est obsolète.
    Merci pour la réponse.
    J'ai y jeté un coup d’œil avant de poster mon problème, et j'ai remarqué que tout le monde utilisent la fonction preg_match!
    j'ai été douté vraiment .. voila pourquoi j'ai suivi le tuto
    Heureusement le problème a été résolu ave la fonction native mais on je ne sais pas d’où vient l’erreur en haut !
    Très cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •