Php-Passage de variables lors d'une redirect°

Résolu/Fermé
nino11 Messages postés 76 Date d'inscription samedi 8 décembre 2007 Statut Membre Dernière intervention 27 juin 2008 - 23 mai 2008 à 16:55
Brachior Messages postés 613 Date d'inscription dimanche 21 octobre 2007 Statut Membre Dernière intervention 22 juin 2009 - 1 juin 2008 à 01:33
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 ? ? ?
A voir également:

3 réponses

epsiloneIB Messages postés 133 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 13 septembre 2009 8
23 mai 2008 à 17:27
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
Brachior Messages postés 613 Date d'inscription dimanche 21 octobre 2007 Statut Membre Dernière intervention 22 juin 2009 46
1 juin 2008 à 01:33
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
Lazarey Messages postés 3239 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 21 mai 2012 745
23 mai 2008 à 16:59
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 ?
0
nino11 Messages postés 76 Date d'inscription samedi 8 décembre 2007 Statut Membre Dernière intervention 27 juin 2008
23 mai 2008 à 17:18
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>
0
Nieli > nino11 Messages postés 76 Date d'inscription samedi 8 décembre 2007 Statut Membre Dernière intervention 27 juin 2008
23 mai 2008 à 17:21
En 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 :/
0
nino11 Messages postés 76 Date d'inscription samedi 8 décembre 2007 Statut Membre Dernière intervention 27 juin 2008 > Nieli
23 mai 2008 à 17:32
Maintenant, 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
0
Nieli > nino11 Messages postés 76 Date d'inscription samedi 8 décembre 2007 Statut Membre Dernière intervention 27 juin 2008
23 mai 2008 à 17:34
reposte les codes stp :/
0
Nieli > Nieli
23 mai 2008 à 17:48
Bon apperement tu veux pas :/ tant pis
0