Besoin d'aide pour mon script php multiples fonctions

Résolu
cretinator Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   -  
cretinator Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Après avoir lu et relu divers tutos (site du zero etc...).

J'ai créer deux pages php la (1ère: traitement.php) et la (2ème: validation.php)

Je voudrai en-faite que le client remplisse le formulaire en html, quand il pressera le bouton (envoyer), la page traitement.php qui affiche les données rentrées (et qui marche nickel). Une fois que le client est d'accord avec les données, il clique sur le bouton ok pour valider, alors la page validation.php est appelée, elle doit envoyer les données reçues:

Le problème, c'est que j'ai essayé bcp de solutions mais ça bloque toujours!

Quand j'ai testé la démarche suivante:
[ formulaire.html --> validation.php avec seulement le script envois dans ma base sql ca marche nickel]

Mais quand j'ai fais cette démarche avec le même script et mêmes $variables:
[formulaire.html --> traitement.php (qui affiche les données rentrées en echos, ensuite validation avec le bouton ok, la page marche aussi) -->validation.php le script envois bien quelque chose dans ma base mais les champs sont vides!!!]

Ou est le problème???

Est pour le(s) script(s) pour la fonction mail je n'arrive pas à paramétré en localhost avec wampserver, pour que je puisse recevoir les mails

Enfaite je voudrais réunir dans la page validation.php les scripts suivant:

[ -> 1/ envois dans la base de données
[ -> 2/ un mail de confirmation envoyer au client
[ -> 3/ un mail de leur commande sur ma boite email
[ -> 4/ l'appel d'une page html de remerciement

Peut on mettre tous ça dans le même script?
Parce que les formules pour rédiger mon script c'est un peut du chinois pour moi.

Je ne demande pas qu'on me le fasse! Mais un petit peu d'aide sur les démarches et surtout des explications pour avancé ne serai pas de refus ;-)

A voir également:

3 réponses

Exileur Messages postés 1475 Date d'inscription   Statut Membre Dernière intervention   150
 
Salut,

Alors, j'ai pas tout compris, mais pour la première partie, je dois pouvoir t'aider.

Peux-tu copier/coller le code de ta page traitement.php ?

Et réexpliquer ton projet de mailing ?

Cordialement
Exileur
0
cretinator Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   1
 
bonsoir à vous!

bon voici mon code j'ai travaillé dessus et je suis arrivé à résoudre la partie 1 avec la fonction $session!
Mais je reste bloqué pour la fonction mail, vu que je n'arrive pas a le programmé en localhost!

mon code de la page 1=(votrecommande.php)!

<?php session_start();
$_SESSION['Nom'] = (htmlspecialchars($_POST['Nom']));
$_SESSION['Prenom'] = (htmlspecialchars($_POST['Prenom']));
$_SESSION['Telephone'] = (htmlspecialchars($_POST['Telephone']));
$_SESSION['Adresse'] = (htmlspecialchars($_POST['Adresse']));
$_SESSION['Ville'] = (htmlspecialchars($_POST['Ville']));
$_SESSION['Email'] = (htmlspecialchars($_POST['Email']));
$_SESSION['Votretext'] =(htmlspecialchars($_POST['Votretext']));
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Votrecommande</title>
</head>
<body bgcolor="#CCFFFF" align="center" valign="middle">
<p align="center" class="Style1">Ces données sont correctes? :</p>
<table width="70%" height="350" align="center" valign="middle" border="1"><form method="POST" type="text/plain" action="validation.php">
<tr>
	<th width="20%" height="20" align="center" valign="middle" bordercolor="#0066FF" bgcolor="#CC99FF" scope="col"><font color="#0033FF">Votre Nom est:<br/></font>
	<?php echo htmlentities($_SESSION['Nom']);?></th>
	<th width="20%" height="20" align="center" valign="middle" bordercolor="#0066FF" bgcolor="#CC99FF" scope="col"><font color="#0033FF">Votre Prénom est:<br/></font>
	<?php echo htmlentities($_SESSION['Prenom']);?></th>
	<th width="20%" height="20" align="center" valign="middle" bordercolor="#0066FF" bgcolor="#CC99FF" scope="col"><font color="#0033FF">Votre Téléphone est:<br/></font>
	<?php echo htmlentities($_SESSION['Telephone']);?></th>
  </tr>
<tr>	
	<th width="20%" height="20" align="center" valign="middle" bordercolor="#0066FF" bgcolor="#CC99FF" scope="col"><font color="#0033FF">Votre Adresse est:<br/></font>
	<?php echo htmlentities($_SESSION['Adresse']);?></th>
	<th width="20%" height="20" align="center" valign="middle" bordercolor="#0066FF" bgcolor="#CC99FF" scope="col"><font color="#0033FF">Votre Ville est:<br/></font>
	<?php echo htmlentities($_SESSION['Ville']);?></th>
	<th width="20%" height="20" align="center" valign="middle" bordercolor="#0066FF" bgcolor="#CC99FF" scope="col"><font color="#0033FF">Votre Adresse Email est:<br/></font>
	<?php echo htmlentities($_SESSION['Email']);?></th>
  </tr>
	<th height="150%" bgcolor="FFFFFF" colspan="3" valign="top" scope="row"><br/>Votre Commande :<br/><br/><br/>
	<?php echo nl2br(htmlentities($_SESSION['Votretext']));?></th>
<tr align="center" valign="middle">
    <th height="20" bgcolor="#000000"><a href="../administration/Commande.html"><font color="#FF9900">Retour</a></font></th>
    <th height="20" bordercolor="#000000" bgcolor="#CC99FF"></th>
    <th height="20" bgcolor="#000000" ><font color="#FF9900">Validez les données <input type="submit" name="valider" value="OK"/></font></th></form></tr></table>
<tr align="center" valign="middle">
	<th height="20" bgcolor="#000000">
	<p align="center" class="Style2"> Vous allez recevoir un mail de confirmation de votre commande et une réponse dans les plus brefs délais.</p>
</body>
</html>


et voici le code de la page 2 = (validation.php)

<?php session_start();

include('mydb.php');

$email= mysql_real_escape_string (htmlspecialchars($_SESSION['Email']));
$nom = mysql_real_escape_string (htmlspecialchars($_SESSION['Nom']));
$prenom = mysql_real_escape_string (htmlspecialchars($_SESSION['Prenom']));
$adresse = mysql_real_escape_string (htmlspecialchars($_SESSION['Adresse']));
$ville = mysql_real_escape_string (htmlspecialchars($_SESSION['Ville']));
$telephone = mysql_real_escape_string (htmlspecialchars($_SESSION['Telephone']));
$message = mysql_real_escape_string(htmlspecialchars($_SESSION['Votretext']));
$message = nl2br($message);
$date = date("y-m-d");
connectMaBase();
$sql = 'INSERT INTO donneesclients VALUES
("","'.$email.'","'.$nom.'","'.$prenom.'","'.$adresse.'","'.$ville.'","'.$telephone.'","'.$message.'","'.$date.'")';
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
mysql_close();

if($sql) header("location:../mercimail.html");
else echo"Oups!!! une erreur est survenue.<br> Veuillez remplir à nouveau le formulaire!";
session_destroy(); 
?>


Voilà je voudrai rajouter à ce script la fonction mail automatique, comme au point 2 et 3.
0
cretinator Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   1
 
Et voici le bout de code que je veux inséré dans la page validation.

<?php session_start(); 
<?php 
$to = 'xxxxxx@hotmail.ch'; 
$from = htmlentities($_SESSION['Email']); 
$subject = 'Commande'; 
$msg = htmlentities($_SESSION['Nom']); 
$msg = htmlentities($_SESSION['Prenom']); 
$msg = htmlentities($_SESSION['Adresse']); 
$msg = htmlentities($_SESSION['Ville']); 
$msg = htmlentities($_SESSION['Telephone']); 
$msg = nl2br(htmlentities($_SESSION['Votretext'])); 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers = 'Content-type: text/plain; charset="iso-8859-1'."\r\n"; 
mail($to,$from,$subject,$headers,$msg); 
?>


Pour les fonction mail, je voudrai que le client reçois un mail de confirmation de sa commande et que moi je reçois ça commande,
0
mandolorien Messages postés 109 Date d'inscription   Statut Membre Dernière intervention   3
 
oui +1 exileur , nous aimerions voir tes fichiers , pour ma part des que exileur t auras fait la premiere partie je pourrai t aider pour les autres parties ;)


Pense a nous donnée aussi ta bdd pour qu on puisse l utilisé et tester les scripts en local ;)

ps:n oublie pas d enlever les informations de ta connexions a ta BDD
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
beaucoup d'erreurs:
<?php session_start();  
<?php  
$to = 'xxxxxx@hotmail.ch';  
//$from = htmlentities($_SESSION['Email']);  
$subject = 'Commande';  
//ci dessous en procedant ainsi a chaque ligne tu écrase le contenu précédent de ta variable,tu as a la fin dans ta variable seulement nl2br(htmlentities($_SESSION['Votretext'])) 
/* 
$msg = htmlentities($_SESSION['Nom']);  
$msg = htmlentities($_SESSION['Prenom']);  
$msg = htmlentities($_SESSION['Adresse']);  
$msg = htmlentities($_SESSION['Ville']);  
$msg = htmlentities($_SESSION['Telephone']);  
$msg = nl2br(htmlentities($_SESSION['Votretext'])); 
*/  
//il faut concatener à chaque ligne par .= et mettre des sauts de lignes et pas besoin de htmlentites à ce niveau la
$msg = $_SESSION['Nom']."\n";  
$msg .= $_SESSION['Prenom']."\n";  
$msg .= $_SESSION['Adresse']."\n";  
$msg .= $_SESSION['Ville']."\n";  
$msg .=$_SESSION['Telephone']."\n";  
$msg .= nl2br($_SESSION['Votretext']); 
//la aussi il faut concatener 
$headers = 'From: webmaster@example.com' . "\r\n";  //remplaces par ton adresse dans ton domaine 
$headers .= 'MIME-Version: 1.0' . "\r\n";  
$headers .= 'Content-type: text/plain; charset="iso-8859-1'."\r\n"; 
//ci dessous ordre des arguments non respecté et pas de from (il est dans headers 
//mail($to,$from,$subject,$headers,$msg);  
if(mail($to,$subject,$msg,$headers)){ 
 echo "Mail envoyé avec succès !"; 
}else{ 
 echo "Pb d'envoi du mail !"; 
}  
?>
0
cretinator Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   1
 
A oui effectivement j'ai fais plein d'erreur!
Mais là c'est seulement l'envois du mail dans sa boîte mail?
Pour que le client reçoive une copie de sa commande je doit inséré la fonction " reply-to " non?
0
cretinator Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   1
 
Re à tous !
Voilà le script corrigé et inséré à la page validation.php

<?php session_start();

require('mydb.php');

$email= mysql_real_escape_string (htmlspecialchars($_SESSION['Email']));
$nom = mysql_real_escape_string (htmlspecialchars($_SESSION['Nom']));
$prenom = mysql_real_escape_string (htmlspecialchars($_SESSION['Prenom']));
$adresse = mysql_real_escape_string (htmlspecialchars($_SESSION['Adresse']));
$ville = mysql_real_escape_string (htmlspecialchars($_SESSION['Ville']));
$telephone = mysql_real_escape_string (htmlspecialchars($_SESSION['Telephone']));
$message = mysql_real_escape_string(htmlspecialchars($_SESSION['Votretext']));
$message = nl2br($message);
$date = date("y-m-d");
connectMaBase();
$sql = 'INSERT INTO donneeclients VALUES
("","'.$nom.'","'.$prenom.'","'.$adresse.'","'.$ville.'","'.$telephone.'","'.$email.'","'.$message.'","'.$date.'")';
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
mysql_close();
?>
<?php
$to = $_session['Email'];
$subject = 'Commande'."\n";
$msg = $_SESSION['Nom']."\n";
$msg .= $_SESSION['Prenom']."\n";
$msg .= $_SESSION['Adresse']."\n";
$msg .= $_SESSION['Ville']."\n";
$msg .= $_SESSION['Telephone']."\n";
$msg .= nl2br($_SESSION['Votretext'])."\n";
$headers .= 'MIME-Version: 1.0'."\r\n";
$headers .= 'Content-type: text/html; charset="iso-8859-1'."\r\n";
mail($to,$subject,$msg,$headers);

if(mail($to,$subject,$msg,$headers))
{
;
}
else
{ 
 echo "<strong>Oups!</strong><br/> Une erreur c'est produite lors de l'envois de votre commande.<br/>Veuillez remplir à nouveau le formulaire&nbsp;!"; 
}
?>
<?php
$to = 'xxxxx@hotmail.ch';
$subject = 'Votre commande'."\n";
$msg = $_SESSION['Nom']."\n";
$msg .= $_SESSION['Prenom']."\n";
$msg .= $_SESSION['Adresse']."\n";
$msg .= $_SESSION['Ville']."\n";
$msg .= $_SESSION['Telephone']."\n";
$msg .= nl2br($_SESSION['Votretext'])."\n";
$headers = 'from: webmaster@example.com'."\r\n";
$headers .= 'Bonjour,<br/>merci pour votre commande .'."\r\n";
$headers .= 'MIME-Version: 1.0'."\r\n";
$headers .= 'Content-type: text/html; charset="iso-8859-1'."\r\n";
mail($to,$subject,$msg,$headers);

if(mail($to,$subject,$msg,$headers))
{
header("location:../mercimail.html");
}
else
{ 
 echo "<strong>Oups!</strong><br/> Une erreur c'est produite lors de l'envois de votre commande.<br/>Veuillez remplir à nouveau le formulaire&nbsp;!"; 
}  
session_destroy();
?>

Es-ce-que la démarche au dessus est correct ? ou je peut combiné les deux formules mail??
0