Reaffichage données formulaire

cs_crijoe Messages postés 23 Date d'inscription mardi 18 décembre 2007 Statut Membre Dernière intervention 9 novembre 2009 - 9 mars 2009 à 23:28
cs_crijoe Messages postés 23 Date d'inscription mardi 18 décembre 2007 Statut Membre Dernière intervention 9 novembre 2009 - 11 mars 2009 à 11:49
Bonjour, je suis débutant et je ne sais comment faire ?
j'ai un formulaire en php qui envoie (submit) à un fichier de contrôle, et s'il y a erreur je fais un header location formulaire.
Le formulaire s'affiche bien mais complètement vide dans les zones car je ne dclare pas les value "". Le problème c'est que je l'utilise en localhost et à chaque erreur dans la saisie du formulaire je me retrouve avec un formulaire vide et une session nouvelle. Comment faire pour ne pas fermer la session afin que je puisse récupérer les données dans une global variable.  Merci de vos conseils

7 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
10 mars 2009 à 03:18
salut

envoie nous ton code, on verra comment le debuger.
0
cs_crijoe Messages postés 23 Date d'inscription mardi 18 décembre 2007 Statut Membre Dernière intervention 9 novembre 2009
10 mars 2009 à 10:51
Bonjour, voici mon fichier formulaire(ins.php)
<?php
// definition session utilisateur

$_session['utilisateur'] = 'jbali';
echo $_session['utilisateur'];

// definition repertoire de stockage
session_save_path('C:/wamp/session');
// initialisation session
session_start();
echo 'nom de la session :', session_name(),'
';
echo 'identifiant utilisé :', session_id(), '
';

echo '<form method="post" action="envoie.php">';
session_start();
echo 'session_name()';
echo 'identifiant utilisé :', session_id(), '
';
echo '
';
echo 'Nom :
';
echo '
';
echo 'Prenom : ';
echo '
';
echo 'Pseudo : ';
echo '
';
echo 'Mot de passe : ';
echo '
';
echo 'Age : ';
echo '
';
echo 'Adresse : ';
echo '
';
echo 'Code postal : ';
echo '
';
echo 'Ville : ';
echo '
';
echo 'Pays : ';
echo '
';
echo 'Téléphone ';
echo '
';
echo 'Email : ';
echo '
';
echo '';
echo '</form>';
?>

et voici le controle + envoie
<?php
//On récupère les valeurs du formulaire
$Nom = $_POST['Nom'];
$Prenom = $_POST['Prenom'];
$Age = $_POST['Age'];
$Adresse = $_POST['Adresse'];
$Npostal = $_POST['Npostal'];
$Ville = $_POST['Ville'];
$Pays = $_POST['Pays'];
$Telephone = $_POST['Telephone'];
$Email = $_POST['Email'];
echo $_REQUEST['Nom'];

// verification champs vide

if(empty($Prenom)) {
header ("location:ins.php");
 }
  else
{
$Email = $_POST['Email'];
$point = strpos($Email,".");
$aroba = strpos($Email,"@");

if($point=='')
{
echo "Votre email doit comporter un point ";
}
elseif($aroba == '')
{
echo "Votre email doit comporter un '@' ";
}
else
{
echo "Votre email est: '$email'";
}
echo 'champs bien remplis';

//je  crée le message email

$msg = "Nom= $Nom
Prénom= $Prenom
Age= $Age
Adresse: $Adresse
Npostal= $Npostal
Ville= $Ville
Pays= $Pays
Telephone= $Telephone
  Email : $Email";

$recipient = "jbalichristian@yahoo.com"; //On met l'adresse email ou on veut recevoire le mail
$subject = "Formulaire"; //On met le sujet du mail

$mailheaders = "From: Mon site web<> \n"; //depuis où il a été posté

mail($recipient, $subject, $msg, $mailheaders); // message confirmation que le mail a bien été envoyé

echo "<HTML><HEAD>";
echo "<TITLE>Formulaire envoyer!</TITLE></HEAD>";
echo "Merci, $Nom $Prenom
";
echo "";
echo "Votre formulaire à bien été envoyé !

";
echo "</HTML>";
}
header ("location:ins.php");
?>
Merci
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
10 mars 2009 à 11:52
il te suffit de rajouter ta session si elle existe dans l'atribut value du formulaire.

tu l'as fait pour prenom, sauf que tu n'as pas definit la variable avant.
0
cs_crijoe Messages postés 23 Date d'inscription mardi 18 décembre 2007 Statut Membre Dernière intervention 9 novembre 2009
10 mars 2009 à 20:15
je crois que je me suis mal expliqué, ce que je veux dire c'est que à chaque fois que je change de page, j'ai droit à une nouvelle session et donc l'ancienne session est parti. de l'index à la page formulaire une autre session et du formulaire au controle une autre session. Bien que je ne destroye aucune. Je maintiens pourtant bien ma session en declarant au top de mes page session start().  Si vous pouvez m'éclairer pour ce changement de session et comment conserver ma session courante.  Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jreaux62 Messages postés 195 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 24 octobre 2011 32
10 mars 2009 à 23:10
Tu peux créer des variables de session pour chaque element du form (ou un tableau de session) :

Dans le formulaire, tu affiches :
.....
echo 'Prenom : ';
.....

et tu recuperes (controle + envoi) :
.....
$Prenom = $_POST['Prenom'];
$_session['Prenom']. = $_POST['Prenom'];
.....

(par exemple)
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
11 mars 2009 à 05:46
Salut,

Rien que dans le code que tu fournis il y a de nombreuses erreurs :
- session_start(); doit être placé en tout début de script, avant tout envoi au navigateur
- session_start(); ne se définit qu'une seule fois
- pourquoi redéfinir session_save_path ?

<?php
// definition session utilisateur

$_session['utilisateur'] = 'jbali'; // défini avant le session_start
echo $_session['utilisateur']; // là aussi

// definition repertoire de stockage
session_save_path('C:/wamp/session'); //quel intérêt ?
// initialisation session
session_start();
echo 'nom de la session :', session_name(),'
';
echo 'identifiant utilisé :', session_id(), '
';

echo '<form method="post" action="envoie.php">';
session_start();

echo "Votre email est: '[mailto:'.$email.' '.$email.' ]\'';

<italique>header ("location:ins.php");
=> ça ne fonctionnera pas car tu as déjà envoyé du contenu au client.

Pour le debug tu devrais afficher les erreurs php

.. et il y a encore pas mal d'autres erreurs qui peuvent être bloquantes.

Cordialement,

Kohntark -
0
cs_crijoe Messages postés 23 Date d'inscription mardi 18 décembre 2007 Statut Membre Dernière intervention 9 novembre 2009
11 mars 2009 à 11:49
Bonjour, et merci pour vos réponses. J'ai toujours le même problème, changement de session  à chaque retour sur index  pourquoi ?
 
fichier index
<?php
session_start();
session_save_path('C:/wamp/session');
$_session['utilisateur'] = 'jbali';
$_SESSION= array();
echo 'nom de la session :', session_name(),'
';
echo 'identifiant utilisé :', session_id(), '
';
}
include_once('mindex.php');
echo '<form method="post" action="envoie.php">';
echo '
';
echo 'Nom :
';
echo '
';
echo 'Prenom : ';
echo '
';

echo '';
echo '</form>';
?>

fichier envoie
<?php
session_start();
//On récupère les valeurs du formulaire
$Nom = $_POST['Nom'];
$Prenom = $_POST['Prenom'];
// verification champs vide
if(empty($Prenom)) {
header ("location:index.php");
 }
  else
{
echo 'champs bien remplis';
//On créée le message email
$msg = "Nom= $Nom
Prénom= $Prenom";
$recipient = "jbalichristian@yahoo.com"; //On met l'adresse email ou on veut recevoire le mail
$subject = "Formulaire"; //On met le sujet du mail
$mailheaders = "From: Mon site web<> \n"; //depuis où il a été posté
mail($recipient, $subject, $msg, $mailheaders); // message confirmation que le mail a bien été envoyé
echo "<HTML><HEAD>";
echo "<TITLE>Formulaire envoyer!</TITLE></HEAD>";
echo "Merci, $Nom $Prenom
";
echo "";
echo "Votre formulaire à bien été envoyé !

";
echo "</HTML>";
}
    session_destroy();
    $_SESSION= array();
    unset($_session);
header ("location:index.php");
?>
0
Rejoignez-nous