Envoyer le contenu d'un panier php par mail [Résolu]

Messages postés
5
Date d'inscription
samedi 26 décembre 2009
Dernière intervention
2 juillet 2011
- - Dernière réponse : odogp1
Messages postés
5
Date d'inscription
samedi 26 décembre 2009
Dernière intervention
2 juillet 2011
- 2 juil. 2011 à 13:50
Bonsoir à tous, avant d'apprendre le php je devrais apprendre le francais... Veuillez m'éscuser pour les fautes !!! je vous présente mon problème : j'ai crée un panier en php qui fonctionne très bien, avec des boutons "ajouter au panier" sur le site... Cela me crée, dans une page, un tableau avec les differents produits désirés. Maintenant je voudrai envoyer le contenu de ce tableau vers un mail. J'ai cherché sur le net, mais je ne comprend pas tout car je suis plus que débutant !!!! Avez vous la solution à mon problème ? Quel code je doit mettre, et surtout ou... Je fait l'assisté

Voici le code de mes pages:

panier.php
<?php
session_start();
include_once("fonctions-panier.php");

$erreur = false;

$action = (isset($_POST['action'])? $_POST['action']: (isset($_GET['action'])? $_GET['action']:null )) ;
if($action !== null)
{
if(!in_array($action,array('ajout', 'suppression', 'refresh')))
$erreur=true;

//récuperation des variables en POST ou GET
$l = (isset($_POST['l'])? $_POST['l']: (isset($_GET['l'])? $_GET['l']:null )) ;
$p = (isset($_POST['p'])? $_POST['p']: (isset($_GET['p'])? $_GET['p']:null )) ;
$q = (isset($_POST['q'])? $_POST['q']: (isset($_GET['q'])? $_GET['q']:null )) ;

//Suppression des espaces verticaux
$l = preg_replace('#\v#', '',$l);
//On verifie que $p soit un float
$p = floatval($p);

//On traite $q qui peut etre un entier simple ou un tableau d'entier

if (is_array($q)){
$QteArticle = array();
$i=0;
foreach ($q as $contenu){
$QteArticle[$i++] = intval($contenu);
}
}
else
$q = intval($q);

}

if (!$erreur){
switch($action){
Case "ajout":
ajouterArticle($l,$q,$p);
break;

Case "suppression":
supprimerArticle($l);
break;

Case "refresh" :
for ($i = 0 ; $i < count($QteArticle) ; $i++)
{
modifierQTeArticle($_SESSION['panier']['libelleProduit'][$i],round($QteArticle[$i]));
}
break;

Default:
break;
}
}

echo '<?xml version="1.0" encoding="utf-8"?>';?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<link href="css/style.css" rel="stylesheet" type="text/css" />
<head>
<title>Votre panier</title>
</head>


<form method="post" action="panier.php">
Votre Devis,

----

[javascript: void(0); Retour vers la liste des produits]

<form name="formulaire" action="formmail.php" method="post" onSubmit="return verification()">

Monsieur

Madame

----, Votre Nom:*</td>
,
----

Votre prénom:,
,
----

Votre Email:*,
,
----

----

Votre code postal:,
,
----

Votre ville:,
,
----

Sujet:,
,
----

Votre message:*

<textarea name="texte" cols="50" rows="5" class="writein" style="background-color:#CCC"></textarea>

*Champs obligatoire


-

</form>




</html>



formmaildevis.php

<?php

$adresse = "contact@xxxxxx.fr";
$site = "www.xxxxxx.fr";

$TO = $adresse;

$head .= "Content-Type: text/plain; charset=iso-8859-1\n";

$sujet = "Devis";

$tableau = "explode("|",$tableau)";
$res = mail($TO, $sujet, $tableau, $head);

if (true == $res) {
Header("Location: http://".$site."/formmailok.html" );
} else {
Header("Location: http://".$site."/formmailpasok.html" );
}
?>





fonctions-panier.php

<?php

