Rechercher : dans
Par :

[PHP] Recevoir les données d'un formulaire

Dernière réponse le 3 fév 2007 à 13:21:26 Carotte77, le 1 fév 2007 à 23:55:26 
 Signaler ce message aux modérateurs

Bonjour,

Je vous écrits pour un problème de formulaire.

En effet, j'ai créé sur mon site une partie contact, contenant un formulaire.

Après plusieurs tentatives de php trouvé sur le net, je n'ai pas réussi à récupérer ces données. Je voudrais en fait recevoir les donénes du formulaire par mail, par l'intérmédiare d'une méthode POST et d'un script PHP (pour éviter l'ouverture du client messagerie avec mailto...)

Je vous invite à consulter mon code directement sur la page (car il est trop long pour le citer ici, pardonnez moi d'avance les erreurs de débutant dans mon code...)

Ma page de contact ici : http://objectifplanete.ovh.org/Contact.html

De plus, après avoir envoyé le données, j'aimerais que le visiteur tombe sur une page lui disant (le cas échéant) que son emssage a été envoyé ou non, et une redirection vers la page de contact. Malheureusement, encore une fois, après de nombreux essaie (j'y suis depuis toute la soirée), je n'ai pas réussi (soit les deux avertissements d'envoi et de non envoi du message apparaissent sur la même page, soit aucune redirection n'est faite...)

Je vous demande un petit peu d'aide, n'y connaissant absolument rien en PHP, j'ai seulement les bases de l'HTML.

Merci d'avance pour votre aide, j'espère ne pas être trop exigent, bien que je n'exige rien si ce n'est qu'un petit peu d'aide. Cochez "Problème résolu" au début de la discussion lorsque votre problème est résolu ! Merci ;)

Configuration: Windows XP
Internet Explorer 7.0
Firefox 2.0

Meilleures réponses pour « [PHP] Recevoir les données d'un formulaire » dans :
PHP - Récupération de données Voir PHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
[Webmaster] Un formulaire de contact pour votre site VoirCe formulaire permet d'avoir une page pour être contacté sur son site, sans utiliser de logiciel de messagerie. La personne qui vous contacte indique son adresse, l'objet du message et son message (évidemment). Le code est une version...
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...
Bases de données - Utilisation de formulaires VoirUtilisation de formulaires Afin d'exploiter les bases de données, il faut fournir une interface à l'utilisateur lui permettant de visualiser des données en fonction de certains critères. Pour cela il existe un outil : les formulaires. Un formulaire...

1

Carotte77, le 2 fév 2007 à 00:01:54
  • +1

J'oubliais (désolé la fonction éditer n'est plus présente)

Mon hébergeur est compatible PHP4 et 5, et possède une base MySQL 4.1, se cela peut vous être utile...

Après je crois qu'il y a apache dessus, mais je n'en suis pas sur (hébergement chez ovh) Cochez "Problème résolu" au début de la discussion lorsque votre problème est résolu ! Merci ;)

Répondre à Carotte77

2

shetanus, le 2 fév 2007 à 00:09:47

Salut,

Tu dois exploiter une base la fonction mail de ton serveur.

Si tu voeux j'ai un script qui t'envoie un email avec piece attachée,

il n'est pas de moi mais j'arrive a l'exploiter et libre de droits.

Tu veux essayer ?
Je peut le mettre en ligne sur mon seveur et t'envoyer l'email avec les infos...
Et toi tu récupères et tu me dis ...

Ok ?

Répondre à shetanus

3

shetanus, le 2 fév 2007 à 02:21:32

<?php

$type="text/plain";

//----------------------------------
// Construction de l'entête
//----------------------------------

if($_POST['to']!="")
{
$boundary = "-----=".md5(uniqid(rand()));
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
$header .= "\r\n";

$msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n";

$msg .= "--$boundary\r\n";

$msg .= "Content-Type: $type; charset=\"iso-8859-1\"\r\n";
$msg .= "Content-Transfer-Encoding:8bit\r\n";
$msg .= "\r\n";
$msg .= "Demande : ".$_POST['demande']."\n";
$msg .= "Nom :".$_POST['nom']."\n";
$msg .= "Prénom : ".$_POST['prenom']."\n";
$msg .= "Message : "."\n".$_POST['message'];
$msg .= "\r\n";

$destinataire = $_POST['to'];
$expediteur   = $_POST['from'];
$reponse      = $expediteur;
echo "Mail envoyé à $destinataire";

mail($destinataire, 'Demande : '.$_POST['demande'].' - '.$_POST['sujet'], $msg,
     "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);

}

?>


Bonne réception,

Répondre à shetanus

4

Carotte77, le 2 fév 2007 à 07:35:39

Salut !

Merci pour le PHP et pour toute ton aide !

Désolé, j'ai répondu un peu trop rapidement a tes mails, le PHP est ici ^^

Je te remercie grandement encore, et bonne continuation !

Merci :D Cochez "Problème résolu" au début de la discussion lorsque votre problème est résolu ! Merci ;)

Répondre à Carotte77

5

Carotte77, le 2 fév 2007 à 08:18:13

Oups !

j'ai parlé trop vite...

J'ai modifié ton PHP pour le mettre à ma sauce, mais il marche plus :(

Qu'est-ce qui ne va pas ?

Voici le code, et mon message d'erreur : Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/o/b/j/objectifplanete/www/mail.php on line 34

<?php

$type="text/plain";

//----------------------------------
// Construction de l'entête
//----------------------------------

