Php-Passage de variables lors d'une redirect°

Résolu
Bonjour,

Je suis en train de créer un petit script PHP d'identification.

1er formulaire (login.html)

Ainsi, j'ai un 1er formulaire HTML avec 2 champs textes ("login" et "mot de passe) et un bouton valider.
J'ai un script JAVASCRIPT qui vérifie si les champs sont renseignés si c'est le cas, je passe au formulaire suivant (si ce n'est pas le cas, je reste sur ce formulaire jusqu'à que les deux champs textes soient renseignés)

2ème formulaire (testlogin.php)

Mon 2ème formulaire teste en PHP la validité de mon mot de passe via un base de données et un cryptage MD5.
Si le login et le mot de passe sont corrects, tous va bien.

Cependant, ça se complique lorsqu'il s'agit d'un login et d'un pass qui ne correspondent pas...
En effet, si mon login et mon mot de passe ne sont pas concordant, je fais une redirection sur login.html (1er formulaire) mais, je souhaite faire afficher sur mon 1er formulaire que le login et le mot de passe sont incorrects.

Le problème est que lors tout premier affichage de login.php, le message d'erreur s'affiche déjà...

Alors, si quelqu'un à un solution ? ? ?
Configuration: Windows XP
Firefox 2.0.0.14

3 réponses

  1. Regarde ce lien :

    URL = http://participer.hostarea.org/Cours/Acces/Connexion.html
    LOGIN = cours
    PASSW = maconnexion

    Il contient les infomartions que tux veux!

    Epsilone
    1. envoi ta variable comme quoi il y a eut une erreur en method post via un formulaire en hidden
      et ds login.php tu verifie que $_POST['ta_variable_erreur'] existe ( avec un isset )
      et si c'est le cas alr tu l'affiche .. sinon tu affiche le formulaire tt simple ^^
      1. Salut,

        Quel message d'erreur ???

        As-tu pensé à utiliser des variables de session ???
        Pourrait-tu nous mettre ton code si tu veux qu'on y jette un oeil ?
        1. voila le 1er formulaire...

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
          <head>
          <title>Connexion à la base de données</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

          <SCRIPT LANGUAGE="JavaScript">
          /* On crée une fonction de verification */
          function verifForm(formulaire)
          {
          if((formulaire.login.value == "") || (formulaire.pass.value == "")) /* on detecte si login et pass sont vides */
          alert('Remplissez tous les champs avant de valider !!'); /* dans ce cas on lance un message d'alerte */
          else
          formulaire.submit(); /* sinon on envoi le formulaire */
          }
          </SCRIPT>

          </head>
          <body>

          <h1>Bienvenue !-)</h1>
          Ce petit formulaire va vous permettre d'acceder à la base de données
          </br>
          </br>

          <form name="formlogin" action="testlogin.php" method="post">
          <p>
          <table border=0 style="text-align: right;">
          <tr>
          <td><label for="llogin">Login* :</label></td>
          <td><input type="text" name="login" id="llogin" /></td>
          </tr>
          <tr>
          <td><label for="lmdp">Mot de passe* :</label></td>
          <td><input type="password" name="pass" id="lmdp" /></td>
          </tr>
          <tr>
          <td><h6>* champs obligatoires</h6> </td>
          </tr>
          <tr>
          <td></td>
          <td><input type="button" value="Valider" onClick="verifForm(this.form)"/></td>
          </tr>
          </table>
          </p>
          </form>
          </body>
          </html>

          ET VOILA LE SECOND

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
          <head>
          <title>Test du login</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
          </head>
          <body>
          <!--Nous allons créer un formulaire qui testera le login et le mot de passe-->

          <!-- - - - login = $_POST['login'] - - - - - - pass = $_POST['pass'] - - - -->

          <?php
          $connex = mysql_connect("localhost", "root", "");
          mysql_select_db('brocanteurs');

          $req = "SELECT pass FROM root WHERE login='".$_POST['login']."'";
          $resultat = mysql_query($req);
          $array = mysql_fetch_array($resultat);
          mysql_close($connex);

          if($array['pass'] == md5($_POST['pass']))
          {
          // On affiche la page menu.php
          echo "Login et mot de passe corrects";
          // REDIRECTION vers menu.php

          session_start();
          session_register($_POST['login']);
          session_register($_POST['pass']);

          header("Location: menu.php\n\n");
          }
          else
          {
          header("Location: login.html\n\n");
          }
          ?>
          </body>
          </html>
        2. @nino11En cas de mauvais identifiants :
          header("Location: login.php&erreur=loginfail");

          sur login.php

          if(isset($_GET["erreur"]))
          {
          if($_GET["erreur"]=="loginfail")
          {
          echo "Erreur : Mauvais identifiants";
          }
          }

          Il faut que tu passe ta page login.html en login.php bien sur mais c'est pas grand chose :/
        3. @NieliMaintenant, lorsque j'entre un login et pass erronés, il ne revient plus sur login.php, je crois qu'il n'atteint même pas testlogin.php
        4. @NieliBon apperement tu veux pas :/ tant pis