/**
* Verifie si le panier existe, le créé sinon
* @return booleen
*/
function creationPanier(){
if (!isset($_SESSION['panier'])){
$_SESSION['panier']=array();
$_SESSION['panier']['libelleProduit'] = array();
$_SESSION['panier']['qteProduit'] = array();
$_SESSION['panier']['prixProduit'] = array();
$_SESSION['panier']['verrou'] = false;
}
return true;
}


/**
* Ajoute un article dans le panier
* @param string $libelleProduit
* @param int $qteProduit
* @param float $prixProduit
* @return void
*/
function ajouterArticle($libelleProduit,$qteProduit,$prixProduit){

//Si le panier existe
if (creationPanier() && !isVerrouille())
{
//Si le produit existe déjà on ajoute seulement la quantité
$positionProduit = array_search($libelleProduit, $_SESSION['panier']['libelleProduit']);

if ($positionProduit !== false)
{
$_SESSION['panier']['qteProduit'][$positionProduit] += $qteProduit ;
}
else
{
//Sinon on ajoute le produit
array_push( $_SESSION['panier']['libelleProduit'],$libelleProduit);
array_push( $_SESSION['panier']['qteProduit'],$qteProduit);
array_push( $_SESSION['panier']['prixProduit'],$prixProduit);
}
}
else
echo "Un probleme est survenu veuillez contacter l administrateur du site.";
}



/**
* Modifie la quantité d'un article
* @param $libelleProduit
* @param $qteProduit
* @return void
*/
function modifierQTeArticle($libelleProduit,$qteProduit){
//Si le panier éxiste
if (creationPanier() && !isVerrouille())
{
//Si la quantité est positive on modifie sinon on supprime l'article
if ($qteProduit > 0)
{
//Recharche du produit dans le panier
$positionProduit = array_search($libelleProduit, $_SESSION['panier']['libelleProduit']);

if ($positionProduit !== false)
{
$_SESSION['panier']['qteProduit'][$positionProduit] = $qteProduit ;
}
}
else
supprimerArticle($libelleProduit);
}
else
echo "Un probleme est survenu veuillez contacter l administrateur du site.";
}

/**
* Supprime un article du panier
* @param $libelleProduit
* @return unknown_type
*/
function supprimerArticle($libelleProduit){
//Si le panier existe
if (creationPanier() && !isVerrouille())
{
//Nous allons passer par un panier temporaire
$tmp=array();
$tmp['libelleProduit'] = array();
$tmp['qteProduit'] = array();
$tmp['prixProduit'] = array();
$tmp['verrou'] = $_SESSION['panier']['verrou'];

for($i = 0; $i < count($_SESSION['panier']['libelleProduit']); $i++)
{
if ($_SESSION['panier']['libelleProduit'][$i] !== $libelleProduit)
{
array_push( $tmp['libelleProduit'],$_SESSION['panier']['libelleProduit'][$i]);
array_push( $tmp['qteProduit'],$_SESSION['panier']['qteProduit'][$i]);
array_push( $tmp['prixProduit'],$_SESSION['panier']['prixProduit'][$i]);
}

}
//On remplace le panier en session par notre panier temporaire à jour
$_SESSION['panier'] = $tmp;
//On efface notre panier temporaire
unset($tmp);
}
else
echo "Un probleme est survenu veuillez contacter l administrateur du site.";
}


/**
* Montant total du panier
* @return int
*/
function MontantGlobal(){
$total=0;
for($i = 0; $i < count($_SESSION['panier']['libelleProduit']); $i++)
{
$total += $_SESSION['panier']['qteProduit'][$i] * $_SESSION['panier']['prixProduit'][$i];
}
return $total;
}


/**
* Fonction de suppression du panier
* @return void
*/
function supprimePanier(){
unset($_SESSION['panier']);
}

/**
* Permet de savoir si le panier est verrouillé
* @return booleen
*/
function isVerrouille(){
if (isset($_SESSION['panier']) && $_SESSION['panier']['verrou'])
return true;
else
return false;
}

/**
* Compte le nombre d'articles différents dans le panier
* @return int
*/
function compterArticles()
{
if (isset($_SESSION['panier']))
return count($_SESSION['panier']['libelleProduit']);
else
return 0;

}

?>



Désolé pour se message indigeste
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
5
Date d'inscription
samedi 26 décembre 2009
Dernière intervention
2 juillet 2011
3
Merci
Trop simple en fait:





puis: Devis: ".$_POST['tablo']." \r\n"; dans le php d'envoi qui récupère la variable de session



Merci

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de odogp1
Messages postés
5
Date d'inscription
samedi 26 décembre 2009
Dernière intervention
2 juillet 2011
0
Merci
erreur de ma part, ma page formmaildevis.php est comme cela en fait :

<?php
/* Remplacer votre_adresse@mail.net par votre adresse mail
Remplacer www.votre_domaine.net par votre nom de domaine */

$adresse = "contact@xxx.fr";
$site = "www.xxx.fr";

$TO = $adresse;

$head = "From: ".$adresse."\n";
$head .= "X-Sender: <".$adresse.">\n";
$head .= "X-Mailer: PHP\n";
$head .= "Return-Path: <".$adresse.">\n";
$head .= "Content-Type: text/plain; charset=iso-8859-1\n";

$sujet = "Devis";

$informations = "
Nom: ".$_POST['nom']." \r\n
Prénom: ".$_POST['prenom']." \r\n
Email du formulaire: ".$_POST['email']." \r\n
Code Postal: ".$_POST['codepostal']." \r\n
Ville: ".$_POST['ville']." \r\n
Sujet du formulaire: ".$_POST['title']."\r\n
Message: ".$_POST['texte']." \r\n";
utf8_decode($texte);
$res = mail($TO, $sujet ,$informations, $head);

if (true == $res) {
Header("Location: http://".$site."/formmailok.html" );
} else {
Header("Location: http://".$site."/formmailpasok.html" );
}
?>
Commenter la réponse de odogp1
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
Dernière intervention
11 septembre 2013
0
Merci
bonjour

dans formmaildevis.php tu as $texte veux tu y mettre le detail de la commande ? un tableau comme dans une facture ?
1 - voir la forme de ton array
2 - faire une boucle pour formater du html

a++

<?php

var_dump($_SESSION['panier']);

echo '
';

echo '';
print_r($_SESSION['panier']);
echo '

';

//puis formater ton tableau pour l'afficher en html

/* Remplacer votre_adresse@mail.net par votre adresse mail
Remplacer www.votre_domaine.net par votre nom de domaine */

/* pour l'instant pas actif test ...
$adresse = "contact@xxx.fr";
$site = "www.xxx.fr";

$TO = $adresse;

$head = "From: ".$adresse."\n";
$head .= "X-Sender: <".$adresse.">\n";
$head .= "X-Mailer: PHP\n";
$head .= "Return-Path: <".$adresse.">\n";
$head .= "Content-Type: text/plain; charset=iso-8859-1\n";

$sujet = "Devis";

$informations = "
Nom: ".$_POST['nom']." \r\n
Prénom: ".$_POST['prenom']." \r\n
Email du formulaire: ".$_POST['email']." \r\n
Code Postal: ".$_POST['codepostal']." \r\n
Ville: ".$_POST['ville']." \r\n
Sujet du formulaire: ".$_POST['title']."\r\n
Message: ".$_POST['texte']." \r\n";
utf8_decode($texte);
$res = mail($TO, $sujet ,$informations, $head);

if (true == $res) {
Header("Location: http://".$site."/formmailok.html" );
} else {
Header("Location: http://".$site."/formmailpasok.html" );
}
*/
?>
Commenter la réponse de cod57
Messages postés
5
Date d'inscription
samedi 26 décembre 2009
Dernière intervention
2 juillet 2011
0
Merci
Merci pour cette réponse rapide, mais je le met ou :

<?php

var_dump($_SESSION['panier']);

echo '
';

echo '';
print_r($_SESSION['panier']);
echo '

';

Désolé chu débutant merci encore
Commenter la réponse de odogp1
Messages postés
5
Date d'inscription
samedi 26 décembre 2009
Dernière intervention
2 juillet 2011
0
Merci
Petit up !!!
Commenter la réponse de odogp1

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.