if($_POST['to']!="")
{
$boundary = "-----=".md5(uniqid(rand()));
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
$header .= "\r\n";

$msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n";

$msg .= "--$boundary\r\n";

$msg .= "Content-Type: $type; charset=\"iso-8859-1\"\r\n";
$msg .= "Content-Transfer-Encoding:8bit\r\n";
$msg .= "\r\n";
$msg .= "Nom :".$_POST['nom']."\n";
$msg .= "Prénom : ".$_POST['prenom']."\n";
$msg .= "Mail : ".$_POST['mail']. "\n";
$msg .= "Demande : ".$_POST['demande']."\n";
$msg .= "Sujet : ".$_POST['sujet']."\n";
$msg .= "Message : "."\n".$_POST['message'];
$msg .= "\r\n";

$destinataire = $_POST['to'];
$expediteur   = $_POST['from'];
$reponse      = $expediteur;
echo "Votre mail a bien été envoyé. je vous répondrais dans les meilleurs délais. <a href="http://objectifplanete.ovh.org">Retour sur le site</a>;

mail($destinataire, 'Objectifplanete : Réponse au formulaire ',
     "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);

}

?>
Cochez "Problème résolu" au début de la discussion lorsque votre problème est résolu ! Merci ;)

Répondre à Carotte77

6

shetanus, le 2 fév 2007 à 11:07:41

Salut,

La variable $_post['mail'] n'existe pas dans ton formulaire d'envoi donc ne l'utilise pas... C'est plutot la commande $_post['from'].

Tu as aussi oublié une cote " a la fin de ta phrase :
echo "Votre mail a bien été envoyé. je vous répondrais dans les meilleurs délais. <a href="http://objectifplanete.ovh.org">Retour sur le site</a>;

Je te reposte le code :

<?php

$type="text/plain";

//----------------------------------
// Construction de l'entête
//----------------------------------

if($_POST['to']!="")
{
$boundary = "-----=".md5(uniqid(rand()));
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
$header .= "\r\n";

$msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n";

$msg .= "--$boundary\r\n";

$msg .= "Content-Type: $type; charset=\"iso-8859-1\"\r\n";
$msg .= "Content-Transfer-Encoding:8bit\r\n";
$msg .= "\r\n";
$msg .= "Nom : ".$_POST['nom']."\n";
$msg .= "Prénom : ".$_POST['prenom']."\n";
$msg .= "Mail : ".$_POST['from']. "\n";
$msg .= "Demande : ".$_POST['demande']."\n";
$msg .= "Sujet : ".$_POST['sujet']."\n";
$msg .= "Message : "."\n".$_POST['message'];
$msg .= "\r\n";

$destinataire = $_POST['to'];
$expediteur   = $_POST['from'];
$reponse      = $expediteur;
echo "<center><p>Votre mail a bien été envoyé. je vous répondrais dans les meilleurs délais.</p></center>" ;

mail($destinataire, 'Objectifplanete : Réponse au formulaire ',
     "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);

}
<center><p><a href="http://objectifplanete.ovh.org">Retour sur le site</a></p></center>
?>

Répondre à shetanus

7

sirthierry, le 2 fév 2007 à 16:01:20

Salut carotte :)
Moi aussi j'ai le meme probleme que toi voici ma page http://www.ateliersportif.fr/pages/locationski.htm et on m'a conseille d'aller voir ici http://actuel.fr.selfhtml.org/articles/phpasp/formulaires/in­dex.htm mais ca ne resout tjrs pas mon probleme car je n'y connais rien en php. stpsi tu y arrives fait moi signe :)

Répondre à sirthierry

8

Carotte77, le 2 fév 2007 à 18:12:23

Il marche chez toi mais ej n'y comprend rien, chez moi toujours pas... Ile me met une erreur

Parse error: syntax error, unexpected '<' in /home/o/b/j/objectifplanete/www/mail.php on line 40

correspondant à cete ligne :

<center><p><a href="http://objectifplanete.ovh.org">Retour sur le site</a></p></center>


De plus, mon javascript qui doit me colorer les cases si l'info n'est pas transmise ne fonctionne plus, le php passe devant, donc pas de vérification :S

Pardonnez mon inexperience, mais j'ai un gros doute là.

Je dois avoir quoi sur le serveur ? un "contact.html" qui appelle un "contact.php", ou un "contact.php" qui contiendrait le code php puis le code html ?? Cochez "Problème résolu" au début de la discussion lorsque votre problème est résolu ! Merci ;)

Répondre à Carotte77

9

shetanus, le 3 fév 2007 à 01:56:17

Salut carotte,

C'est normal, j'avais uniquement mis en place le php àla volée depuis mon travail cet apres midi et j'avais pas vu.

J'ai oublié des bouts de code ... (echo)

Je te propose de le mettre en place sur mon site perso et tu valides.

Dès que c'est ok je t'envoies le code et tu l'installe chez toi..

Je regarde ...

Répondre à shetanus

10

shetanus, le 3 fév 2007 à 03:50:46

Je t'ai envoyé de nouveau le code mais a part pour ne pas poluer le site;

A bientot

Répondre à shetanus

11

 Carotte77, le 3 fév 2007 à 13:21:26

Merci de m'avoir envoyé le code. Je ne suis pas chez moi ce week end, je ne peux donc rien exploiter d'ici, mais promis dès lundi matin je vais voir et j'essaie.

je te dirais si cela marche.

Encore merci pour tout ce que tu fais pour m'aider !! :) Cochez "Problème résolu" au début de la discussion lorsque votre problème est résolu ! Merci ;)

Répondre à Carotte77
Collection CommentÇaMarche.net