8795 sujets

Développement web côté serveur, CMS

Bonjour à tous,

J'ai mis en place sur mon site, un formulaire de contact afin que les visiteurs puisse nous envoyer des demandes de prix etc....
Jusque-là pas de problèmes...
Je récupére les variables de mon formulaire via $_SESSION, pour ensuite les envoyées par l'intermédiaire de la fonction mail.
J'arrive à récupérer toutes les variables de mon formulaire sauf celles issue de mes boutons radio.
Vouds trouverez ci dessous le code source de mon formulaire, ainsi que celui de la page de traitement.
Le code source du formulaire :
 <label for="mlle">Mlle</label><input type="radio" name="civilite" id="mlle"  value=" <?=$_SESSION['post']['civilite']?>" />
          
          <label for="mme">Mme</label><input type="radio" name="civilite" id="mme"  value="<?=$_SESSION['post']['civilite']?>"/>
          
          <label for="mr">Mr</label><input name="civilite" type="radio" id="mr" value="<?=$_SESSION['post']['civilite']?>" checked="checked"/> 

Le code source de la page de traitement :
$msg=
'Name:	'.$_POST['name'].'<br />
Civilité:'.$_POST['civilite'].'<br />
Société: '.$_POST['societe'].'<br />
Adresse:'.$_POST['adresse'].'<br />
Code Postal:'.$_POST['cp'].'<br />
Ville:'.$_POST['ville'].'<br />
Pays:'.$_POST['pays'].'<br />
Téléphone:'.$_POST['telephone'].'<br />
Fax:'.$_POST['fax'].'<br />

Email:	'.$_POST['email'].'<br />


Message:<br /><br />

'.nl2br($_POST['message']).'

';

Merci d'avance pour votre coup de pouce!
Hello,

Je ne saurais te répondre. Déjà, je ne vois pas pourquoi $_SESSION est remplie de tes variables $_POST. Soit c'est un feature de PHP que j'ignorais, soit c'est l'oeuvre d'un script de ton site, et dans ce cas, tu devrais plutot chercher de ce coté là.

Essaie sinon le code :
echo "<pre>".var_dump($_POST)."</pre>";
echo "<pre>".var_dump($_SESSION)."</pre>";


Qui te permettra de mieux voir ce que tes variables contiennent et ce qui pourrait déconner (peut-être te trompe tu d'index pour ta variable)
Salut Tymlis et merci pour ta réponse !

En effet, tu avais vu juste, il s'agit d'un script "formulaire de contact" que j'ai récupéré sur la toile, pour être plus précis ici même.
Je suis partant pour essayer la partie de code que tu ma gentillement fourni, mais je ne vois pas ou l'insérée (sur la page du formulaire "contact.php" ou sur la page de traitement "submit.php" ?)
Par avance merci pour coup de pouce !
Steve
Plutot sur submit.php je pense. Avant de soumettre ton formulaire, $_POST sera vide. Il vaut donc mieux le mettre sur la page de soumission.
Les $_SESSION['POST'] sont initialisé si le formulaire ne remplis pas les conditions (erreur)

Voici l'extrait du code :

if(count($err))
{
	if($_POST['ajax'])
	{
		echo '-1';
	}

	else if($_SERVER['HTTP_REFERER'])
	{
		$_SESSION['errStr'] = implode('<br />',$err);
		$_SESSION['post']=$_POST;
		
		header('Location: '.$_SERVER['HTTP_REFERER']);
	}

	exit;
}


Ca permet de garder les valeurs remplis avant validation (Il utilise les sessions car en cas d'erreur c'est une redirection header php qui est utilisé !).

Pour connaitre les valeurs du tableau $_POST, j'utilise souvent :

echo '<pre>'.print_r($_POST).'</pre>';
die();


A mettre dans ton submit pour voir ce que cela donne (Ligne 74, comme ça ça évite d'envoyer un mail à chaque test)

P.S : Petite remarque, attention au façon d'écrire les echo en php avec les shorttags, si le serveur est configuré pour n'accepter que les "normaltags", ton script ne fonctionnera plus, alors autant prendre les devant :

Remplacer :
<?=$_SESSION['post']['name']?>

Par
<?php echo $_SESSION['post']['name']; ?>

Modifié par Super_baloo8 (16 Jun 2010 - 13:49)
Bonsoir Super_Baloo8,

Tout d'abord merci d'avoir pris le temps de répondre !
Pour résoudre ce petit souci de variable, j'ai donc inséré le petit bout de code que tu m'a préconisé dans la page « submit.php » juste après
Message:<br /><br />

'.nl2br($_POST['message']).'

'; 
afin de connaitre les valeurs du tableau, mais aucune de celles-ci ne s'affiche lorsque je valide mon formulaire !
Aurai-je omis un détail ?
PS : Petite précision, j’ai aussi modifier dans ma page contact.php ( Formulaire) comme tu me l’a conseillé, à savoir ainsi :
<label for="mlle">Mlle</label><input type="radio" name="civilite" id="mlle"  value=" <?php echo $_SESSION['post']['civilite']; ?>" />
          
          <label for="mme">Mme</label><input type="radio" name="civilite" id="mme"  value="<?php echo $_SESSION['post']['civilite']; ?>"/>
          
          <label for="mr">Mr</label><input  type="radio" name="civilite" id="mr" value="<?php echo $_SESSION['post']['civilite']; ?>" checked="checked"/>

Merci d’avance !
Steve
Modifié par mciwonder (17 Jun 2010 - 17:42)
Dans le code source de la page tu n'as rien du tout non plus ?

Normalement, même si c'est vide, tu devrais voir apparaitre quelque chose du genre :

Array{
}