Besoin d'aide pour mon script php multiples fonctions

Résolu/Fermé
cretinator Messages postés 67 Date d'inscription samedi 26 janvier 2013 Statut Membre Dernière intervention 6 décembre 2014 - 9 févr. 2013 à 14:23
cretinator Messages postés 67 Date d'inscription samedi 26 janvier 2013 Statut Membre Dernière intervention 6 décembre 2014 - 14 févr. 2013 à 13:58
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 mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
10 févr. 2013 à 22:38
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 samedi 26 janvier 2013 Statut Membre Dernière intervention 6 décembre 2014 1
13 févr. 2013 à 21:07
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 samedi 26 janvier 2013 Statut Membre Dernière intervention 6 décembre 2014 1
Modifié par cretinator le 13/02/2013 à 22:51
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 dimanche 9 septembre 2012 Statut Membre Dernière intervention 9 mars 2018 3
11 févr. 2013 à 14:42
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 14/02/2013 à 08:11
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 samedi 26 janvier 2013 Statut Membre Dernière intervention 6 décembre 2014 1
Modifié par cretinator le 14/02/2013 à 11:17
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 samedi 26 janvier 2013 Statut Membre Dernière intervention 6 décembre 2014 1
14 févr. 2013 à 13:58
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