recuperation variables par mail

recuperation variables par mail - PHP - Programmation

Marsh Posté le 17-11-2005 à 15:28:06    

Bonjour je souhaiterai recuperer 2 variables par email : pour un panier, la reference et la quantité: j'ai quelque chose comme ceci mais je ne m'en sort pas je pense ne pas etre loin de la solution mais j'aurais besoin d'un coup de pouce:

Code :
  1. <?php
  2. txt = "Salut\nReférence: $ref\nquantité: $qnte\nformule de politesse";
  3. mail('mon@email.com','sujet',$txt,'From: vincent <mon@email.com>'); ?>


salutations

Reply

Marsh Posté le 17-11-2005 à 15:28:06   

Reply

Marsh Posté le 17-11-2005 à 16:45:41    

qui me prête sa boule de cristal ?

Reply

Marsh Posté le 17-11-2005 à 16:48:38    

il manque des infos?
:-)

Reply

Marsh Posté le 17-11-2005 à 16:57:50    

vincent2208 a écrit :

il manque des infos?

quel est le problème tout simplement ? message d'erreur ? ...etc
PS: il manque aussi un $ au début de la ligne 2...

Reply

Marsh Posté le 17-11-2005 à 17:09:55    

je voudrai collecter des données par email depuis un panier:
il faudrait les references ainsi que les quantités:
formulaire envoi sur panier.php

Code :
  1. <form method="post" action="/panier.php" >
  2. input type="submit" name="Submit" value="Envoyer">
  3. </form>
  4. code envoi.php:
  5. [cpp]<?php
  6. $txt = "Salut\nReférence: $ref\nquantité: $quantite\nformule de politesse";
  7. mail('contact@monmail.com','sujet',$txt,'From: vincent <contact@monmail.com>'); ?>


 
 
code panier
[/cpp]<?php
/*
NOTES / explications :
variables panier sous la forme : $_SESSION['panier'][reference][array(designation=>blabla,prixht=>blabla,quantite=>blabla);
 
Anti reload :
Afin de protéger le panier d'une incrémentation lors d'un reload de la page ou d'un prec/suiv, chaque chargement du formulaire  
est identifié avec un ID unique ($_POST['panier_lock']) qui est également enregistré dans une variable de session ($_SESSION['panier_lock'])
Ces deux variables sont ensuite comparées à l'arrivée sur la page panier. Si elles sont identiques, l'article est ajouté, puis la variable  
de session est détruite en fin de script.
*/
session_start();
$tot_ht=0; // montant total HT
if (!isset($_SESSION['panier'])) $_SESSION['panier']=array();
 
if (isset($_POST['ref']) && isset($_SESSION['panier_lock']) && isset($_POST['panier_lock'])) { // si il s'agit de l'ajout d'un article et que la page n'a pas déjà été appellée
    // un peu de sécurité
    $prixht=$_POST['prixht'];
    settype($prixht,"float" );
    $ref=strip_tags($_POST['ref']);
    $quantite=$_POST['quantite'];
    settype($quantite,"int" );
    if ($prixht==0) $quantite=0;
 
     
    // protection reload
    if ($_POST['panier_lock']===$_SESSION['panier_lock']) {
        $panier_lock=true; // autorise la modification du panier
    } else {
        $panier_lock=false; // interdit la modification du panier
    }
     
    if ($panier_lock==true) { // autorisation ajout panier
        if (array_key_exists($ref, $_SESSION['panier'])) { // la ref existe déjà dans le panier
            $_SESSION['panier'][$ref]['quantite']+=$_POST['quantite']; // ajout de la quantité à celle existante pour le même article
        } else { // la ref n'est pas encore présente dans le panier, on l'ajoute
            $_SESSION['panier'][$ref]['designation'] = $_POST['designation'];
             $_SESSION['panier'][$ref]['prixht'] = $prixht;
             $_SESSION['panier'][$ref]['quantite'] = $_POST['quantite'];
        }
    }
}
 
if (count($_SESSION['panier'])) { // si le panier n'est pas vide
    echo'
    <style type="text/css">
    <!--
    body,td,th {
     color: #006699;
    }
    body {
     background-image: url(../design/styles/fond.gif);
    }
    -->
    </style>
    <link href="../design/styles/styles.css" rel="stylesheet" type="text/css">
    <table width="100%"  border="1" bordercolor="#FFFFFF" bgcolor="#FFFFFF">
      <tr bordercolor="#BDDFE1" bgcolor="#BDDFE1" class="menugauche">
        <td width="20%">Reference</td>
        <td width="20%" bordercolor="#BDDFE1">Description</td>
        <td width="20%">Quantit&eacute;</td>
        <td width="20%">Prix HT &euro; unitaire </td>
        <td width="20%">Total HT &euro; </td>
      </tr>
    </table>
    <table width="100%" border="1" bordercolor="#FFFFFF" bgcolor="#FFFFFF" >
        ';
         
        foreach($_SESSION['panier'] as $key => $value) { // pour chaque éléments du panier
            echo '<tr>
        <td width="20%">'.$key.'</td>
        <td width="20%">'.$_SESSION['panier'][$key]['designation'].'</td>
        <td width="20%">'.$_SESSION['panier'][$key]['quantite'].'</td>
        <td width="20%">'.$_SESSION['panier'][$key]['prixht'].'</td>';
         
                $tot_line=$_SESSION['panier'][$key]['quantite'] * $_SESSION['panier'][$key]['prixht']; // total HT / ref
                $tot_ht +=$tot_line; // calcul le montant total HT du panier
         
        echo '<td width="20%">'.number_format(round($tot_line,2), 2, '.', ' ').'</td>
        </tr>';
      }
            echo '<tr><td colspan="4">Montant total HT de votre commande (&euro;)</td><td width="13%">'.number_format(round($tot_ht,2), 2,'.', ' ').' &euro;</td></tr></table>';
 
} else {
    echo 'Votre panier ne contient aucun article.'; // le client n'a pas d'article dans son panier
}
unset($_SESSION['panier_lock']); // enclenche le verrouillage
?>[cpp]

Reply

Marsh Posté le 17-11-2005 à 17:17:14    

Code :
  1. <?php
  2. /*
  3. NOTES / explications :
  4. variables panier sous la forme : $_SESSION['panier'][reference][array(designation=>blabla,prixht=>blabla,quantite=>blabla);
  5. Anti reload :
  6. Afin de protéger le panier d'une incrémentation lors d'un reload de la page ou d'un prec/suiv, chaque chargement du formulaire  
  7. est identifié avec un ID unique ($_POST['panier_lock']) qui est également enregistré dans une variable de session ($_SESSION['panier_lock'])
  8. Ces deux variables sont ensuite comparées à l'arrivée sur la page panier. Si elles sont identiques, l'article est ajouté, puis la variable  
  9. de session est détruite en fin de script.
  10. */
  11. session_start();
  12. $tot_ht=0; // montant total HT
  13. if (!isset($_SESSION['panier'])) $_SESSION['panier']=array();
  14. if (isset($_POST['ref']) && isset($_SESSION['panier_lock']) && isset($_POST['panier_lock'])) { // si il s'agit de l'ajout d'un article et que la page n'a pas déjà été appellée
  15.     // un peu de sécurité
  16.     $prixht=$_POST['prixht'];
  17.     settype($prixht,"float" );
  18.     $ref=strip_tags($_POST['ref']);
  19.     $quantite=$_POST['quantite'];
  20.     settype($quantite,"int" );
  21.     if ($prixht==0) $quantite=0;
  22.    
  23.     // protection reload
  24.     if ($_POST['panier_lock']===$_SESSION['panier_lock']) {
  25.         $panier_lock=true; // autorise la modification du panier
  26.     } else {
  27.         $panier_lock=false; // interdit la modification du panier
  28.     }
  29.    
  30.     if ($panier_lock==true) { // autorisation ajout panier
  31.         if (array_key_exists($ref, $_SESSION['panier'])) { // la ref existe déjà dans le panier
  32.             $_SESSION['panier'][$ref]['quantite']+=$_POST['quantite']; // ajout de la quantité à celle existante pour le même article
  33.         } else { // la ref n'est pas encore présente dans le panier, on l'ajoute
  34.             $_SESSION['panier'][$ref]['designation'] = $_POST['designation'];
  35.              $_SESSION['panier'][$ref]['prixht'] = $prixht;
  36.              $_SESSION['panier'][$ref]['quantite'] = $_POST['quantite'];
  37.         }
  38.     }
  39. }
  40. if (count($_SESSION['panier'])) { // si le panier n'est pas vide
  41.     echo'
  42.     <style type="text/css">
  43.     <!--
  44.     body,td,th {
  45.      color: #006699;
  46.     }
  47.     body {
  48.      background-image: url(../design/styles/fond.gif);
  49.     }
  50.     -->
  51.     </style>
  52.     <link href="../design/styles/styles.css" rel="stylesheet" type="text/css">
  53.     <table width="100%"  border="1" bordercolor="#FFFFFF" bgcolor="#FFFFFF">
  54.       <tr bordercolor="#BDDFE1" bgcolor="#BDDFE1" class="menugauche">
  55.         <td width="20%">Reference</td>
  56.         <td width="20%" bordercolor="#BDDFE1">Description</td>
  57.         <td width="20%">Quantit&eacute;</td>
  58.         <td width="20%">Prix HT &euro; unitaire </td>
  59.         <td width="20%">Total HT &euro; </td>
  60.       </tr>
  61.     </table>
  62.     <table width="100%" border="1" bordercolor="#FFFFFF" bgcolor="#FFFFFF" >
  63.         ';
  64.        
  65.         foreach($_SESSION['panier'] as $key => $value) { // pour chaque éléments du panier
  66.             echo '<tr>
  67.         <td width="20%">'.$key.'</td>
  68.         <td width="20%">'.$_SESSION['panier'][$key]['designation'].'</td>
  69.         <td width="20%">'.$_SESSION['panier'][$key]['quantite'].'</td>
  70.         <td width="20%">'.$_SESSION['panier'][$key]['prixht'].'</td>';
  71.        
  72.                 $tot_line=$_SESSION['panier'][$key]['quantite'] * $_SESSION['panier'][$key]['prixht']; // total HT / ref
  73.                 $tot_ht +=$tot_line; // calcul le montant total HT du panier
  74.        
  75.         echo '<td width="20%">'.number_format(round($tot_line,2), 2, '.', ' ').'</td>
  76.         </tr>';
  77.       }
  78.             echo '<tr><td colspan="4">Montant total HT de votre commande (&euro;)</td><td width="13%">'.number_format(round($tot_ht,2), 2,'.', ' ').' &euro;</td></tr></table>';
  79. } else {
  80.     echo 'Votre panier ne contient aucun article.'; // le client n'a pas d'article dans son panier
  81. }
  82. unset($_SESSION['panier_lock']); // enclenche le verrouillage
  83. ?>


