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

cs_NouhaS 2 Messages postés lundi 26 juillet 2010Date d'inscription 3 août 2010 Dernière intervention - 29 juil. 2010 à 15:26 - Dernière réponse : cs_NouhaS 2 Messages postés lundi 26 juillet 2010Date d'inscription 3 août 2010 Dernière intervention
- 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 

4 réponses

Répondre au sujet
kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention - 29 juil. 2010 à 22:04
+3
Utile
Salut,

je me retrouve dans une autre page!

Ah bon ? Laquelle ?


Cordialement,

Kohntark -
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de kohntark
RaftY 57 Messages postés mardi 5 mars 2002Date d'inscription 12 août 2010 Dernière intervention - 30 juil. 2010 à 13:31
0
Utile
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
narkos2 10 Messages postés dimanche 16 novembre 2008Date d'inscription 2 septembre 2010 Dernière intervention - 2 août 2010 à 12:09
0
Utile
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
cs_NouhaS 2 Messages postés lundi 26 juillet 2010Date d'inscription 3 août 2010 Dernière intervention - 3 août 2010 à 13:20
0
Utile
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.