IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

système de parrainage [MySQL]


Sujet :

PHP & Base de données

  1. #21
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 59
    Points : 18
    Points
    18
    Par défaut Reponse
    Non, en faite sa marche pas sa me dit tous le temps que le parrain n'existe pas alors qu'il existe :/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    <?php
    include('includes/header.php');
    if(connecte()){ // il est connécté
     
    ?>
     
    	<p>Vous êtes déjà connéctés - Impossible de vous inscrire une seconde fois !</p>
     
    <?php
    } elseif(!connecte() AND isset($_POST['valider'])) { // il est pas connécté et a validé le formulaire
     
    	$erreur = array();
     
    	if (empty($_POST['pseudo'])) {
    	   $erreur[] = 'Le champ Pseudo ne doit pas être vide.';
    	}
     
    	if (empty($_POST['mdp'])) {
    	   $erreur[] = 'Le champ Mot de passe ne doit pas être vide.';
    	}
     
    	if ($_POST['mdpConfirm'] != $_POST['mdp']) {
    	   $erreur[] = 'Les deux motes ne passe ne sont pas identiques.';
    	}
     
    	if (empty($_POST['email'])) {
    	   $erreur[] = 'Le champ Email ne doit pas être vide.';
    	}
     
    		if (empty($_POST['parrain'])) {
    	   $erreur[] = 'Le parrain n\'existe pas.<br>Le champ "Pseudo du parrain" ne doit pas être vide.';
    	}
     
    	if (!count($erreur)) {
     
    		$pseudo = securiserVariable($_POST['pseudo']);
    		$mdp = HoloHash($_POST['mdp']);
    		$email = securiserVariable($_POST['email']);
    		$ip = $_SERVER['REMOTE_ADDR'];
     
    		$retour = mysql_query("SELECT COUNT(*) AS nbreEntrees FROM users WHERE pseudo='".$pseudo."'");
    		$donnees = mysql_fetch_array($retour);
    		if($donnees['nbreEntrees'] <= 0){
     
    	$creditsAjouter = 100; // Nombre de crédits à ajouter
     
    				$reponse= mysql_query("SELECT COUNT(*) AS nbr FROM users WHERE pseudo='".mysql_real_escape_string($_POST['parrain'])."'");
    				$alors  = mysql_fetch_assoc($reponse);
    				if($alors['nbr'] == 0) {
       echo "Ce parrain n'existe pas !";
    } 
    else {
      mysql_query("UPDATE users SET nbrCredits = nbrCredits + $creditsAjouter WHERE pseudo = '".mysql_real_escape_string($_POST['parrain'])."'"); // On met à jour le nombre de crédits du parrain
      mysql_query("INSERT INTO users VALUES ('','".$pseudo."','".$mdp."','".$email."','".$ip."','','')");	
     }
    						echo 'L\'inscription s\'est déroulée avec succès, vous pouvez maintenant vous connecter.';
     
    		} else {
    		echo'Ce pseudo est déjà pris par une autre personne';
    		}
     
    	}else {
     
    		$nbrErreur = count($erreur);
    		echo '<b>Il y a '.$nbrErreur.' erreurs détectés.</b><br>';
    		 echo '<b>Liste des erreurs :</b><ul>';
    		 foreach($erreur as $erreur) echo "<li>$erreur</li>";
    		 echo '</ul>';
    		 echo'Merci de re-remplir le formulaire.';
    		 echo'
    		 <br/>
    		 <br/>
    		<form method="post">
    	<fieldset>
    	<legend>Inscription - MaxComs</legend>
    	
    	<label for="pseudo">Pseudo :</label>
    	<input type="text" value="" id="pseudo" name="pseudo"/>
    	<br/>
    	<br/>
     
    	<label for="mdp">Mot de passe :</label>
    	<input type="password" value="" id="mdp" name="mdp"/>
    	<br/>
    	<br/>
     
    	<label for="mdpConfirm">Mot de passe (confirm) :</label>
    	<input type="password" value="" id="mdpConfirm" name="mdpConfirm"/>
    	<br/>
    	<br/>	
    	
    	<label for="email">Votre Email</label>
        <input type="text" value="" id="email" name="email"/>
    	<br/>
    	<br/>
    	
    	<label for="parrain">Pseudo du Parrain :</label>
    	<input type="text" value="" id="parrain" name="parrain"/>
    	<br/>
    	<br/>
    	
    	<label for="valider">&nbsp;</label>
    	<input type="submit" name="valider" value=" Valider l\'inscription "/>
    	<br/>
    	<br/>
    	
    	</fieldset><br><br>
    	</form>';
    	}
     
     
    } else { // il est pas connécté et n'a pas validé le formulaire
    ?>
     
    	<p>Voici ci-dessous le formulaire d'inscription à IziAllo.</p>
    	<p><b>
    	</form>
    	<fieldset>
    	<legend><b>ATTENTION :</b></legend><br>Il faut obligatoirement le pseudo du parrain, c'est à dire celui qui vous a fais connaître le site pour pouvoir s'inscrire.<br><br>Tous les champs sont obligatoires !</fieldset></b></p>
     
    	<form method="post">
    	<fieldset>
    	<legend>Inscription - IziAllo</legend><br>
     
    	<label for="pseudo">Pseudo :</label>
    	<input type="text" value="" id="pseudo" name="pseudo"/>
    	<br/>
    	<br/>
     
    	<label for="mdp">Mot de passe :</label>
    	<input type="password" value="" id="mdp" name="mdp"/>
    	<br/>
    	<br/>
     
    	<label for="mdpConfirm">Mot de passe (confirmation) :</label>
    	<input type="password" value="" id="mdpConfirm" name="mdpConfirm"/>
    	<br/>
    	<br/>	
     
    	<label for="email">Votre Email</label>
    	<input type="text" value="" id="email" name="email"/>
    	<br/>
    	<br/>
     
    	<label for="Parrain">Pseudo du Parrain :</label>
    	<input type="text" value="" id="Parrain" name="Parrain"/>
    	<br/>
    	<br/>
     
    	<label for="valider">&nbsp;</label>
    	<input type="submit" name="valider" value=" Valider l'inscription "/>
    	<br/>
    	</fieldset><br><br>
     
     
    <?php
    }
     
    include('includes/footer.php');
    ?>

  2. #22
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Affiche ta requête et teste la dans phpmyadmin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sql = "SELECT COUNT(*) AS nbr FROM users WHERE pseudo='".mysql_real_escape_string($_POST['parrain'])."'";
    echo $sql;
    $reponse= mysql_query($sql);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #23
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 59
    Points : 18
    Points
    18
    Par défaut Reponse
    J'ai pas compris :/

  4. #24
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Comme dans l'exemple du tuto que je t'ai indiqué avant, on écrit d'abord la requête et ensuite on l'exécute.

    Cela permet (en cas de besoin) de faire afficher la requête pour voir si la chaine de caractères est bien formée et aussi de pouvoir contrôler son fonctionnement en rentrant le résultat directement dans une fenêtre sql de phpMyadmin.

    Donc tu fais comme te dis sabotage. A la place de ta requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reponse= mysql_query("SELECT COUNT(*) AS nbr FROM users WHERE pseudo='".mysql_real_escape_string($_POST['parrain'])."'");
    tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = "SELECT COUNT(*) AS nbr FROM users WHERE pseudo='".mysql_real_escape_string($_POST['parrain'])."'";
    echo $sql;
    $reponse= mysql_query($sql);
    Que donne echo $sql; ? et que donne ce même résultat quand tu l'exécute dans une fenêtre sql de phpMyadmin ?

  5. #25
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 59
    Points : 18
    Points
    18
    Par défaut Reponse
    Ca ma mis sa :

    Erreur
    requête SQL:

    $sql = "SELECT COUNT(*) AS nbr FROM users WHERE pseudo='".mysql_real_escape_string(

    $_POST[ 'parrain']
    ). "'";

    MySQL a répondu:

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$sql = &quot;SELECT COUNT(*) AS nbr FROM users WHERE pseudo='&quot;.mysql_real_escape_stri' at line 1

  6. #26
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Met exactement le code qu'on ta proposé.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #27
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Points : 460
    Points
    460
    Par défaut
    @dorian06 : J'ai eu à faire un truc de ce genre dans mes développements antérieurs. Je te recommande de passer à PDO, non seulement il ne t'apportera que d'avantages et aussi les fonctions spécifiques aux SGBDR comme les mysql_... disparaitront aux futurs versions de PHP.
    Dans ton cas comme avantage, je suis sur certainement que tu auras besoin d'utiliser des transactions. Par exemple lors de l'ajout d'un nouvel utilisateur, il te faudra aussi ajouter impérativement 200 crédits à son parrain. Imaginez donc un système où le crédit est ajouté mais l'user n'est pas ajouté et ceci vis-versa. PDO te procurera que du bonheur.

  8. #28
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 59
    Points : 18
    Points
    18
    Par défaut Reponse
    Sur le site quand je remplace la requête et que je m'inscris sa dit sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) AS nbr FROM users WHERE pseudo=''Ce parrain n'existe pas !L'inscription s'est déroulée avec succès, vous pouvez maintenant vous connecter.
    Et sur PHpmyadmin quand j'entre la requête sa met sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    requête SQL: 
     
    $sql =  "SELECT COUNT(*) AS nbr FROM users WHERE pseudo='".mysql_real_escape_string(
     
    $_POST[ 'parrain']
    ). "'";
     
    MySQL a répondu:
     
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$sql = &quot;SELECT COUNT(*) AS nbr FROM users WHERE pseudo='&quot;.mysql_real_escape_stri' at line 1

  9. #29
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Dans ton cas comme avantage, je suis sur certainement que tu auras besoin d'utiliser des transactions.
    Il n'est pas nécessaire d'utiliser PDO pour faire des transactions.

    dorian06, tu peux nous redonner tout le code ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #30
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 59
    Points : 18
    Points
    18
    Par défaut Reponse
    Oui, le voila (j'ai enlever la requête de test) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    <?php
    include('includes/header.php');
    if(connecte()){ // il est connécté
     
    ?>
     
    	<p>Vous êtes déjà connéctés - Impossible de vous inscrire une seconde fois !</p>
     
    <?php
    } elseif(!connecte() AND isset($_POST['valider'])) { // il est pas connécté et a validé le formulaire
     
    	$erreur = array();
     
    	if (empty($_POST['pseudo'])) {
    	   $erreur[] = 'Le champ Pseudo ne doit pas être vide.';
    	}
     
    	if (empty($_POST['mdp'])) {
    	   $erreur[] = 'Le champ Mot de passe ne doit pas être vide.';
    	}
     
    	if ($_POST['mdpConfirm'] != $_POST['mdp']) {
    	   $erreur[] = 'Les deux motes ne passe ne sont pas identiques.';
    	}
     
    	if (empty($_POST['email'])) {
    	   $erreur[] = 'Le champ Email ne doit pas être vide.';
    	}
     
    	if (empty($_POST['parrain'])) {
    	   $erreur[] = 'Le parrain n\'existe pas.<br>Le champ "Pseudo du parrain" ne doit pas être vide.';
    	}
     
    	if (!count($erreur)) {
     
    		$pseudo = securiserVariable($_POST['pseudo']);
    		$mdp = HoloHash($_POST['mdp']);
    		$email = securiserVariable($_POST['email']);
    		$ip = $_SERVER['REMOTE_ADDR'];
     
    		$retour = mysql_query("SELECT COUNT(*) AS nbreEntrees FROM users WHERE pseudo='".$pseudo."'");
    		$donnees = mysql_fetch_array($retour);
    		if($donnees['nbreEntrees'] <= 0){
     
    	$creditsAjouter = 100; // Nombre de crédits à ajouter
     
    		$reponse= mysql_query("SELECT COUNT(*) AS nbr FROM users WHERE pseudo='".mysql_real_escape_string($_POST['parrain'])."'");
    				$alors  = mysql_fetch_assoc($reponse);
    				if($alors['nbr'] == 0) {
       echo "Ce parrain n'existe pas !";
    } 
    else {
      mysql_query("UPDATE users SET nbrCredits = nbrCredits + $creditsAjouter WHERE pseudo = '".mysql_real_escape_string($_POST['parrain'])."'"); // On met à jour le nombre de crédits du parrain
      mysql_query("INSERT INTO users VALUES ('','".$pseudo."','".$mdp."','".$email."','".$ip."','','')");	
     }
    						echo 'L\'inscription s\'est déroulée avec succès, vous pouvez maintenant vous connecter.';
     
    		} else {
    		echo'Ce pseudo est déjà pris par une autre personne';
    		}
     
    	}else {
     
    		$nbrErreur = count($erreur);
    		echo '<b>Il y a '.$nbrErreur.' erreurs détectés.</b><br>';
    		 echo '<b>Liste des erreurs :</b><ul>';
    		 foreach($erreur as $erreur) echo "<li>$erreur</li>";
    		 echo '</ul>';
    		 echo'Merci de re-remplir le formulaire.';
    		 echo'
    		 <br/>
    		 <br/>
    		<form method="post">
    	<fieldset>
    	<legend>Inscription - MaxComs</legend>
    	
    	<label for="pseudo">Pseudo :</label>
    	<input type="text" value="" id="pseudo" name="pseudo"/>
    	<br/>
    	<br/>
    
    	<label for="mdp">Mot de passe :</label>
    	<input type="password" value="" id="mdp" name="mdp"/>
    	<br/>
    	<br/>
    
    	<label for="mdpConfirm">Mot de passe (confirm) :</label>
    	<input type="password" value="" id="mdpConfirm" name="mdpConfirm"/>
    	<br/>
    	<br/>	
    	
    	<label for="email">Votre Email</label>
        <input type="text" value="" id="email" name="email"/>
    	<br/>
    	<br/>
    	
    	<label for="parrain">Pseudo du Parrain :</label>
    	<input type="text" value="" id="parrain" name="parrain"/>
    	<br/>
    	<br/>
    	
    	<label for="valider">&nbsp;</label>
    	<input type="submit" name="valider" value=" Valider l\'inscription "/>
    	<br/>
    	<br/>
    	
    	</fieldset><br><br>
    	</form>';
    	}
     
     
    } else { // il est pas connécté et n'a pas validé le formulaire
    ?>
     
    	<p>Voici ci-dessous le formulaire d'inscription à IziAllo.</p>
    	<p><b>
    	</form>
    	<fieldset>
    	<legend><b>ATTENTION :</b></legend><br>Il faut obligatoirement le pseudo du parrain, c'est à dire celui qui vous a fais connaître le site pour pouvoir s'inscrire.<br><br>Tous les champs sont obligatoires !</fieldset></b></p>
     
    	<form method="post">
    	<fieldset>
    	<legend>Inscription - IziAllo</legend><br>
     
    	<label for="pseudo">Pseudo :</label>
    	<input type="text" value="" id="pseudo" name="pseudo"/>
    	<br/>
    	<br/>
     
    	<label for="mdp">Mot de passe :</label>
    	<input type="password" value="" id="mdp" name="mdp"/>
    	<br/>
    	<br/>
     
    	<label for="mdpConfirm">Mot de passe (confirmation) :</label>
    	<input type="password" value="" id="mdpConfirm" name="mdpConfirm"/>
    	<br/>
    	<br/>	
     
    	<label for="email">Votre Email</label>
    	<input type="text" value="" id="email" name="email"/>
    	<br/>
    	<br/>
     
    	<label for="Parrain">Pseudo du Parrain :</label>
    	<input type="text" value="" id="Parrain" name="Parrain"/>
    	<br/>
    	<br/>
     
    	<label for="valider">&nbsp;</label>
    	<input type="submit" name="valider" value=" Valider l'inscription "/>
    	<br/>
    	</fieldset><br><br>
     
     
    <?php
    }
     
    include('includes/footer.php');
    ?>
    Et pour infos quand je m'inscrit avec un pseudo de parrain bon, sa me dit sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Il y a 1 erreurs détectés.
    Liste des erreurs :
    Le parrain n'existe pas.
    Le champ "Pseudo du parrain" ne doit pas être vide.
    Merci de re-remplir le formulaire.

  11. #31
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Liste des erreurs :
    Le parrain n'existe pas.
    Ce message provient uniquement quand le champs parrain n'est pas rempli.

    Tu es sur du code que tu nous montres ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #32
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 59
    Points : 18
    Points
    18
    Par défaut reponse
    Non, quand je remplis le champ du parrain avec un pseudo de parrain qui existe, ça me met ça et quand je met rien ça dis pareil.

    C'est à dire j'en suis sur ?

  13. #33
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je te demande si tu es sur car
    - ce n'est pas ce que tu disais il y a une heure
    - j'ai testé ce code et il ne produit pas ce résultat
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #34
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 59
    Points : 18
    Points
    18
    Par défaut Reponse
    Bah pourtant c'est le bon je viens de le remettre sur le FTP mais toujours le même problème :/

    tiens va essayer et met "Admin" en pseudo du parrain :http://iziallo.awarax.com/register.php

    Je vais essayer avec un autre navigateur peut-être..

  15. #35
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Fais tes tests de manière plus rigoureuse.
    Ce que tu décris n'est pas ce qu'on obtient sur ton site.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  16. #36
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 59
    Points : 18
    Points
    18
    Par défaut Reponse
    Mais tu pense que le problème viens d'ou ?

  17. #37
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Tu n'as pas fait la bonne vérif dans la fenêtre sql de phpMyadmin. Il fallait mettre le résultat interprété de la chaine de caractère de la requête et non pas la requête elle-même. Donc il faut mettre ce que donne le résultat de echo $sql;


    Si ta requête est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql =  "SELECT COUNT(*) AS nbr FROM users WHERE pseudo='".mysql_real_escape_string($_POST[ 'parrain']). "'";
    et que tu envoies le mot "Admin" dans ton formulaire, echo $sql devrait donner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) AS nbr FROM users WHERE pseudo='Admin';
    et c'est ça que tu devrais tester dans ta fenêtre sql. Qu'est-ce que ça donne ?

    C'est cela aussi que tu devrais voir afficher dans ton code php quand tu fais
    echo $sql;

    Donc reprend l'écriture que l'on t'avais montré (et n'en change pas) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sql = "SELECT COUNT(*) AS nbr FROM users WHERE pseudo='".mysql_real_escape_string($_POST['parrain'])."'";
     
    $reponse = mysql_query($sql);
     
    $alors  = mysql_fetch_assoc($reponse);
    ensuite pour tester que la requête est bien formée (avec les bons paramètres) il te suffit de rajouter l'echo sur la requête, suivi d'un exit (pour interrompre le code) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sql = "SELECT COUNT(*) AS nbr FROM users WHERE pseudo='".mysql_real_escape_string($_POST['parrain'])."'";
     
    echo 'sql = '.$sql ;
    exit;
     
    $reponse = mysql_query($sql);
     
    $alors  = mysql_fetch_assoc($reponse);
    Que donne ce code à la place de ta requête initiale ?
    Et encore une fois, inutile de revenir à ton ancienne notation quand tu auras fini tes tests, enlève juste - ou mets en commentaire - les lignes echo, exit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sql = "SELECT COUNT(*) AS nbr FROM users WHERE pseudo='".mysql_real_escape_string($_POST['parrain'])."'";
     
    //echo 'sql = '.$sql ;
    //exit;
     
    $reponse = mysql_query($sql);
     
    $alors  = mysql_fetch_assoc($reponse);

    Une dernière chose, uniquement en phase de test, mets la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    ini_set('mysql.trace_mode', true);
     
    //...suite code
    en première ligne de ton code php (et le reste du code à la suite) pour faire afficher les erreurs mysql.

  18. #38
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 59
    Points : 18
    Points
    18
    Par défaut Reponse
    Pour sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <?php
    ini_set('mysql.trace_mode', true);
    Sa n'a rien changé, aucune erreur Mysql.

    Pour sa dans le SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) AS nbr FROM users WHERE pseudo='Admin';
    Sa donne "1".

    Et pour sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sql = "SELECT COUNT(*) AS nbr FROM users WHERE pseudo='".mysql_real_escape_string($_POST['parrain'])."'";
     
    echo 'sql = '.$sql ;
    exit;
     
    $reponse = mysql_query($sql);
     
    $alors  = mysql_fetch_assoc($reponse);
    Il faut le tester sur ma page d'inscription ou sur la fenetre SQL de Phpmyadmin ?

    Merci pour tous les aides et le temps que vous me consacrer..

  19. #39
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Citation Envoyé par dorian06 Voir le message
    Pour sa :


    Pour sa dans le SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) AS nbr FROM users WHERE pseudo='Admin';
    Sa donne "1".

    Et pour sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sql = "SELECT COUNT(*) AS nbr FROM users WHERE pseudo='".mysql_real_escape_string($_POST['parrain'])."'";
     
    echo 'sql = '.$sql ;
    exit;
     
    $reponse = mysql_query($sql);
     
    $alors  = mysql_fetch_assoc($reponse);
    Il faut le tester sur ma page d'inscription ou sur la fenetre SQL de Phpmyadmin ?

    Merci pour tous les aides et le temps que vous me consacrer..
    1/ C'est donc que ta requête fonctionne

    2/ Evidemment dans ton code php, puisque c'est du php.
    Je te l'ai déjà dit, REMPLACE TON ANCIENNE REQUETE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $reponse= mysql_query("SELECT COUNT(*) AS nbr FROM users WHERE pseudo='".mysql_real_escape_string($_POST['parrain'])."'");
                    $alors  = mysql_fetch_assoc($reponse);
    par ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sql = "SELECT COUNT(*) AS nbr FROM users WHERE pseudo='".mysql_real_escape_string($_POST['parrain'])."'";
     
    echo 'sql = '.$sql ;
    exit;
     
    $reponse = mysql_query($sql);
     
    $alors  = mysql_fetch_assoc($reponse);
    et regarde ce que ça donne quand tu poste ton formulaire.

    Fait attention à ce que l'on te dit et comprends ce que tu fais avant d'aller plus loin sinon tu n'en aura jamais fini...

  20. #40
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 59
    Points : 18
    Points
    18
    Par défaut Reponse
    Avec le changement de la requête sa me dit encore :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Il y a 1 erreurs détectés.
    Liste des erreurs :
    Le parrain n'existe pas.
    Le champ "Pseudo du parrain" ne doit pas être vide.
    Merci de re-remplir le formulaire.
    Voici ma page d'inscription modifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    <?php
    include('includes/header.php');
    if(connecte()){ // il est connécté
     
    ?>
     
    	<p>Vous êtes déjà connéctés - Impossible de vous inscrire une seconde fois !</p>
     
     
    <?php
    ini_set('mysql.trace_mode', true);
    } elseif(!connecte() AND isset($_POST['valider'])) { // il est pas connécté et a validé le formulaire
     
    	$erreur = array();
     
    	if (empty($_POST['pseudo'])) {
    	   $erreur[] = 'Le champ Pseudo ne doit pas être vide.';
    	}
     
    	if (empty($_POST['mdp'])) {
    	   $erreur[] = 'Le champ Mot de passe ne doit pas être vide.';
    	}
     
    	if ($_POST['mdpConfirm'] != $_POST['mdp']) {
    	   $erreur[] = 'Les deux motes ne passe ne sont pas identiques.';
    	}
     
    	if (empty($_POST['email'])) {
    	   $erreur[] = 'Le champ Email ne doit pas être vide.';
    	}
     
    	if (empty($_POST['parrain'])) {
    	   $erreur[] = 'Le parrain n\'existe pas.<br>Le champ "Pseudo du parrain" ne doit pas être vide.';
    	}
     
    	if (!count($erreur)) {
     
    		$pseudo = securiserVariable($_POST['pseudo']);
    		$mdp = HoloHash($_POST['mdp']);
    		$email = securiserVariable($_POST['email']);
    		$ip = $_SERVER['REMOTE_ADDR'];
     
    		$retour = mysql_query("SELECT COUNT(*) AS nbreEntrees FROM users WHERE pseudo='".$pseudo."'");
    		$donnees = mysql_fetch_array($retour);
    		if($donnees['nbreEntrees'] <= 0){
     
    	$creditsAjouter = 100; // Nombre de crédits à ajouter
     
    		$sql = "SELECT COUNT(*) AS nbr FROM users WHERE pseudo='".mysql_real_escape_string($_POST['parrain'])."'";
     
    echo 'sql = '.$sql ;
    exit;
     
    $reponse = mysql_query($sql);
     
    $alors  = mysql_fetch_assoc($reponse);
    				if($alors['nbr'] == 0) {
       echo "Ce parrain n'existe pas !";
    } 
    else {
      mysql_query("UPDATE users SET nbrCredits = nbrCredits + $creditsAjouter WHERE pseudo = '".mysql_real_escape_string($_POST['parrain'])."'"); // On met à jour le nombre de crédits du parrain
      mysql_query("INSERT INTO users VALUES ('','".$pseudo."','".$mdp."','".$email."','".$ip."','','')");	
     }
    						echo 'L\'inscription s\'est déroulée avec succès, vous pouvez maintenant vous connecter.';
     
    		} else {
    		echo'Ce pseudo est déjà pris par une autre personne';
    		}
     
    	}else {
     
    		$nbrErreur = count($erreur);
    		echo '<b>Il y a '.$nbrErreur.' erreurs détectés.</b><br>';
    		 echo '<b>Liste des erreurs :</b><ul>';
    		 foreach($erreur as $erreur) echo "<li>$erreur</li>";
    		 echo '</ul>';
    		 echo'Merci de re-remplir le formulaire.';
    		 echo'
    		 <br/>
    		 <br/>
    		<form method="post">
    	<fieldset>
    	<legend>Inscription - MaxComs</legend>
    	
    	<label for="pseudo">Pseudo :</label>
    	<input type="text" value="" id="pseudo" name="pseudo"/>
    	<br/>
    	<br/>
     
    	<label for="mdp">Mot de passe :</label>
    	<input type="password" value="" id="mdp" name="mdp"/>
    	<br/>
    	<br/>
     
    	<label for="mdpConfirm">Mot de passe (confirm) :</label>
    	<input type="password" value="" id="mdpConfirm" name="mdpConfirm"/>
    	<br/>
    	<br/>	
    	
    	<label for="email">Votre Email</label>
        <input type="text" value="" id="email" name="email"/>
    	<br/>
    	<br/>
    	
    	<label for="parrain">Pseudo du Parrain :</label>
    	<input type="text" value="" id="parrain" name="parrain"/>
    	<br/>
    	<br/>
    	
    	<label for="valider">&nbsp;</label>
    	<input type="submit" name="valider" value=" Valider l\'inscription "/>
    	<br/>
    	<br/>
    	
    	</fieldset><br><br>
    	</form>';
    	}
     
     
    } else { // il est pas connécté et n'a pas validé le formulaire
    ?>
     
    	<p>Voici ci-dessous le formulaire d'inscription à IziAllo.</p>
    	<p><b>
    	</form>
    	<fieldset>
    	<legend><b>ATTENTION :</b></legend><br>Il faut obligatoirement le pseudo du parrain, c'est à dire celui qui vous a fais connaître le site pour pouvoir s'inscrire.<br><br>Tous les champs sont obligatoires !</fieldset></b></p>
     
    	<form method="post">
    	<fieldset>
    	<legend>Inscription - IziAllo</legend><br>
     
    	<label for="pseudo">Pseudo :</label>
    	<input type="text" value="" id="pseudo" name="pseudo"/>
    	<br/>
    	<br/>
     
    	<label for="mdp">Mot de passe :</label>
    	<input type="password" value="" id="mdp" name="mdp"/>
    	<br/>
    	<br/>
     
    	<label for="mdpConfirm">Mot de passe (confirmation) :</label>
    	<input type="password" value="" id="mdpConfirm" name="mdpConfirm"/>
    	<br/>
    	<br/>	
     
    	<label for="email">Votre Email</label>
    	<input type="text" value="" id="email" name="email"/>
    	<br/>
    	<br/>
     
    	<label for="Parrain">Pseudo du Parrain :</label>
    	<input type="text" value="" id="Parrain" name="Parrain"/>
    	<br/>
    	<br/>
     
    	<label for="valider">&nbsp;</label>
    	<input type="submit" name="valider" value=" Valider l'inscription "/>
    	<br/>
    	</fieldset><br><br>
     
     
    <?php
    }
     
    include('includes/footer.php');
    ?>

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Espace membre, parrainage et système de points
    Par okoweb dans le forum Langage
    Réponses: 7
    Dernier message: 20/05/2009, 18h40
  2. Espace membre, parrainage et système de point
    Par okoweb dans le forum Langage
    Réponses: 7
    Dernier message: 11/05/2009, 16h18
  3. [système] Comment ajouter un item dans le context menu de Windows ?
    Par ddmicrolog dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 29/06/2005, 17h03
  4. [Système] Vider le Presse Papier
    Par babe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/09/2002, 17h46
  5. IA avec le système de note
    Par scorpiwolf dans le forum C
    Réponses: 4
    Dernier message: 06/05/2002, 12h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo