Problème de variables de session! Help!

Fermé
Raph246 Messages postés 1 Date d'inscription mardi 12 avril 2011 Statut Membre Dernière intervention 12 avril 2011 - 12 avril 2011 à 14:50
 Skyler03 - 31 janv. 2012 à 12:09
Bonjour à tous!

Voila cela fait déjà un petit moment que je galère avec mon formulaire. Petite explication : Sur la page de commande, les clients doivent remplir un formulaire. Le client clique sur 'suivant' et les données sont ensuite transmises à une autre page qui résume les données entrées. Sur cette deuxième page, lorsque le client clique sur 'commander', il est redirigé vers une troisième page qui lui indique que la commande a bien été transmise. Le hic c'est que mes variables ne fonctionnent pas!! Je devrais recevoir toutes les informations du client par mail mais tous les champs sont vides!! Si quelqu'un a une idée ça m'aiderait vraiment beaucoup. Voici le code :


page 2 : traitementH.php (celle qui apparait lorsque le client clique sur suivant après avoir rempli le formulaire) :

<?php
session_start();

If (isset($_POST['Nom'])&&isset($_POST['Prenom'])&&isset($_POST['Adresse'])&&isset($_POST['Ville'])&&isset($_POST['Npa'])&&isset($_POST['Pays'])
&&isset($_POST['Mail'])&&isset($_POST['Tel'])&&isset($_POST['Longueur'])&&isset($_POST['Largeur'])&&isset($_POST['comments']))
{
$largprix = 0;
if ($_POST['Largeur']=="100%"OR$_POST['Largeur']=="110%"OR$_POST['Largeur']=="120%"OR$_POST['Largeur']=="130%"OR$_POST['Largeur']=="140%")
{$largprix = 30;}

$longprix = (((($_POST['Longueur'])-15)/5)*40);

$prixtot = 320 + $longprix + $largprix ;
$prixtotal = $prixtot + 30 ;

$_SESSION['Nom'] = $_POST['Nom'];
$_SESSION['Prenom'] = $_POST['Prenom'];
$_SESSION['Adresse'] = $_POST['Adresse'];
$_SESSION['Ville'] = $_POST['Ville'];
$_SESSION['Npa'] = $_POST['Npa'];
$_SESSION['Pays'] = $_POST['Pays'];
$_SESSION['Mail'] = $_POST['Mail'];
$_SESSION['Tel'] = $_POST['Tel'];
$_SESSION['Longueur'] = $_POST['Longueur'];
$_SESSION['Densite'] = $_POST['Largeur'];
$_SESSION['comments'] = $_POST['comments'];
$_SESSION['Prixtot'] = $prixtot;
$_SESSION['Prixtotal'] = $prixtotal;

echo"Récapitulatif:</br>";
echo"Nom:".$_POST['Nom']."</br>";
echo"Prénom:".$_POST['Prenom']."</br>";
echo"Adresse:".$_POST['Adresse']."</br>";
echo"Ville:".$_POST['Ville']."</br>";
echo"Code Postal:".$_POST['Npa']."</br>";
echo"Pays:".$_POST['Pays']."</br>";
echo"Mail:".$_POST['Mail']."</br>";
echo"Tel:".$_POST['Tel']."</br>";
echo"Longueur:".$_POST['Longueur']."</br>";
echo"Densite:".$_POST['Largeur']."</br>";
echo"Commentaire:".$_POST['comments']."</br>";
echo"Prix total produit: ".$prixtot." CHF</br>";
echo"Frais de port: 30 CHF</br>";
echo"Total : ".$prixtotal." CHF</br>";}
?>
<a href="validercommande.php">Commander</a>


page 3 : validercommande.php

<?php
session_start();

$Nom = $_SESSION['Nom'];
$Prenom = $_SESSION['Prenom'];
$Adresse = $_SESSION['Adresse'];
$Ville = $_SESSION['Ville'];
$Npa = $_SESSION['Npa'];
$Pays = $_SESSION['Pays'];
$Mail = $_SESSION['Mail'];
$Tel = $_SESSION['Tel'];
$Longueur = $_SESSION['Longueur'];
$Densite = $_SESSION['Largeur'];
$comments = $_SESSION['comments'];
$Prixtot = $_SESSION['Prixtot'];
$Prixtotal = $_SESSION['Prixtotal'];


// message
$message = '
<html>
<head>
<title>Commande produit</title>
</head>
<body>
Nom:"'.$Nom.'"</br>
Prénom:"'.$Prenom.'"</br>
Adresse:"'.$Adresse.'"</br>
Ville:"'.$Ville.'"</br>
Code Postal:"'.$Npa.'"</br>
Pays:"'.$Pays.'"</br>
Mail:"'.$Mail.'"</br>
Tel:"'.$Tel.'"</br>
Longueur:"'.$Longueur.'"</br>
Densite:"'.$Largeur.'"</br>
Commentaire:"'.$comments.'"</br>
Prix total produit: "'.$Prixtot.'" CHF</br>
Frais de port: 30 CHF</br>
Total : "'.$Prixtotal.'" CHF
</body>
</html>';

// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'To: Moi <contact@mail.ch>' . "\r\n";
$headers .= 'From: Client <' .$Mail. '>'."\r\n";




// Envoi
mail('contact@mail.ch','Commande Client', $message, $headers);

Echo"Merci d'avoir commandé chez nous</br>Nous allons traiter votre commande dans les meilleurs délais.</br>
Vous allez recevoir une facture dans les prochaines heures dans votre boîte de réception E-mail.".$Mail;

session_unset();


?>


Et voila le genre de mail que je reçois :


Nom:"" Prénom:"" Adresse:"" Ville:"" Code Postal:"" Pays:"" Mail:"" Tel:"" Longueur:"" Largeur:"" Commentaire:"" Prix total produit: "" CHF Frais de port: 30 CHF Total : "" CHF


J ai retourné le code dans tous les sens mais je ne trouve pas ce qui cloche!

2 réponses

yo, pourquoi des sessions et pas des post comme ça sembles être le cas.

Attention à séparer le traitement de l'IHM(navigation/partie utilisateur), ça évites bien des erreurs, c'est plus propre(à modifier corriger) et tes fichiers php qui vont faire le traitement seront pas accessibles directement.
0
Bonjour,
J'ai le même problème pour transmettre mes variables d'un formulaire à l'autre avec un formulaire multi pages.
Comment faut-il faire ?

session_start(); // En premier dans la page

if (isset($_POST['labs'])) {
$_SESSION['company'] = $_POST['company'];}
if (isset($_POST['adress'])) {
$_SESSION['adress'] = $_POST['adress'];}
if (isset($_POST['bat'])) {
$_SESSION['bat'] = $_POST['bat'];}
if (isset($_POST['code_postal'])) {
$_SESSION['code_postal'] = $_POST['code_postal'];}
if (isset($_POST['ville'])) {
$_SESSION['ville'] = $_POST['ville'];}
if (isset($_POST['pays'])) {
$_SESSION['pays'] = $_POST['pays'];}
if (isset($_POST['tel'])) {
$_SESSION['tel'] = $_POST['tel'];}
if (isset($_POST['fax'])) {
$_SESSION['fax'] = $_POST['fax'];}

et dans la page :
<td width="208"><input name="labs" type="text" class="loginRemplissage" SIZE="30" value="
<?php if (isset($_POST['labs'])) echo htmlentities(trim($_POST['labs'])); ?>"/><span class="TexteCheck">*</span></td>

Moi aussi mes données devraient s'afficher sur les différents formulaires pour éventuellement modifier les données adresse livraison, facturation...
Est-ce que vous pouvez me donner un petit coup de main, ça fait longtemps que je galère là-dessus.
Merci
0