Limiter le multi-compte en PHP

Bonjour,

Je voudrais limiter le multi-compte à 3 compte/par IP mais j'ai un script qui bloquer directe à partir de 1 compte le voila :

else if ($IP = $IP) // Si l'ip est dans la BDD
{
echo ("<strong>Vous disposer déjà d'un compte dans notre base de données !! Inscription annulé</strong>");
}

Donc je voulais avoir un nouveau script pour limiter les comptes à 3.

4 réponses

  1. Ben tu comptes le nombre de fois ou l'IP est dans la BDD.

    Exemple vite fait :

    select count(*) from table where IP=$IP;

    Si résultat >3, affiche ton message d'erreur....
    1. Merci mais je l'ai remplacé comme tu m'as dit else if select count(*) from table where IP=$IP;

      mais sa ne marche pas sa me fait une erreur

      je suis un peux nul en php
      1. Il faudrait que j'ai + de code pour t'aider...

        Il y a quoi avant le else if ?

        D'ou vient $IP ?
      2. je peux te donner ma page d'inscription entière ?
      3. Tu peux mettre le fichier sur http://cijoint.fr/ si tu veux, que j'y jette un oeil....
      4. l'extension php ne peut être déposée je change le format je .txt au pire ?
      5. non c bon bouge pas ;)
    2. <?php session_start();
      require_once('config.php');
      require_once('config2.php'); ?>
      <?php include('header.php')?>
      <?php include('menu.php')?>
      </div>
      <div class="wrap-content">
      <div id="box_758">
      <div class="top">
      <img src="images/theme/title/inscrire.png">
      </div><div class="back">
      <div class="box_top"></div>
      <div class="box">
      <?php
      $bdd=mysql_connect($host,$user,$pass); // On se connecte à MySQL
      mysql_select_db($db); // On se connecte à la BDD "ancestra_other"

      if(isset($_POST['ok']))
      {
      $pseudo = mysql_real_escape_string(htmlspecialchars(trim($_POST['pseudo']) ) );
      $username = mysql_real_escape_string(htmlspecialchars(trim($_POST['username']) ) );
      $pass = mysql_real_escape_string(htmlspecialchars(trim($_POST['pass']) ) );
      $pass2 = mysql_real_escape_string(htmlspecialchars(trim($_POST['pass_confirm']) ) );
      $email = mysql_real_escape_string(htmlspecialchars(trim($_POST['email']) ) );
      // Ajouter par Sirgue
      if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
      $IP = $_SERVER['HTTP_X_FORWARDED_FOR'];
      elseif(isset($_SERVER['HTTP_CLIENT_IP']))
      $IP = $_SERVER['HTTP_CLIENT_IP'];
      else
      $IP = $_SERVER['REMOTE_ADDR'];
      $question = mysql_real_escape_string(htmlspecialchars(trim($_POST['question']) ) );
      $reponse = mysql_real_escape_string(htmlspecialchars(trim($_POST['reponse']) ) );
      // Ajouter par Sirgue

      if (exi($username) != '0') // Si le nom de compte est déjà utiliser
      {
      echo ("<center><strong>Le nom de compte : '". $username ."' est déjà utilisé, veuillez en choisir un autre...</strong></center>");
      }
      else if (exi3($pseudo) != '0') // Si le pseudo est déjà utiliser
      {
      echo ("<center><strong>Le pseudo : '". $pseudo ."' est déjà utilisé, veuillez en choisir un autre...</strong></center>");
      }
      else if ($pass != $pass2) // Si les deux mots de passe sont diférent
      {
      echo ("<center><strong>Les deux mots de passe ne sont pas identiques, veuillez recommencer...</strong></center>");
      }
      else if (!$_POST['username'] || !$_POST['pass'] || !$_POST['pass_confirm'] || !$_POST['email']) // Si les champs sont vides
      {
      echo ("<center><strong>Vous devez remplir tout les champs !</strong></center>");
      }
      else if ($IP = $IP) // Si l'ip est dans la BDD
      {
      echo ("<strong>Vous disposer déjà de 3 comptes dans notre base de données !! Inscription annulé</strong>");
      }

      // Ajouter par Sirgue
      else
      {
      echo '<center><strong>Vous êtes maintenant inscrit ! Vous pouvez des maintenant jouer sur notre serveur! <center><a href="join.php">Telecharger Uplauncher</a></center></strong></center>';
      mysql_query("INSERT INTO accounts (account, pass, level, email, lastIP, question, reponse, pseudo) VALUES ('$username', '$pass', 0, '$email', '$IP', '$question', '$reponse', '$pseudo')") or die (mysql_error() );
      mysql_close($bdd);
      $result = @mysql_query("SELECT * FROM accounts WHERE account = '$account'");

      }
      }?><?php include('footer.php')?>

      Enfete j'ai 2 page PHP pour l'inscription celle l'a enfete c'est tout ce qui est au niveau Vérification du compte
      1. Test un truc du genre :

        else if ($IP = $IP) // Si l'ip est dans la BDD
        {
        	$test = mysql_query("select count(*) from accounts where lastIP='.$IP.'");
        	if ($test>3)
        	{
        		echo ("<strong>Vous disposer déjà de 3 comptes dans notre base de données !! Inscription annulé</strong>");
        	}
        }
        
      2. ok attend je teste
      3. sa me fait comme quoi je dispose de 3 compte dans la bdd mais que jen n'ai que 2
      4. ??? Bizarre...
      5. Mais déja cette ligne m'intrigue :

         else if ($IP = $IP)


        Le probleme vient de la !