ps je repost le code panier il y a eu une ereure et ce n'est pas trés clair

Reply

Marsh Posté le 17-11-2005 à 17:35:04    

on ne sait toujours pas quel est ton problème ou message d'erreur :o  
et on ne vas pas s'amuser à lire ton code sans avoir ces infos...
 
PS: au lieu de reposter, il y a le bouton edit http://forum-images.hardware.fr/themes_static/images_forum/1/edit.gif

Reply

Marsh Posté le 17-11-2005 à 17:42:10    

il n y a pas d'erreure je n'y arrive pas..

Reply

Marsh Posté le 17-11-2005 à 17:56:08    

En fait je voudrai 'simplement' recuperer les variable ref et quantite de panier.php par email.

Reply

Marsh Posté le 17-11-2005 à 18:09:45    

Tel que je le comprends,

Code :
  1. <?php
  2.   session_start(); 
  3.   $txt = "Salut\n";
  4.   foreach($_SESSION['panier'] as $key => $value) {
  5.     $ref = $key;
  6.     $quantite = $value['quantite'];
  7.     $txt .= "Reférence: $ref\nquantité: $qnte\n";
  8.   }
  9.   $txt .= "formule de politesse";
  10.   mail('mon@email.com','sujet',$txt,'From: vincent <mon@email.com>');
  11. ?>


---------------
The Million Dollar Screenshot  (seo v7ndotcom elursrebmem paesys wifi)
Reply

Marsh Posté le 17-11-2005 à 18:09:45   

Reply

Marsh Posté le 17-11-2005 à 18:20:11    

merci de ta reponse
cela me fait une erreure
Warning: Invalid argument supplied for foreach() in /home/.sites/125/site219/web/commandes/panier1.php on line 4

Reply

Marsh Posté le 17-11-2005 à 19:35:16    

je ne comprends plus rien..

Reply

Marsh Posté le 18-11-2005 à 15:06:37    

donc ce matin cela fonctionne corectement, surement un probleme sur le serveur hier soir, merci pour votre aide:
PROBLEME RESOLU.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed