Vérfier e-mails

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Asumbaa
Tyrannosaurus Rex
Messages : 2411
Inscription : 08 déc. 2004, 20:07

Message par Asumbaa »

Oui, toutes mes excuses encore, j'ai pas vérifié à la lettre près ce que j'écrivais, j'aurais dû.

Il faut que tu apprennes à gérer ce genre d'erreurs tout seul ! Prendre des bons réflexes (vérifier la syntaxe, les appels, les paramètres) te permettra de débuguer les trois-quarts des erreurs.

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6
kikong
Arias
Messages : 17
Inscription : 21 août 2006, 12:27

Message par kikong »

Salut,

Oui c'est la première fois que je fais de la programmation php. J'ai fait de la programmation dans flash l'année dernière. Un début a tout!

Tout a fait, j'aurais dû vérifier ce genre d'erreur. Je saurais pour la porchaine fois.

Oué ça fonctionne!!Plus de messages d'erreur. Mais il découvre que l'adresse est fausse, mais il l'enregistre quant même dans la base de données!! Il me mets 2 messages, celui que l'adresse est fausse, et celui qu'elle a bien été enregistrer dans la base de données...je regarde le code de plus près. Mais essayer de me guider.

De plus, il repère fausse, des adresse valide...

Merci,


Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6
Asumbaa
Tyrannosaurus Rex
Messages : 2411
Inscription : 08 déc. 2004, 20:07

Message par Asumbaa »

Salut,
kikong a écrit :Oué ça fonctionne!!Plus de messages d'erreur. Mais il découvre que l'adresse est fausse, mais il l'enregistre quant même dans la base de données!! Il me mets 2 messages, celui que l'adresse est fausse, et celui qu'elle a bien été enregistrer dans la base de données...je regarde le code de plus près. Mais essayer de me guider.
Que fais-tu du résultat de la fonction ? Donne-nous un bout de code :)
kikong a écrit :De plus, il repère fausse, des adresse valide...
Ah, ça c'est plus ennuyeux, ça veut dire que ton expression rationnelle (le "$chars") ne convient pas. Mais je suis pas fortiche en ER, je vais pas trop pouvoir t'aider. Où avais-tu trouvé le code dont tu t'es inspiré ?

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6
kikong
Arias
Messages : 17
Inscription : 21 août 2006, 12:27

Message par kikong »

Salut,

Si l'e-mail est faux, j'ouvre une fenêtre et mets en message [l e-mail] est faux....

Voici ce qu'il me mets avec une adresse valide ou non :
Votre adresse e-mail est fausse. Merci de renseigner une adresse valide.

FERMER LA FENETRE

Votre inscription à la newsletter du site Internet a été réussie. Merci pour votre inscription! Vous receverez dès maintenant, les news du site.
Votre adresse e-mail est

FERMER LA FENETRE
Voici le code :

Code : Tout sélectionner

function verif_email($email) {
    $chars = "/^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}\$/i";
    if(strstr($email, '@') && strstr($email, '.')) {
        if (preg_match($chars, $email)) {
            return true;
        }
        else {
            echo "<center>Votre adresse e-mail <b>$_POST[email]</b> est fausse. Merci de renseigner une adresse valide.</center>";
echo "<br><center><a href='javascript:window.close()'>FERMER LA FENETRE</center>";
        }
    }
    else {
            echo "<center>Votre adresse e-mail <b>$_POST[email]</b> est fausse. Merci de renseigner une adresse valide.</center>";
echo "<br><center><a href='javascript:window.close()'>FERMER LA FENETRE</center>";
    }
}
puis y a l'appelle de la fonction et le reste du code :

Code : Tout sélectionner

$email_is_ok = verif_email($user_mail);

