Envoi des données d'un formulaire sur email via php

Salut a tous 8)

Je ne connait rien au php mais je souhaite réliser un formulaire sur un site web et récupérer ses données directement dans ma boite mail, j’ai donc parcouru le web a la recherche d’un tuto sympa et je suis tombé sur celui-ci.

J’ai donc copié le code source html sans le modifier puis le code source php en ne modifiant que l’adresse email d’envoi, ensuite j’ai enregistré les 2 fichiers que j’ai transférer a la racine de mon serveur qui supporte le php.

Mais le souscis c’est que le formulaire ne fonctionne pas ; voila ce que j’obtiens :

Notice: Undefined variable: HTTP_POST_VARS in D:\home\Default\alsprod.com\htdocs\envoi.php on line 2

Notice: Undefined variable: HTTP_POST_VARS in D:\home\Default\alsprod.com\htdocs\envoi.php on line 3

Notice: Undefined variable: HTTP_POST_VARS in D:\home\Default\alsprod.com\htdocs\envoi.php on line 4

Notice: Undefined variable: HTTP_POST_VARS in D:\home\Default\alsprod.com\htdocs\envoi.php on line 5

Warning: mail() [function.mail]: SMTP server response: 501 5.5.4 Invalid Address in D:\home\Default\alsprod.com\htdocs\envoi.php on line 19
Une erreur s'est produite

je ne comprend vraiment rien, je voulais tester avec celui-ci puis le modifier avec bien plus de variables mais bon, si deja un truc simple comme ca marche po :frowning:

heeeeeeeeelp meeeeeee pliz
Edité le 21/09/2007 à 11:37

Remplace HTTP_POST_VARS par _POST. La variable n’existe pas.

Et si tu veux faire ou utiliser du PHP, je te conseillerai de l’apprendre un peu histoire d’éviter les retours d’erreur si jamais ça plante à l’avenir :slight_smile:

merci … je test :wink:

EDIT: effectivement ca fonctionne, je n’ai plus les erreurs, sauf la dernière :

Warning: mail() [function.mail]: SMTP server response: 501 5.5.4 Invalid Address in D:\home\Default\alsprod.com\htdocs\envoi.php on line 19
Une erreur s'est produite

On dirait qu’il manque une fonction sur le serveur … non (fonction.mail)
Edité le 21/09/2007 à 12:04

Je dirais plutôt que l’adresse de l’expéditeur ou du destinataire est invalide. Mais sans le code on ne peut pas en dire plus :wink:

Tu peux faire un copier coller des 19 premières lignes du fichier envoi.php ?
Edité le 21/09/2007 à 14:07

merci de ton aide :super:

voici le code PHP en intégralité :


<?php 
$nom=$_POST['nom']; 
$mail=$_POST['mail']; 
$objet=$_POST['objet']; 
$message=$_POST['message']; 
 
/////voici la version Mine 
$headers = "MIME-Version: 1.0\r\n"; 
 
//////ici on détermine le mail en format text 
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n"; 
 
////ici on détermine l'expediteur et l'adresse de réponse 
$headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP"; 
 
$subject="$objet"; 
$destinataire="Je.smo@wanadoo.fr"; 
$body="$message"; 
if (mail($destinataire,$subject,$body,$headers)) { 
echo "Votre mail a été envoyé"; 
} else { 
echo "Une erreur s'est produite"; 
} 
?>

Edité le 21/09/2007 à 16:39

Remplace

$headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP";   

par

$headers .= "From: $mail\r\nReply-to : $nom <$mail>\nX-Mailer:PHP";   

Ca devrait corriger le problème :wink:

merci beaucoup …

effectivement c’était bien le probleme, maintenant j’essaie d’adapter ce tuto a mon formulaire comportant plusieurs champs, boutons radio et autres cases a cocher…

l’affaire n’est pas simple mais je vais y arriver … hein ?

EDIT: Comment je fais pour inclure plusieurs variable dans le BODY du mail

A cet endroit par ex :


$body="$Interet"; 

Si je veux ajouter une autre variable apres “$interet”, je la sépare avec quoi, une virgule ?

EDIT2: pour les boutons radio, si je ne les coches pas, j’obtiens une erreur, c’est normal ?
Edité le 21/09/2007 à 20:11

Oui c’est normal !!

Il faut rajouter un test sur ton checkbox pour vérifier si il est checké ou non au moment de l’envoi du formulaire !!

Il faut voir ceci ca peut t’aider !! fonction isset :wink:

ok pour le lien … :super:

je pense que ce la devrait m’aider

Par contre je dispose de case a cocher dans mon formulaire, elle comporte le me ID mais avec des VALUE différentes, comment faire pour les intégrer au PHP et recuperer toutes les cases cochées ?

Comment je galère avec ce truc lol …
Edité le 22/09/2007 à 08:53

Bon …

Je suis définitivement mauvais :frowning:
Je ne m’en sort pas avec ce script …

Y aurait-il une bonne âme à qui je pourrais envoyer le script pour qu’il me le corrige ?

Je pense que pour une personne compétente il ne reste pas grand chose a corriger.

D’avance Merci :wink:

vraiment personne ne peut me filer un petit coup de pouce :frowning:


Edité le 26/09/2007 à 21:41

j’ai enfin réussi a terminer ce formulaire … enfin presque, il ne mereste qu’un souci au niveau des checkbox :frowning:

mon formulaire se compose de 21 cases a cocher, lorsque je coche les 3 premieres par exemple je ne recoit pas la première et en plus j’obtiens 19 messages d’erreurs PHP comme celui ci :

Notice: Undefined offset: 3 in D:\home\Default\alsprod.com\htdocs\envoi2.php on line 33

voila le code que j’utilise:


$body .="Quel_interet :";
$items = 21; 
for ($i = 1; $i <= $items; $i++) { 
$body .= "\n$Quel_interet[$i]"; 
}

Perso je ne vois pas d’erreur, mais bon …

Disons que pour résumer, je n’ai pas le résultats de la première case et une erreur pour chaque case non cochés :peur:
Edité le 26/09/2007 à 21:49

Deux erreurs dans ton code :

1/ En PHP, les tableaux commencent à 0, pas à 1

2/ Tu as un message d’erreur à chaque fois que tu essaie d’utiliser le contenu d’une variable non initialisée.

Dans ton cas, corrigé, ça devrait donner quelque chose du genre :


$body .="Quel_interet :";
$items = 21; 
for ($i = 0; $i <= $items; $i++) { 
$body .= "\n";

if (isset($Quel_interet[$i])) $body.= $Quel_interet[$i]; 
}

Edité le 26/09/2007 à 23:02