[PHP] Problème système parrainage

Problème système parrainage [PHP] - PHP - Programmation

Marsh Posté le 29-03-2011 à 19:22:20    

Salut à tous,
 
J'ai mis un système de parrainage sur mon site, à l'inscription il y a un champ "Pseudo du parrain" qui est obligatoire pour l'inscription, si le pseudo du parrain est un vrai pseudo après vérification dans la BDD, sa ajoute 100 crédits au Pseudo du parrain et sa inscrit le nouvel utilisateur mais si le pseudo du parrain n'existe pas dans la BDD, sa dit "Ce parrain n'existe pas" et sa n'ajoute pas 100 crédits au parrain.
 
Mais il y a un problème, quand je m'inscris sur mon site avec un pseudo de parrain qui existe, sa n'ajoute pas l'utilisateur à la BDD et sa dit "Ce parrain n'existe pas" alors qu'il existe :/
 

Code :
  1. <?php
  2. include('includes/header.php');
  3. if(connecte())
  4. { // il est connécté
  5. ?>
  6. <p>Vous êtes déjà connéctés - Impossible de vous inscrire une seconde fois !</p>
  7. <?PHP
  8. }
  9. elseif(!connecte() AND isset($_POST['valider'])) { // il est pas connécté et a validé le formulaire
  10.  $erreur = array();
  11.  if (empty($_POST['pseudo']))
  12.  {
  13.     $erreur[] = 'Le champ Pseudo ne doit pas être vide.';
  14.  }
  15.  if (empty($_POST['mdp']))
  16.  {
  17.     $erreur[] = 'Le champ Mot de passe ne doit pas être vide.';
  18.  }
  19.  if ($_POST['mdpConfirm'] != $_POST['mdp'])
  20.  {
  21.     $erreur[] = 'Les deux motes ne passe ne sont pas identiques.';
  22.  }
  23.  if (empty($_POST['email']))
  24.  {
  25.     $erreur[] = 'Le champ Email ne doit pas être vide.';
  26.  }
  27.  if (empty($_POST['parrain']))
  28.  {
  29.  $erreur[] = 'Le champ parrain ne doit pas être vide.';
  30.  }
  31.  if (!count($erreur))
  32.  {
  33.   $pseudo = securiserVariable($_POST['pseudo']);
  34.   $mdp = HoloHash($_POST['mdp']);
  35.   $email = securiserVariable($_POST['email']);
  36.   $ip = $_SERVER['REMOTE_ADDR'];
  37.   $retour = mysql_query("SELECT COUNT(*) AS nbreEntrees FROM users WHERE pseudo='".$pseudo."'" );
  38.   $donnees = mysql_fetch_array($retour);
  39.   if($donnees['nbreEntrees'] <= 0)
  40.   {
  41.    $creditsAjouter = 100; // Nombre de crédits à ajouter
  42.    $reponse= mysql_query("SELECT COUNT(*) AS pseudo FROM users WHERE pseudo='".mysql_real_escape_string($_POST['parrain'])."'" );
  43.    {
  44.     echo "Ce parrain n'existe pas!";
  45.    }
  46.    if($reponse == 1)
  47.    {
  48.     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
  49.     mysql_query("INSERT INTO users VALUES ('','".$pseudo."','".$mdp."','".$email."','".$ip."','','')" );
  50.     echo 'L\'inscription s\'est déroulée avec succès, vous pouvez maintenant vous connecter.';
  51.     }
  52.   }
  53.   else
  54.   { // Le pseudo n'existe pas donc c'est un pseudo bidon
  55.   
  56.    $erreur[] = 'Ce pseudo est déjà pris par une autre personne';
  57.   }
  58.  }
  59.  else
  60.  {
  61.   $nbrErreur = count($erreur);
  62.   echo '<h3>Il y a '.$nbrErreur.' détectés.</h3>';
  63.    echo '<h3>Liste des erreurs :</h3><ul>';
  64.    foreach($erreur as $erreur) echo "<li>$erreur</li>";
  65.    echo '</ul>';
  66.    echo'Merci de re-remplir le formulaire.';
  67.    echo'
  68.    <br/>
  69.    <br/>
  70.   <form method="post">
  71.   <fieldset>
  72.   <legend>Inscription - MaxComs</legend>
  73.   <label for="pseudo">Pseudo :</label>
  74.   <input type="text" value="" id="pseudo" name="pseudo"/>
  75.   <br/>
  76.   <br/>
  77.   <label for="mdp">Mot de passe :</label>
  78.   <input type="password" value="" id="mdp" name="mdp"/>
  79.   <br/>
  80.   <br/>
  81.   <label for="mdpConfirm">Mot de passe (confirm) :</label>
  82.   <input type="password" value="" id="mdpConfirm" name="mdpConfirm"/>
  83.   <br/>
  84.   <br/>
  85.   <label for="email">Votre Email</label>
  86.   <input type="text" value="" id="email" name="email"/>
  87.   <br/>
  88.   <br/>
  89.   <label for="parrain">Pseudo du parrain :</label>
  90.   <input type="text" value="" id="parrain" name="parrain"/>
  91.   <br/>
  92.   <br/>
  93.   <label for="valider">&nbsp;</label>
  94.   <input type="submit" name="valider" value=" Valider l\'inscription "/>
  95.   <br/>
  96.   <br/>
  97.   </fieldset>
  98.   </form>';
  99.  }
  100. }
  101. else
  102. { // il est pas connécté et n'a pas validé le formulaire
  103. ?>
  104.  <p>Voici ci-dessous le formulaire d'inscription à Maxcoms.</p>
  105.  <p><br><b>Merci de remplir tous les champs (il sont tous obligatoire) !<br><br>
  106.  </form><fieldset>
  107.  <legend><b>ATTENTION :</b></legend>Il est obliger de donnez le pseudo du parrain, c'est à dire le pseudo de la personne qui vous a fais connaître ce site !</fieldset></b></p>
  108.  <form method="post">
  109.  <fieldset>
  110.  <legend>Inscription - MaxComs</legend>
  111.  <label for="pseudo">Pseudo :</label>
  112.  <input type="text" value="" id="pseudo" name="pseudo"/>
  113.  <br/>
  114.  <br/>
  115.  <label for="mdp">Mot de passe :</label>
  116.  <input type="password" value="" id="mdp" name="mdp"/>
  117.  <br/>
  118.  <br/>
  119.  <label for="mdpConfirm">Mot de passe (confirmation) :</label>
  120.  <input type="password" value="" id="mdpConfirm" name="mdpConfirm"/>
  121.  <br/>
  122.  <br/>
  123.  <label for="email">Votre Email :</label>
  124.  <input type="text" value="" id="email" name="email"/>
  125.  <br/>
  126.  <br/>
  127.  <label for="parrain">Pseudo du parrain :</label>
  128.  <input type="text" value="" id="parrain" name="parrain"/>
  129.  <br/>
  130.  <br/>
  131.  <label for="valider">&nbsp;</label>
  132.  <input type="submit" name="valider" value=" Valider l'inscription "/>
  133.  <br/>
  134. <?php
  135. }
  136. include('includes/footer.php');
  137. ?>


 
Merci d'avance !
Dorian.


Message édité par dorian06 le 29-03-2011 à 19:24:21
Reply

Marsh Posté le 29-03-2011 à 19:22:20   

Reply

Marsh Posté le 30-03-2011 à 11:53:11    

Affiche la requête de récupération du parrain avec un echo et exécute là directement dans la base de données.
Ça te dira si ça merde avant, pendant ou après la requête.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed