Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de structure de contrôle

Sujet résolu
    6 mai 2007 à 21:24:22

    Bonsoir à tous,
    je suis entrain de créer un espace membre sans l'utilisation de SQL, les informations sont répertorier dans un .txt.
    J'ai rencontrer un problème dans la vérification si le login ou l'email existe déjà.
    le message d'erreur m'affiche:
    Parse error: parse error in /data/members/free/multimania/fr/p/l/a/plandunet/htdocs/inscription.php on line 53

    la ligne 53 est else {

    juste avant il y a deux } qui ferme une boucle for ($i = 0; $i < $maxmembres; $i++) et un qui ferme un elseif

    Si je ferme la boucle aprés le else { la page s'affiche mais la vérification de l'email ne fonctionne pas, alors que la vérification du login fonctionne mais s'affiche en flood a cause de la boucle....

    Je voudrais faire en sorte que le else s'exécute aprés la premiere vérification des champs email, login, password

    Je vous colle le code, en espérant que quelqu'un puisse m'arranger ce problème ça serais vraiment gentil de sa part



    <?php
    if ($action == "ajouter") {
    if (empty($email)) {
    echo "<font color='#990000' size='2'>Erreur: Vous devez entrer votre adresse email. Veuillez recommencer</font><br>";
    }
    elseif ((strlen($email) < 5) || (strlen($email) > 40)) {
    echo "<font color='#990000' size='2'>Erreur: Votre adresse email est invalide. Veuillez recommencer</font><br>";
    }
    elseif (!ereg("@",$email)) {
    echo "<font color='#990000' size='2'>Erreur: Votre adresse email ne comport pas le symbole @. Veuillez recommencer</font><br>";
    }
    elseif (empty($login)) {
    echo "<font color='#990000' size='2'>Erreur: Vous devez entrer votre login. Veuillez recommencer</font><br>";
    }
    elseif ((strlen($login) < 3) || (strlen($login) > 20)) {
    echo "<font color='#990000' size='2'>Erreur: Votre nom est invalide, il doit faire entre 3 et 20 caractères. Veuillez recommencer</font><br>";
    }
    elseif ((!($mdp1)) || (!($mdp2))) {
    echo "<font color='#990000' size='2'>Erreur: Vous devez entrer votre mot de passe. Veuillez recommencer</font><br>";
    }
    elseif ($mdp1 != $mdp2) {
    echo "<font color='#990000' size='2'>Erreur: Vous n'avez pas écrit le même mot de passe. Veuillez recommencer</font><br>";
    }
    elseif ((strlen($mdp1) < 6) || (strlen($mdp2) > 40)) {
    echo "<font color='#990000' size='2'>Erreur: Votre mot de passe doit contenire au minimum 6 caractères. Veuillez recommencer</font><br>";
    }
    //Vérification de l'existance du login ou de l'adresse e-mail
    $dir = "membres/"; // Repertoire des du fichier
    $file = "membres.txt"; // Nom du fichier
    $maxmembres = 50; // Nombre max de ligne

    $rec = file($dir."$file");
    if (count($rec) < $maxmembres) {
    $maxmembres = count($rec);
    //echo "Ligne $maxnews - $rec[1] <br>";
    }

    for ($i = 0; $i < $maxmembres; $i++) {
    $rec[$i] = trim($rec[$i]);
    //echo "Ligne ($i) $rec[$i] <br>";
    $vari = $rec[$i];
    $ra = substr(strstr(substr(strstr($vari, '-'),1), '-'),2); //Reste pseudo - password
    $ra1 = strstr($ra, '-'); //Reste - password
    $ra2 = substr(str_replace($ra1, "", $ra),0,-1); //Reste Pseudo
    $re = substr(strstr($vari, '-'),1);
    $re1 = strstr($re, '-');
    $re2 = substr(str_replace($re1, "", $re),0,-3); //Affiche emaile@host.com
    echo "TEST DE LA VÉRIFICATION:<br><br> LOGIN: $ra2. <br>E-MAIL: $re2.<br>";
    if ($ra2 == $login) {
    echo "<font color='#990000' size='2'>Erreur: Le login $login est déjà répertorier. Veuillez en saisire un autre.</font>";
    }
    elseif ($re2 == $email) {
    echo "<font color='#990000' size='2'>Erreur: L'adresse email $email est déjà répertorier. Veuillez en saisire une autre.</font>";
    }
    else {
    $date = date("d/m/Y");
    $heure = date("H:i");
    $texte = "$date $heure - $email - $login - $mdp1 \n";
    $nfichier = fopen($dir."$file", "a");
    fputs($nfichier, "$texte");
    fclose($nfichier);
    echo "Votre inscription est réussite ! <br>";
    }
    }
    }


    ?>
    <html>
    <head>
    <title>Inscription &agrave; l'espace membres</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <STYLE type=text/css>
    BODY {
    scrollbar-face-color: #82AE82;
    scrollbar-shadow-color: #000000;
    scrollbar-highlight-color: #FFFFFF;
    scrollbar-3dlight-color: #000000;
    scrollbar-darkshadow-color: #000000;
    scrollbar-track-color: #b1d9b1;
    scrollbar-arrow-color: #b1d9b1;
    }
    .menu {
    FONT-SIZE: 10pt; COLOR: #666600; FONT-FAMILY: Arial, Helvetica, sans-serif; FONT-WEIGHT: bold;
    }
    .texte {
    FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Arial, Helvetica, sans-serif;
    }
    .rub {
    FONT-SIZE: 10pt; COLOR: #666666; FONT-FAMILY: Arial, Helvetica, sans-serif; FONT-WEIGHT: bold;
    }
    .menu1 {
    FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Arial, Helvetica, sans-serif;
    }
    .form {
    FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: Arial, Helvetica, sans-serif;
    }
    .lien {
    FONT-SIZE: 10pt; COLOR: #666666; FONT-FAMILY: Arial, Helvetica, sans-serif;
    }
    A:link {
    FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none
    }
    A:visited {
    FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none
    }
    A:hover {
    FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: underline
    }
    </STYLE>
    </head>

    <body bgcolor="#B1D9B1">
    <form name="ajouter" method="post" action="inscription.php">
    <input type="hidden" name="action" value="ajouter">
    <div align="center">
    <table width="51%" border="0">
    <tr>
    <td class="rub" colspan="2"><div align="center">Inscription &agrave; notre espace membres</div></td>
    </tr>
    <tr>
    <td width="52%">E-Mail :</td>
    <td width="48%"> <input name="email" type="text" id="email" STYLE="BACKGROUND-COLOR: #B1D9B1" value="<? echo "$email" ?>"> <font color="#FF0000" size="2">*</font></td>
    </tr>
    <tr>
    <td>Login :</td>
    <td><input name="login" type="text" id="login" STYLE="BACKGROUND-COLOR: #B1D9B1" value="<? echo "$login" ?>"> <font color="#FF0000" size="2">*</font></td>
    </tr>
    <tr>
    <td>Mot de passe :</td>
    <td><input STYLE="BACKGROUND-COLOR: #B1D9B1" name="mdp1" type="password" id="email3"> <font color="#FF0000" size="2">*</font></td>
    </tr>
    <tr>
    <td>Confirmation du mot de passe :</td>
    <td><input STYLE="BACKGROUND-COLOR: #B1D9B1" name="mdp2" type="password" id="email4"> <font color="#FF0000" size="2">*</font></td>
    </tr>
    <tr>
    <td><font color="#990000" size="2"><em>* = Champs obligatoire</em></font></td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td><input type="submit" name="Submit" value="S'inscrire"></td>
    </tr>
    </table>
    </div>
    </form>
    </body>
    </html>

    • Partager sur Facebook
    • Partager sur Twitter
      6 mai 2007 à 22:44:34

      est tu sur d'avoir mit les droits necessaires a la lecture du fichier ?
      • Partager sur Facebook
      • Partager sur Twitter
        7 mai 2007 à 0:20:58

        Oui, le fichier .txt s'écrit correctement
        • Partager sur Facebook
        • Partager sur Twitter
          8 mai 2007 à 2:30:51

          Bonsoir,
          je vien de refaire la page d'inscription, le code de lecture du fichier .txt qui fonctionne maintenant correctement, je me retrouve avec le problème suivant:
          Aprés la vérification de l'existance du login et de l'email dans le fichier .txt, j'arrive pas a placer l'else pour mettre le code d'ajout dans le fichier .txt....

          En espérant que quelqu'un puisse m'aider

          <?php
          if ($action == "ajouter") {
          if (empty($email)) {
          echo "<font color='#990000' size='2'>Erreur: Vous devez entrer votre adresse email. Veuillez recommencer</font><br>";
          }
          elseif ((strlen($email) < 5) || (strlen($email) > 40)) {
          echo "<font color='#990000' size='2'>Erreur: Votre adresse email est invalide. Veuillez recommencer</font><br>";
          }
          elseif (!ereg("@",$email)) {
          echo "<font color='#990000' size='2'>Erreur: Votre adresse email ne comport pas le symbole @. Veuillez recommencer</font><br>";
          }
          elseif (empty($login)) {
          echo "<font color='#990000' size='2'>Erreur: Vous devez entrer votre login. Veuillez recommencer</font><br>";
          }
          elseif ((strlen($login) < 3) || (strlen($login) > 20)) {
          echo "<font color='#990000' size='2'>Erreur: Votre nom est invalide, il doit faire entre 3 et 20 caractères. Veuillez recommencer</font><br>";
          }
          elseif ((!($mdp1)) || (!($mdp2))) {
          echo "<font color='#990000' size='2'>Erreur: Vous devez entrer votre mot de passe. Veuillez recommencer</font><br>";
          }
          elseif ($mdp1 != $mdp2) {
          echo "<font color='#990000' size='2'>Erreur: Vous n'avez pas écrit le même mot de passe. Veuillez recommencer</font><br>";
          }
          elseif ((strlen($mdp1) < 6) || (strlen($mdp2) > 40)) {
          echo "<font color='#990000' size='2'>Erreur: Votre mot de passe doit contenire au minimum 6 caractères. Veuillez recommencer</font><br>";
          }
          $fichier = "membres.txt";
          $i="-1";
          if(file_exists("$fichier")) {
          $fp=fopen($fichier,"r");
          while (!feof($fp)){
          $i=$i+1;
          $tableau[$i]=fgetcsv($fp,4000,"|");
          //echo "test: $col. ID:" .$tableau[$i][0]. " DATE: " .$tableau[$i][1]. " IP: " .$tableau[$i][2]. " E-MAIL: " .$tableau[$i][3]. " LOGIN: " .$tableau[$i][4]. " PASSWORD: " .$tableau[$i][5]. "<br>";
          if ($login == $tableau[$i][4]) {
          echo "<font color='#990000' size='2'>Erreur: Le login choisi est déjà répertorier. Veuillez en saisire un autre.</font><br>";
          $login = "";
          }
          elseif ($email == $tableau[$i][3]) {
          echo "<font color='#990000' size='2'>Erreur: L'email choisi est déjà répertorier. Veuillez en saisire un autre.</font><br>";
          $email = "";
          }
          else { echo "<b>TEST espace pour le code ajout de membres<b><br>"; }
          }
          fclose($fp);
          }
          }
          ?>
          • Partager sur Facebook
          • Partager sur Twitter
            8 mai 2007 à 6:16:48

            Je t'invite à lire ce sujet afin de mettre ton code dans la balise PHP.
            Ca sera beaucoup plus lisible et je pense que plus de personnes t'aideront. ;)

            Cependant, MySQL est tellement extensible que je me demande comment ferait-on pour s'en passer ? Car je doute que gérer les membres avec un fichier txt soit facile.
            • Partager sur Facebook
            • Partager sur Twitter
              8 mai 2007 à 16:34:39

              Salut Nephthys,
              Je vien de lire la page, je vai le mettre dans la balise.
              Je n'utilise pas MySQL car il faut acheter un hebergeur, je veux commencer a gagner de l'argent sans rien dépenser donc je relève ce défie de créer et de gérer les membres dans un fichier .txt :p

              Voilà mon code, le problème est le même, je n'arrive pas a placer l'else pour le code d'ajout de membre dans le fichier .txt.
              En espérant que quelqu'un puisse m'aider, ça serai vraiment sympa de sa part :D


              <?php
              if ($action == "ajouter") {
              if (empty($email)) {
              echo "<font color='#990000' size='2'>Erreur: Vous devez entrer votre adresse email. Veuillez recommencer</font><br>";
              }
              elseif ((strlen($email) < 5) || (strlen($email) > 40)) {
              echo "<font color='#990000' size='2'>Erreur: Votre adresse email est invalide. Veuillez recommencer</font><br>";
              }
              elseif (!ereg("@",$email)) {
              echo "<font color='#990000' size='2'>Erreur: Votre adresse email ne comport pas le symbole @. Veuillez recommencer</font><br>";
              }
              elseif (empty($login)) {
              echo "<font color='#990000' size='2'>Erreur: Vous devez entrer votre login. Veuillez recommencer</font><br>";
              }
              elseif ((strlen($login) < 3) || (strlen($login) > 20)) {
              echo "<font color='#990000' size='2'>Erreur: Votre nom est invalide, il doit faire entre 3 et 20 caractères. Veuillez recommencer</font><br>";
              }
              elseif ((!($mdp1)) || (!($mdp2))) {
              echo "<font color='#990000' size='2'>Erreur: Vous devez entrer votre mot de passe. Veuillez recommencer</font><br>";
              }
              elseif ($mdp1 != $mdp2) {
              echo "<font color='#990000' size='2'>Erreur: Vous n'avez pas écrit le même mot de passe. Veuillez recommencer</font><br>";
              }
              elseif ((strlen($mdp1) < 6) || (strlen($mdp2) > 40)) {
              echo "<font color='#990000' size='2'>Erreur: Votre mot de passe doit contenire au minimum 6 caractères. Veuillez recommencer</font><br>";
              }
              $fichier = "membres.txt";
              $i="-1";
              if(file_exists("$fichier")) {
              $fp=fopen($fichier,"r");
              while (!feof($fp)){
              $i=$i+1;
              $tableau[$i]=fgetcsv($fp,4000,"|");
              //echo "test: $col. ID:" .$tableau[$i][0]. " DATE: " .$tableau[$i][1]. " IP: " .$tableau[$i][2]. " E-MAIL: " .$tableau[$i][3]. " LOGIN: " .$tableau[$i][4]. " PASSWORD: " .$tableau[$i][5]. "<br>";
              if ($login == $tableau[$i][4]) {
              echo "<font color='#990000' size='2'>Erreur: Le login choisi est déjà répertorier. Veuillez en saisire un autre.</font><br>";
              $login = "";
              }
              elseif ($email == $tableau[$i][3]) {
              echo "<font color='#990000' size='2'>Erreur: L'email choisi est déjà répertorier. Veuillez en saisire un autre.</font><br>";
              $email = "";
              }
              else { echo "<b>TESTScript d'ajout<b><br>"; }
              }
              fclose($fp);
              }
              }
              ?>
              • Partager sur Facebook
              • Partager sur Twitter
                10 mai 2007 à 0:07:22

                C'est bon j'y suis arriver, je fait maintenant la page de gestionnaire de membres
                • Partager sur Facebook
                • Partager sur Twitter

                Problème de structure de contrôle

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown