Problème avec la fonction header

Résolu
terraminus -  
 terraminus -
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.
A voir également:

3 réponses

jjsteing Messages postés 1670 Date d'inscription   Statut Contributeur Dernière intervention   181
 
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 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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
terraminus
 
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