if(mysql_num_rows(mysql_query("SELECT Email FROM newsletter WHERE Email='$_POST[email]'"))) {
	
	echo "<center><br>Votre adresse e-mail est deja inscrite à la newsletter(<b>$_POST[email]</b>)</center>" ; 
	
	
	echo "<br><center><a href='javascript:window.close()'>FERMER LA FENETRE</center>";
	exit(); 
}
	
mysql_query("INSERT INTO newsletter VALUES ('','$_POST[email]')") or die ('Erreur SQL !<br>'.mysql_error());
	
	mail_inscription();
	echo "Votre inscription à la newsletter du site Internet a été réussie.
Merci pour votre inscription! Vous receverez dès maintenant, les news du site.<center>Votre adresse e-mail est <b>$_POST[email]</b></center>";


	echo "<br><center><a href='javascript:window.close()'>FERMER LA FENETRE</center>";
	break;
J'avais trouvé le code sur PHPCS (http://www.phpcs.com/codes/NEWSLETTER-T ... 13411.aspx)
C'est la source de ma newsletter, et j'ai modifier le visuel avec une feuille de style.

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6
Dernière modification par kikong le 07 mars 2007, 22:33, modifié 1 fois.
Asumbaa
Tyrannosaurus Rex
Messages : 2411
Inscription : 08 déc. 2004, 20:07

Message par Asumbaa »

Hello,

OK, bon, y'a plusieurs choses à revoir...

1/ Dans ta fonction verif_email, utilise le paramètre de ta fonction ($email) plutôt que la variable globale $_POST['Email'] (tu es DANS la fonction, ça doit pouvoir marcher même si tu vérifies une autre adresse que celle passée en POST)
De plus en cas d'erreur, ta fonction ne retourne plus rien.

2/ Tu as recopié $email_is_ok = verif_email($user_mail); sans te poser de questions. Donc moi je t'en pose, pour que tu puisses avancer en comprenant ce que tu fais :
- Il y a quoi dans $user_mail ?
- Que récupères-tu dans $email_is_ok ?
- Qu'en fais-tu ensuite ?

Si tu bloques sur une de ces questions, demande ici. Mais essaye déjà de voir tout seul la logique de ton code, c'est le meilleur moyen d'avancer.

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6
kikong
Arias
Messages : 17
Inscription : 21 août 2006, 12:27

Message par kikong »

Ba après l'e-mail ok, on a un e-mail qui est vérifier et ensuite, il faudrait passer à l'inscription à la news.

Qu'es que tu entend par $user_mail?

Et dans ma fonction verif_mail, c'est la fonction $email que j'utilise non?

Essaye de me mettre sur une voie,

Merci d'avance,


Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6
Asumbaa
Tyrannosaurus Rex
Messages : 2411
Inscription : 08 déc. 2004, 20:07

Message par Asumbaa »

Ourgl :shock:
Bon...
kikong a écrit :Ba après l'e-mail ok, on a un e-mail qui est vérifier et ensuite, il faudrait passer à l'inscription à la news.
Oui, mais seulement si l'email est valide. Là, tu testes la validité grâce à la fonction mais ensuite, quoi qu'il arrive tu passes à la suite, c'est-à-dire l'enregistrement en base.
kikong a écrit :Qu'es que tu entend par $user_mail?

Code : Tout sélectionner

$email_is_ok = verif_email([b]$user_mail[/b]);
Celui-ci. Il y a quoi dedans ?
kikong a écrit :Et dans ma fonction verif_mail, c'est la fonction $email que j'utilise non?
Dans ta fonction, $email est la paramètre local. Il n'existe que dans ta fonction, contrairement à $_POST qui est une variable globale.
En cas d'erreur sur l'adresse, dans le code de ta fonction tu affiches $_POST['email'] ; affiche plutôt $email afin de t'affranchir du contexte.
kikong a écrit :Essaye de me mettre sur une voie
J'essaye ! Mais je crois que tu n'as pas assimilé les bases et c'est pas facile d'identifier le "point de blocage" !

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 4 invités