Page 1 sur 1
redirection avec un message de confirmation
Posté : 24 juil. 2012, 11:05
par mmlou
Bonjour, voici mon problème:
J'ai une page de création d'un nouveau compte utilisateur. Dans le cas où les données sont bien remplies, l'utilisateur est redirigé vers une page de confirmation. Dans le cas contraire, je souhaite rediriger vers la page précédente en affichant un message d'erreur de saisie comme par exemple "les champs X et Y ne sont pas remplies".La redirection marche parfaitement à l'aide de la fonction header reste le problème d'affichage.Peut-on m'aider ?
Re: redirection avec un message de confirmation
Posté : 24 juil. 2012, 11:52
par DiurnaSys
Bonjour,
un script du genre devrai fonctionner :
if ( !empty($X) AND !empty($Y) )
{
header("Location: pageSuivante.php"):
}
elseif ( empty($X) )
{
$msgError = 'X n\'est pas remplie';
header("Location: pagePrecedent.php"):
}
elseif ( empty($Y) )
{
$msgError = 'Y n\'est pas remplie';
header("Location: pagePrecedent.php"):
}
else
{
$msgError = 'X et Y ne sont pas remplies';
header("Location: pagePrecedent.php"):
}
Et tu interprète $msgError dans ta page précédentes.
Cordialement.
Re: redirection avec un message de confirmation
Posté : 24 juil. 2012, 12:58
par xTG
Si tu veux garder le message il faut soit le stocker dans une variable de session, soit le faire passer dans l'url.
$_SESSION['erreur'] = 'X n\'est pas remplie';
header("Location: page.php");
// ou
$erreur = 'X n\'est pas remplie';
header("Location: page.php?erreur=" . $erreur);
Re: redirection avec un message de confirmation
Posté : 24 juil. 2012, 14:22
par DiurnaSys
Rebonjour,
Ha oui merci xTG pour la correction à ma décharge je m’était concentré sur la logique et non sur l’exactitude du code ( Rappel pour plus tard : se relire ).
Cordialement.
Re: redirection avec un message de confirmation
Posté : 24 juil. 2012, 14:40
par mmlou
En fait, je voulais dire par la page précédente la page de saisie (qui est la page actuelle). voici la page add_usr.html:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link href="style.css" rel="stylesheet" type="text/css" media="screen">
<title>Création de compte utilisateur</title>
</head>
<body>
<h1>Formulaire d'inscription</h1>
<form action="add_usr.php" id="formulaire" method="post">
<table>
<tr>
<td>nom utilisateur:</td>
<td><input type="text" name="login"/></td>
</tr>
<tr>
<td>mot de passe: </td>
<td><input type="password" name="password"/></td>
</tr>
</table>
<input type="submit" name="valider">
</form>
</body>
</html>
voici le code add_usr.php :
<?php
// On intialise la connexion à la base de données
$PARAM_hote='localhost'; // le chemin vers le serveur
$PARAM_port='3307';
$PARAM_nom_bd='MonSite'; // le nom de votre base de données
$PARAM_utilisateur='root'; // nom d'utilisateur pour se connecter
$PARAM_mot_passe='ADMIN'; // mot de passe de l'utilisateur pour se connecter
$bdd = new PDO('mysql:host='.$PARAM_hote.';port='.$PARAM_port.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
$insert_user = $bdd->prepare('INSERT INTO users (login , password) VALUES (?,?)');
//création de compte
if (!empty($_POST['login'])&& !empty($_POST['password']))
{
$insert_user->execute(array($_POST['login'],$_POST['password']));
//compte crée
//header("Location: confirmation.html");
}
else
{
// Le formulaire n'est pas complet
// On renvoit vers la page précédente
header("Location: add_user.html);
}
?>
j'utilise la méthode $_POST et non pas $_GET.
Re: redirection avec un message de confirmation
Posté : 24 juil. 2012, 14:52
par DiurnaSys
Rebonjour,
Sans vouloir être impolie que demande tu dans ton dernier post ?
Je ne comprend pas.
Cordialement.
Re: redirection avec un message de confirmation
Posté : 24 juil. 2012, 15:23
par mmlou
Je voulais savoir est-ce possible de réaliser dans le même code php (add_usr.php) un contrôle de saisie sur la page, de passer un message d'erreur dans l'URL est d’interpréter le message d'erreur?
et comment je pourrais l'afficher dans la page html add_usr.html? (j'ai essayé avec echo "<h1>$erreur</h1>";mais rien n'est affiché )
Re: redirection avec un message de confirmation
Posté : 24 juil. 2012, 15:25
par DiurnaSys
Rebonjour
Oui c'est possible et c'est déjà ce que tu fait

.
Cordialement.
Re: redirection avec un message de confirmation
Posté : 24 juil. 2012, 15:48
par mmlou
Je suis débutante en PHP et je demande ces questions pour être sure de ce que je fais. j'ai tenté de passer l'argument dans l'url mais je ne parviens pas à l'afficher dans la page html.
Re: redirection avec un message de confirmation
Posté : 24 juil. 2012, 16:09
par DiurnaSys
Rebonjour,
On a tous été débutant dans quelque chose.
Ton formulaire envoie en méthode "POST" tu doit donc récupérer tes variables avec $_POST["nomDeMaVariable"] mais si tu redirige le tableau $_POST sera vider, pour transmettre des variables après redirection tu doit les stocker dans le tableau $_SESSION comme cela :
$_SESSION["nomDeMaVariable"] = $_POST["nomDeMaVariable"];
Si tu transmet tes variables via l'url il te faut utiliser $_GET à la place de $_POST.
Je te conseille d'apprendre via tutoriels et cours :
http://php.developpez.com/cours/
Personnellement j'ai débuté avec ce tutoriel :
http://www.siteduzero.com/tutoriel-3-14 ... mysql.html
Cordialement.