Problème avec la fonction header

Résolu/Fermé
terraminus - 18 nov. 2010 à 17:58
 terraminus - 22 nov. 2010 à 19:14
Bonjour,

J'ai un formulaire (session.php) qui renvoi sur une autre page.
<form method="post" action="login.php">
	<p>votre pseudo : <input type="text" name="pseudo" value=""></p>
	<p>votre pwd : <input type="password" name="pwd" value=""></p>
	<p><input type="submit" name="go" value="OK"></P>
</form>

Dans la page login.php, je teste les variables.
Si le pseudo est vide, je souhaite revenir sur la première page et afficher un message sous le formulaire.
J'ai donc fait dans login.php le code suivant :
$pseudo = $_POST['pseudo'];
if(empty($pseudo))
{
	header('location: session.php?message=erreur'); // Retour page d'appel.
	exit;
}

Et dans ma page session.php aprés le formulaire :
if (isset($_GET['message']))
		echo $message;

J'ai un message : Undefined index, ce qui ne m'étonne pas.
Alors comment puis-je réaliser cette opération ?

Et question subsidiaire, mais en rapport avec la première, comment je récupère une variable d'un formulaire, au sein de la même page (par exemple le contenu de pseudo) ?

Merci pour vos réponse.

3 réponses

jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
19 nov. 2010 à 08:10
Bonjour,

Au lieu de if(empty($pseudo))
met

if (isset($_POST['pseudo']){
header('location: session.php?message=erreur'); // Retour page d'appel.
exit;
}

:) @++
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
19 nov. 2010 à 17:19
Salut.

@jjsteing: Tu as oublié de fermer une parenthèse :) Par contre, sauf si j'ai mal compris, le problème ne provient pas de la page login.php

C'est assez bizarre puisque sur session.php, tu testes l'existence de $_GET['message'] avant de l'afficher. Si l'erreur se produit, c'est que la variable a été utilisée, et tu ne l'utilises quand pour l'echo (isset() ne renvoie pas d'erreur). Et si l'affichage de la variable a été tenté, c'est que isset() indique qu'elle existe. Pourtant, l'erreur indique qu'elle n'existe pas.

Ou c'est moi qui ai rien compris ...


Pour l'autre question, tu peux stocker les données en session ou en cookie pour les récupérer sur la page du formulaire. Perso je fais le traitement sur la même page que le formulaire, donc je peux directement faire des echo des variables $_POST.
0
Merci pour vos réponse.
En fait j'ai réussi ce que je voulais faire et je traite directement les informations sur la page du formulaire avec l'instruction :
<form action=$_SERVER['REQUEST_URI']
0