Formulaire et traitement dans une seule page php [Résolu]

Messages postés
2
Date d'inscription
lundi 26 juillet 2010
Dernière intervention
3 août 2010
- - Dernière réponse : cs_NouhaS
Messages postés
2
Date d'inscription
lundi 26 juillet 2010
Dernière intervention
3 août 2010
- 3 août 2010 à 13:20
Bonjour à tous,

Je veux réaliser une page d'authentification dans un site. J'ai procédé de la minière suivante: avec deux php, j'ai mis dans le premier le formulaire et dans un deuxième le traitement sauf que dans les cas erreurs(mot de passe incorrect et /ou login incorrect) je me retrouve dans une autre page! Or ce que je désire c'est après l'affichage de la boite de dialogue dans le cas d'erreur je veux que ça soit dans le formulaire afin de pouvoir retaper ...login ...!

Voilà donc j'ai essayé de rassemble mon code mais c'eest le même résultat que j'obtiens que ça soit avant ou après...

Je voudrai bien que vous m'aidez si vous le pouvez!
Merci

Vous trouverez juste en dessous mon code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns= "http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Authentification</title>
</head>


<!--------------------------------->
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=catalogue', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
?>
<!--------------------------------->


<?php
if ( isset($_POST['login']) && !empty($_POST['login']) ) // Si un formulaire a déjà été envoyé, si ceci ne marche pas, essaie avec !empty($_POST['Champ'])
{
// Code de traitement du formulaire, celui qui est normalement sur ta page externe

$reponse $bdd->prepare('SELECT * FROM utilisateur WHERE Login_Utilisateur ?');
$reponse->execute(array($_POST['login']));

if ($donnees = $reponse->fetch())
{
?>

<?php

if (isset($_POST['mot_de_passe']) AND $_POST['mot_de_passe'] == $donnees['Mot_De_Passe_Utilisateur']) // Si le mot de passe est bon
{
// On affiche les codes
?>
Votre Session


<script language="javascript" > alert('Authentification réussie');</script>
Vous pouvez effectué vos opérations souhaitées!!


<?php
}
else // Sinon, on affiche un message d'erreur
{
?>
<script language ="javascript" > alert('Mot de passe incorrect');</script>
<?php
}
}

else{
?>
<script language="javascript" > alert('login incorrect');</script>
<?php
}
}
else
{
?>
<!-- Et ici le formulaire -->

Veuillez vous authentifiez


<form action="auto.php" method="post">

<label>Login</label>,
,

----

<label>mot de Passe</label>,






</form>

<?php
}
?>



</html>
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Dernière intervention
27 avril 2012
3
Merci
Salut,

je me retrouve dans une autre page!

Ah bon ? Laquelle ?


Cordialement,

Kohntark -

Merci kohntark 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de kohntark
Messages postés
57
Date d'inscription
mardi 5 mars 2002
Dernière intervention
12 août 2010
0
Merci
Si le code que tu as envoyé est bien dans la script auto.php, il n'y a pas de raison que tu change de page.

mais souvent pour éviter cette ecueil, on met :
<form action="<?=$_SERVER["PHP_SELF"] ?>" method="post"> 


au lieu de

<form action="auto.php" method="post"> 


______oOOO________OOOo________

RaftY, du code C commode!
Commenter la réponse de RaftY
Messages postés
10
Date d'inscription
dimanche 16 novembre 2008
Dernière intervention
2 septembre 2010
0
Merci
Hello,

Voici un petit exemple de code pour un formulaire avec traitement sur la meme page, prend exemple dessus pour rassembler tes pages en une seule:
(Bon on imagine que t'as déjà ton session_start() et tout le tsoin-tsoin dans ton index...)
<?php
// Le si form a été envoyé, on traite
if(!empty($_POST['mon_form']))
{
// Divers traitements
if(!empty($_POST['nom']))
{
// Form OK
$form_ok = 1;
}
else
{
$form_erreur = "Le nom doit être rempli! Non mais!
";
}
}

if($form_ok != 1)
{
// S'il y a une erreur on l'affiche
if(!empty($form_erreur))
{
print "".$form_erreur."

";
}

// Mon formulaire
print "<form method='post' action=''>
Votre nom!




</form>";
}
else
{
// Message de confirmation => le formulaire a été traité et tout est cool! (lol)
print "Trop cool!";
}
?>
Commenter la réponse de narkos2
Messages postés
2
Date d'inscription
lundi 26 juillet 2010
Dernière intervention
3 août 2010
0
Merci
Merci à vous tous!!

C'est bon j'ai réglé le problème
Commenter la réponse de cs_NouhaS

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.