Se connecter / S'enregistrer
Votre question

[php] Problème dans un script de Gestion de Membre

Tags :
  • Script
  • Programmation
Dernière réponse : dans Programmation
15 Janvier 2008 23:22:55

Bonjour à vous tous,

Il y a un bon moment j'ai créé un site web en (X)HTML...
C'est bien beau mais j'ai voulus ensuite pouvoir automatiser des petites chose pour me faciliter la tache et c'est là que j'ai décidé de créer un espace membre pour que le visiteur sois en mesure s'enregistrer et par la suis enregistrer des chose sur son Acount pour ensuite quand il se reconnecte retrouver les info qu'il avait enregistrer.

Mais voilà que je bloque déjà au début :S

J'ai réussi (sans trop de difficulté) à créer mon espace membre (INSCRIPTION) mais je me suis aperçus en faisant quelques test que un visiteur pouvait facilement se RECRER un Acount avec le Même EMAIL sans que MySQL ne dise un mot.

Alors je me suis lancé sur ce problème, consulté le Web, les forums et bâti mon script sur les infos recueilli, mais je suis encore bloqué.

Mon problème est que quand le visiteur fait enregistré et bien je demande a MySQL de rechercher dans ma BDD et dans la bonne table si le email est déjà présent (plus précisément de compter tout les emails identiques et de mettre le nombre dans une variable EX:$email_same) Je lui met une limite de 1 et ensuite je dit:
-SI $email_same est différent de 0
C'est une erreur
-sinon tu laisses envois vers un autre page...

Bon jusqu'ici sa va Voici mon code (je dirai ensuite le problème) :
Bleu=Ne pas beaucoup vous préoccuper(c'est à titre d'information)
CODE PHP

if ($code == $_SESSION['code'] AND $password_enter == $password_enter_compare AND $email_enter != "")
{
echo "Password(s)...OK";

mysql_connect("localhost", "root", "monpassword") or die(mysql_error()); // Connexion à MySQL
mysql_select_db("maBDD") or die(mysql_error()); // Sélection de la base


$sql = mysql_query('SELECT COUNT(MEM_COURRIEL) FROM membre WHERE MEM_COURRIEL=\''.$email_enter.'\' LIMIT 1');
if(mysql_num_rows($sql)!=0)
{
echo mysql_affected_rows();
echo '<br />cette adresse est déjà présente en base';
}
else
{
?>
//MA PAGE DE RÉUSSITE ET LE CODE POUR AJOUTER L'ENTRER LA LIGNE
<?php
}
}
...

Je n'est pas tout affiché mon script complet de ma apge parce que j'ai un autre script d'envois d'email pour la validation etc....

Noté que $email_enter était avant $_POST['email_enter'] mais que j'ai mit dans la variable $email_enter pour plus de facilité (de même pour $code etc.. (au début mais c'est en bleu alors :D ))

Bon alors à met yeux mon code fonctionne mais il affiche toujours le message :«Cette adresse est déjà.....» même si le email n'existe pas! dans ma BDD j'ai ajouté (AVANT) une entré avec comme email blablabla@hotmail.com alors même si je test et que je met dans l'espace email (dans le formulaire) dsafadsfadsfads il me dit que se Email existe (Autrement dit il ne va jamais au else). J'ai donc fais afficher la variable pour voir ce quelle contenait et elle est toujours à 1! il est donc normal que sa marque le message d'erreur mais pourquoi elle est toujours à 1? J'ai beau mettre au début de mon code:

$sql = ""

Sa ne change rien... ce qui voudrais dire que peu importe le résultat de la recherche il met 1 dans la variable?

Alors je vous fais appelle en espérant qu'un être généreux m'aide un peu sur mon script et si il y à une façon de simplifier mon script ou quelque chose du genre merci de me prévenir :D  :wahoo: 

Merci d'avance d'avoir lit mon message et à toute personne qui tentera de m'aider.

Salutation.
Maxime.
(Maxgamerz.)

Autres pages sur : php probleme script gestion membre

a c 232 L Programmation
15 Janvier 2008 23:39:08

Salut,

Faire un Count() avec un Limit, ça me choque un peu. Tu n'as pas besoin du limit.

Sinon, fais un echo de ta requête entière, tu verras si le problème vient de ta variable.
15 Janvier 2008 23:41:46

Enlever le limit ok ce qui donnerais?:

$sql = mysql_query('SELECT COUNT(MEM_COURRIEL) FROM membre WHERE MEM_COURRIEL=\''.$email_enter.'\' ');

* Après teste de la ligne si dessus...même résultat :S $sql contien encore 1.

mais comment afficher ma requête au complet?
Pourrais tu me faire un exemple?

Merci beaucoup d'avance!
Contenus similaires
16 Janvier 2008 12:05:45

c'est toujours sympa de voir des personnes demander de l'aide mais ne pas donner la solution quand leur problème est résolu... :pfff: 
  1. select count(*) from matable where conditions

retournera toujours 1 ligne contenant 1 champs correspondant aux résultat de count(), d'où le résultat de mysql_num_rows ($sql) qui est = 1

il faut enlever le count() pour connaitre le nombre de ligne ou traiter la valeur du 1er champs de la 1ere ligne.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS