Flore
Espoir
 
Points gagnés: 1
Messages: 101
|
 |
« Répondre #15 le: 24 Novembre 2006 à 16:14:07 » |
|
Bonjour, Ah !!! grand merci  Petite chose, avant de commencer a tripoter dans le php, tout les lignes de codes que tu explique dans le tutox, elle doivent se trouver ou ? Directement dans le fichier html ou alors faut t'il créer un fichier indépendant php ? Et si oui, quel nom doit t'il avoir ? Finalement je ne sors pas des formulaire en ce moment … ce doit être une passion !!! 
|
|
|
|
|
Journalisée
|
--
Flore
|
|
|
|
|
damien
|
 |
« Répondre #16 le: 24 Novembre 2006 à 17:19:46 » |
|
Lequel ? la partie 3 ? Dans mon tuto, c'est écrit le php va dans un fichier traitement.php séparé Et il est appelé dans l'action du formulaire donc c'est changeable : <form method="post" action="traitement.php"> </form>
|
|
|
|
|
Journalisée
|
|
|
|
Flore
Espoir
 
Points gagnés: 1
Messages: 101
|
 |
« Répondre #17 le: 24 Novembre 2006 à 18:57:24 » |
|
Lequel ? la partie 3 ? Dans mon tuto, c'est écrit le php va dans un fichier traitement.php séparé Et il est appelé dans l'action du formulaire donc c'est changeable : <form method="post" action="traitement.php"> </form> Oui le 3, ok vu, lu et comprendu !!  Du coup, je me demande si je ne vais pas abondonner l'idée du PDF, il suffirait juste de créer le questionnaire comme tu le décris . Et d'envoyer par mail le lien du dis questionnaire. Maintenant, je ne vois pas ou et quoi renseigner de mon adresse mail le bouton Envoyer. Car je présume, que l'on doit recevoir par mail les résultats du dis questionnaire ? Bon c'est clair, j'y vais pas à pas, mais vous faites vraiment un sacré travail avec ces tutox, Bravo !!! 
|
|
|
|
|
Journalisée
|
--
Flore
|
|
|
|
damien
|
 |
« Répondre #18 le: 24 Novembre 2006 à 22:33:17 » |
|
En fait les deux choses les plus courantes qu'on fait avec un formulaire c'est : - insérer les données en base de données - envoyer les données par mail Sur l'exemple du tuto, c'est la première chose qui est faite (insertion en base de données), donc ça n'envoie rien par email non. Mais c'est transposable, il suffit de modifier l'endroit qui insérer en base de données et d'envoyer les données par email à la place. Si je reprend le tuto, par exemple : $sql = "INSERT INTO formulaire VALUES ('', '$civilite', '$nom', '$adresse', '$codepostal', '$ville', '$pays', '$sqlinterets', '$comments', now())"; $res = mysql_query($sql);
if ($res) { echo $msg_ok; } else { echo mysql_error(); } en // Informations d'entête du mail: $headers ="MIME-Version: 1.0\r\n"; $headers .='From: ' . EXPEDITEUR_NOM; $headers .=' <' . EXPEDITEUR_EMAIL . ">\r\n"; $headers .='Reply-To: '. EXPEDITEUR_EMAIL ."\r\n"; $headers .='Content-Type: text/plain; '; $headers .='charset="iso-8859-1"'."\r\n"; $headers .="Content-Transfer-Encoding: 8bit\r\n"; $headers .='X-Mailer:PHP/' . phpversion() . "\r\n"; // sujet du mail $sujet = "Formulaire du site"; // corps du mail $message = "Civilite : $civilite \n Nom : $nom \n adresse : $adresse \n code postal : $codepostal \n ville : $ville \n pays : $pays \n interets : $sqlinterets \n commentaires : $comments"; $retval = mail(" tonmail@example.com",$sujet,$message,$headers); Dans le corps message on met toutes les valeurs des champs du formulaire avec des \n qui signifient un retour à la ligne par exemple.
|
|
|
|
|
Journalisée
|
|
|
|
Flore
Espoir
 
Points gagnés: 1
Messages: 101
|
 |
« Répondre #19 le: 25 Novembre 2006 à 04:05:34 » |
|
Donc ,si j'ai bien compris, dans le deuxième cas il n'est plus nécessaire d'avoir une base de données nommé "Formulaire" puisque toutes les infos arruveront chez moi.
Je tenterai tout ca demain, merci.
|
|
|
|
|
Journalisée
|
--
Flore
|
|
|
|
damien
|
 |
« Répondre #20 le: 25 Novembre 2006 à 13:44:03 » |
|
Oui tu as bien compris, soit tu t'envoies toutes les données par mail ou soit tu les stockes dans une base de données (pour pouvoir les consulter via une interface à développer aussi éventuellement). Donc plus besoin de la table Formulaire (quoiqu'il reste possible de faire les deux combinés en cas de besoin bien sûr).
|
|
|
|
|
Journalisée
|
|
|
|
Flore
Espoir
 
Points gagnés: 1
Messages: 101
|
 |
« Répondre #21 le: 25 Novembre 2006 à 14:05:48 » |
|
Bonjour,
D'accord, donc dans mon cas, la solution de recevoir par mail les réposes des formulaires
J'ai fait un petit essai ce matin, lorsque j'envoi mon formulaire aprés l'avoir rempli, j'ai ceci :
Parse error: syntax error, unexpected T_VARIABLE in/mnt/chemin absolu (j'imagne)/traitement.php on line 18
La ligne 18 chez moi est celle ci : $message .= "Votre civilité<br/>";
Le problème de syntax, a mon avis doit etre, de ce que j'ai mis ici en rouge, mais alors, avec quoi doit t'elle coordonnés ? dans le fichier html ?
Il faut savoir que je fais mon test sur un FTP chez free, je dis ça car im semble qu'il y est souvent qq soucis chez eux !!!
Merci
|
|
|
|
|
Journalisée
|
--
Flore
|
|
|
|
damien
|
 |
« Répondre #22 le: 25 Novembre 2006 à 14:21:29 » |
|
Bonjour Flore,
Il n'y a pas assez de code pour pouvoir te dire, car la ligne que tu as mis est syntaxiquement correcte en soit, ça dépend de ce qu'il y a au dessus donc si tu peux en mettre un peu plus...
A prioris selon l'erreur, la variable $message est inattendue certainement parce que quelque chose n'est pas fermé au dessus ou qu'il manque un point virgule.
|
|
|
|
|
Journalisée
|
|
|
|
Flore
Espoir
 
Points gagnés: 1
Messages: 101
|
 |
« Répondre #23 le: 25 Novembre 2006 à 20:06:22 » |
|
Bien, je mets tout : <?php // Parametres mysql à remplacer par les vôtres define('DB_SERVER', 'blabla'); // serveur mysql define('DB_SERVER_USERNAME', 'blabla'); // nom d'utilisateur define('DB_SERVER_PASSWORD', 'blabla'); // mot de passe define('DB_DATABASE', 'blabla'); // nom de la base // Connexion au serveur mysql $connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD) or die('Impossible de se connecter : ' . mysql_error()); // sélection de la base de données mysql_select_db(DB_DATABASE, $connect); $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>"; $msg_ok = "Votre demande a bien été prise en compte."; $message = $msg_erreur; // vérification des champs if (empty($_POST['civilite'])) $message .= "Votre civilité<br/>"; if (empty($_POST['nom'])) $message .= "Votre nom<br/>"; if (empty($_POST['adresse'])) $message .= "Votre adresse<br/>"; if (empty($_POST['codepostal'])) $message .= "Votre code postal<br/>"; if (empty($_POST['ville'])) $message .= "Votre ville<br/>"; if (empty($_POST['comments'])) $message .= "Votre message<br/>"; // si un champ est vide, on affiche le message d'erreur if (strlen($message) > strlen($msg_erreur)) {
echo $message;
// sinon c'est ok } else {
foreach($_POST as $index => $valeur) { $$index = mysql_real_escape_string(trim($valeur)); }
$interets = $_POST['interets']; $sqlinterets = ''; for ($i=0; $i<count($interets); $i++) { $sqlinterets .= $interets[$i]; $sqlinterets .= ', '; }
// Informations d'entête du mail: $headers ="MIME-Version: 1.0\r\n"; $headers .='From: ' . EXPEDITEUR_NOM; $headers .=' <' . EXPEDITEUR_EMAIL . ">\r\n"; $headers .='Reply-To: '. EXPEDITEUR_EMAIL ."\r\n"; $headers .='Content-Type: text/plain; '; $headers .='charset="iso-8859-1"'."\r\n"; $headers .="Content-Transfer-Encoding: 8bit\r\n"; $headers .='X-Mailer:PHP/' . phpversion() . "\r\n";
// sujet du mail $sujet = "Formulaire du site"; // corps du mail $message = "Civilite : $civilite \n Nom : $nom \n adresse : $adresse \n code postal : $codepostal \n ville : $ville \n pays : $pays \n interets : $sqlinterets \n commentaires : $comments";
$retval = mail("blabla@blabla.com",$sujet,$message,$headers); } ?> Mais je me demande aussi, que certaine lignes ne sont plus utile, comme celles concernant la base sql du début ?
|
|
|
|
|
Journalisée
|
--
Flore
|
|
|
|
damien
|
 |
« Répondre #24 le: 27 Novembre 2006 à 02:04:16 » |
|
Bonsoir, Oui il reste du mysql inutile dans ton cas, je ne vois pas d'erreur de syntaxe à première vue mais essaie comme ça sans les lignes mysql inutiles : <?php
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>"; $msg_ok = "Votre demande a bien été prise en compte."; $message = $msg_erreur; // vérification des champs if (empty($_POST['civilite'])) $message .= "Votre civilité<br/>"; if (empty($_POST['nom'])) $message .= "Votre nom<br/>"; if (empty($_POST['adresse'])) $message .= "Votre adresse<br/>"; if (empty($_POST['codepostal'])) $message .= "Votre code postal<br/>"; if (empty($_POST['ville'])) $message .= "Votre ville<br/>"; if (empty($_POST['comments'])) $message .= "Votre message<br/>"; // si un champ est vide, on affiche le message d'erreur if (strlen($message) > strlen($msg_erreur)) {
echo $message;
// sinon c'est ok } else {
foreach($_POST as $index => $valeur) { $$index = trim($valeur); }
$interets = $_POST['interets']; $sqlinterets = ''; for ($i=0; $i<count($interets); $i++) { $sqlinterets .= $interets[$i]; $sqlinterets .= ', '; }
// Informations d'entête du mail: $headers ="MIME-Version: 1.0\r\n"; $headers .='From: ' . EXPEDITEUR_NOM; $headers .=' <' . EXPEDITEUR_EMAIL . ">\r\n"; $headers .='Reply-To: '. EXPEDITEUR_EMAIL ."\r\n"; $headers .='Content-Type: text/plain; '; $headers .='charset="iso-8859-1"'."\r\n"; $headers .="Content-Transfer-Encoding: 8bit\r\n"; $headers .='X-Mailer:PHP/' . phpversion() . "\r\n";
// sujet du mail $sujet = "Formulaire du site"; // corps du mail $message = "Civilite : $civilite \n Nom : $nom \n adresse : $adresse \n code postal : $codepostal \n ville : $ville \n pays : $pays \n interets : $sqlinterets \n commentaires : $comments";
$retval = mail("blabla@blabla.com",$sujet,$message,$headers); } ?>
|
|
|
|
|
Journalisée
|
|
|
|
Flore
Espoir
 
Points gagnés: 1
Messages: 101
|
 |
« Répondre #25 le: 27 Novembre 2006 à 04:50:49 » |
|
Ok, super ca marche , Bravo ! a moi de faire NOTRE formulaire, mais le tutox est la  Il y a simplement ce message : Votre demande a bien été prise en compte. Qui ne s'affiche pas. merci
|
|
|
|
|
Journalisée
|
--
Flore
|
|
|
|
damien
|
 |
« Répondre #26 le: 27 Novembre 2006 à 13:18:02 » |
|
Ah oui je l'ai oublié lui Après la ligne qui envoie le mail : Ajouter : // si le mail a bien été envoyé... if ($retval) echo $msg_ok;
Et tu pourrais même rajouter un "else" pour afficher un message d'erreur si le mail n'a pas été envoyé correctement.
|
|
|
|
|
Journalisée
|
|
|
|
poky
Nouveau membre
Points gagnés: 0
Messages: 9
|
 |
« Répondre #27 le: 01 Décembre 2006 à 18:11:28 » |
|
Bonjour,
Tout d'abord, félicitations pour ce tuto formulaire, très bien fait et complet. J'ai un petit problème, j'ai voulu envoyer les infos par mail et j'ai une erreur qui s'affiche après validation : warning: mysql_real_escape_string() en pliens d'exemplaires. D'autre part, l'email arrive mais seuls les titres des champs sont présents sans le contenu et l'en-tête reprend EXPEDITEUR_NOM. Merci pour la réponse. Chrs
|
|
|
|
|
Journalisée
|
|
|
|
|
damien
|
 |
« Répondre #28 le: 01 Décembre 2006 à 18:22:37 » |
|
Bonjour et bienvenue sur le forum, Pour le problème mysql_real_escape_string() , regardez bien mon dernier code posté pour la version mail, il faut enlever cette fonction car elle ne sert qu'avec mysql et requiert une connexion mysql active d'où l'erreur. C'est vers ces lignes que la fonction doit être restée sur votre code : foreach($_POST as $index => $valeur) { $$index = trim($valeur); } Pour le problème EXPEDITEUR_NOM, j'ai peut être oublié de précisé mais les EXPEDITEUR_NOM et EXPEDITEUR_EMAIL que j'ai mis sur ce dernier code sont à remplacer vos noms et adresse email de l'expéditeur que vous voulez.
|
|
|
|
|
Journalisée
|
|
|
|
poky
Nouveau membre
Points gagnés: 0
Messages: 9
|
 |
« Répondre #29 le: 02 Décembre 2006 à 00:22:44 » |
|
Bonsoir,
Merci pour votre réponse rapide, j'ai suivi les consignes. Autre problème maintenant : unexpected T_STRING Merci encore. Poky
|
|
|
|
|
Journalisée
|
|
|
|
|