Vous n'êtes pas identifié(e).
Bonjour,
Premier post sur ce forum, qui je crois va m'apporter beaucoup à l'avenir.
Je viens donc exposé en bon débutant un problème qui peut s'avérer facile pour les initiés mais qui est difficile pour un néophyte dans mon genre.
PROBLEME : J'essai de faire fonctionner un formulaire d'inscription à une newsletter.
Il fonctionne de la facon suivante :
- 1 si les champs sont remplis, 2 on verifie que les deux mails sont identiques, 3 si l'utilisateur (mail) existe deja dans la base de donnee > message d'erreur, si il n'existe pas on l'insert dans la BDD.
Il semble que l'erreur se situe au niveau de la 3eme etape.
Merci d'avance de votre aide.
Voici le code :
//si les deux courriels sont identiques on continu
if ($_POST['courriel'] == $_POST['verification_courriel']){
$courriel = $_POST['courriel'];
//on parcours l'ensemble des courriel pr voir si l'adresse existe deja
$retour = mysql_query("SELECT COUNT(*) FROM newsletter WHERE courriel = '$courriel'");
if(mysql_num_rows($retour) > 0){
//le compte existe
echo 'Impossible d\'ajouter ce compte, il existe dejà dans la BDD';}
//si le compte n'existe pas on l'insert
else{
mysql_query("INSERT INTO newsletter VALUES('', '" . $_POST['nom'] . "', '" . $_POST['prenom'] . "', '" . $_POST['courriel'] . "', '" . '1' . "', '" . time() . "')");
echo "L'inscription s'est bien déroulée";}
}else{echo 'Vos deux mails diffèrent, il faut saisir les mêmes courriels, vérifiez cette information';}
}else{echo 'Veuillez remplir tous les champs';}
?>
Hors ligne
Petit complément d'information : je copie colle ce a quoi ressemble la table…
Hors ligne
[code : php]
<?php
// si tout les champs sont remplis on continu
if (!empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['courriel']) && !empty($_POST['verification_courriel'])){
if ($_POST['courriel'] == $_POST['verification_courriel']){ //si les deux courriels sont identiques on continu
$courriel = $_POST['courriel'];
//on parcours l'ensemble des courriel pr voir si l'adresse existe deja
if(current(mysql_fetch_row(mysql_query("SELECT COUNT(*) FROM newsletter WHERE courriel = '$courriel'"))) > 0){
//le compte existe
echo "Impossible d'ajouter ce compte, il existe déjà dans la BDD";
}
else{ //si le compte n'existe pas on l'insert
mysql_query("INSERT INTO newsletter VALUES(NULL,'{$_POST['nom']}=','{$_POST['prenom']}=','{$_POST['courriel']}', '1' , time()") or die ("Erreur : " . mysql_error());
echo "L'inscription s'est bien déroulée";
}
}
else{
echo 'Vos deux mails diffèrent, il faut saisir les mêmes courriels, vérifiez cette information';
}
}else{
echo 'Veuillez remplir tous les champs';
}
?>
[/code]
çà devrai fonctionner
a++
Dernière modification par Pierrot (03-03-2010 03:10:38)
Hors ligne
Bonsoir,
Merci de ton aide.
J'ai testé ton script, ca ne fonctionne pas chez moi !
Petite question : que veut dire : '{$_POST['nom']=' est-ce une autre manière d'insérer ?
Ne peut on pas le faire autrement qu'avec un countrow pour facilitere les choses ?
J'ai effectué quelques autres tests
$retour = mysql_query("SELECT COUNT(*) AS courriel FROM newsletter WHERE courriel = '$courriel'"); > me retourne 'Resource id #10 ' quand j'execute le script dans wamp
SELECT COUNT(*) AS courriel FROM newsletter WHERE courriel = '$courriel' > me retourne ce que j'attend (a savoir un nombre) quand j'execute directement en sql depuis mon gestionnaire de base de donnée
A noter que ces test ont été fait avec un texte fixe et non la variable $courriel
>> partant de la, ou est le probleme
>> que veut dire Resource id #10 ??
>> pourquoi deux réponse pour la meme requete
A bientot
florian
Dernière modification par floriangendrot (03-03-2010 02:48:31)
Hors ligne
j'ai modifié
a++
Hors ligne
Merci de ton aide Pierrot, j'ai trouvé une solution entre temps… l'erreur se située au niveau de ma requete
Jolie nuit blanche, merci php
extrait de code suffisant a la compréhension :
if($NombreEntree > 0){
//le compte existe
echo 'Impossible d\'ajouter ce compte, il existe dejà. Vous pouvez vous inscrire avec une autre adresse mail';
Comment marquer que le pb est résolu ?
Dernière modification par floriangendrot (03-03-2010 03:21:51)
Hors ligne