Bonjour, j'ai un formulaire qui ne marche pas j'arrive pas à trouver le probleme, je debute, je teste en local rien ne marche et chez mon hebergeur c'est pareil, aui ovh il me dit que la version du php de mon compte est php 5.4.
voici mon code php
<?php
//Recuperation des variables
$name=$_POST['name'];
$telephone=$_POST['telephone'];
$email=$_POST['email'];
$adresse=$_POST['adresse'];
$etage=$_POST['etage'];
$ascenceur=$_POST['ascenceur'];
$message=$_POST['message'];
// Envoi du mail normal
//-----------------------
$texte_message .="Bonjour, demande de ramassage remplie sur le site web de .\r\n";
$texte_message .="Notre demande :". $name."\r\n";
"Notre message :" . $message."\r\n";
$texte_message .="------------------------------------------\r\n";
$texte_message .="Notre adresse :" . $adresse."\r\n";
$texte_message .="Téléphone :" . $telephone."\r\n";
$texte_message .="etage :" . $etage."\r\n";
$texte_message .="------------------------------------------\r\n".
$texte_message .="Je vous remercie pour votre confiance et votre visite sur notre site.\r\n";
$texte_message .="A très bientôt.\r\n";
$ok_mail = mail("in@merci.es","Demande venant du site web ","$texte_message");
// Envoi du mail client
//-----------------------
$texte .="Bonjour" . "\r\n";
$texte .="Nous avons bien enregistré votre demande.\r\n";
$texte .="Celle-ci va être réceptionnée.\r\n";
$texte .="\r\n";
$texte .="Je vous remercie .\r\n";
$texte .="A très bientôt sur notre site.\r\n";
$texte .="\r\n";
$texte .="Nhésitez pas à nous contactez directement :\r\n";
$texte .="\r\n";
$texte .="Contacts : in@merci.es \r\n";
$mail_ok = mail("$adresse","Votre demande ",$texte);
if ($ok_mail) {
echo "mail parti";
} else {
echo "mail, pas parti";
}
if ($mail_ok) {
echo "mail client parti";
} else {
echo "mail client pas parti";
}
?>
Merci d'avance pour votre aide.
Désolé pour le manque de precision, sur ohv, il n'ecrit l'ecran reste vide, ni message enovyé rien, mais en local j'utilise wamp, il affiche ca
( ! ) Notice: Undefined index: name in C:\wamp\www\Formulaire\formulairemail.php on line 5
Call Stack
Time Memory Function Location1 0.0130 152840 {main}( ) ..\formulairemail.php:0
( ! ) Notice: Undefined index: telephone in C:\wamp\www\Formulaire\formulairemail.php on line 6
Call Stack
1 0.0130 152840 {main}( ) ..\formulairemail.php:0
( ! ) Notice: Undefined index: email in C:\wamp\www\Formulaire\formulairemail.php on line 7
Call Stack
1 0.0130 152840 {main}( ) ..\formulairemail.php:0
( ! ) Notice: Undefined index: adresse in C:\wamp\www\Formulaire\formulairemail.php on line 8
Call Stack
1 0.0130 152840 {main}( ) ..\formulairemail.php:0
( ! ) Notice: Undefined index: etage in C:\wamp\www\Formulaire\formulairemail.php on line 9
Call Stack
1 0.0130 152840 {main}( ) ..\formulairemail.php:0
( ! ) Notice: Undefined index: ascenceur in C:\wamp\www\Formulaire\formulairemail.php on line 11
Call Stack
1 0.0130 152840 {main}( ) ..\formulairemail.php:0
( ! ) Notice: Undefined index: message in C:\wamp\www\Formulaire\formulairemail.php on line 12
Call Stack
1 0.0130 152840 {main}( ) ..\formulairemail.php:0
( ! ) Notice: Undefined variable: texte_message in C:\wamp\www\Formulaire\formulairemail.php on line 19
Call Stack
1 0.0130 152840 {main}( ) ..\formulairemail.php:0
( ! ) Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\Formulaire\formulairemail.php on line 34
Call Stack
1 0.0130 152840 {main}( ) ..\formulairemail.php:0
2 0.0170 155056 mail ( ) ..\formulairemail.php:34
( ! ) Notice: Undefined variable: texte in C:\wamp\www\Formulaire\formulairemail.php on line 41
Call Stack
1 0.0130 152840 {main}( ) ..\formulairemail.php:0
( ! ) Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\Formulaire\formulairemail.php on line 52
Call Stack
1 0.0130 152840 {main}( ) ..\formulairemail.php:0
2 1.0631 154952 mail ( ) ..\formulairemail.php:52
mail, pas partimail client pas parti
désole pour la longueur du message§
Je ne recois rien à partir du serveur. Aussi l'ensemble du site est fait en html et un jsscript.
Merci
Regarde les erreurs, toutes tes variables n'éxiste pas. Quand tu as un problème avec php il suffit de regarder les erreurs et les corriger une par une. Il est très clair que tu as fais un copier coller d'un formulaire sur internet. De plus en local il te faut un serveur SMTP pour pouvoir envoyer des emails. Le seul conseil que je peux te donner c'est apprend à développer avec php.
Bonjour
Déjà le message indique que ces variables
$email=$_POST['email'];
$adresse=$_POST['adresse'];
$etage=$_POST['etage'];
$ascenceur=$_POST['ascenceur'];
$message=$_POST['message'];
ne sont pas définies soit qu'elle sont vide ce qui fait que tu ne doit pas récupérer correctement les variable en post.
Assures toi que les nom de tes champ (input) soit identique au nom des variable qui sont vide.
Ensuite
$texte_message .="Bonjour, demande de ramassage remplie sur le site web de .\r\n";
quand tu te sers de ".=" ça implique que tu remplie une variable au fur et à mesure. Or pour la remplir il faut d'abord la définir donc remplace cette ligne par
$texte_message ="Bonjour, demande de ramassage remplie sur le site web de .\r\n";
tu fais la même chose pour cette ligne la
$texte .="Bonjour" . "\r\n";
tu enlève le "." laisse juste "=" .
Corriges déjà tout ça et revien avec ton nouveau mesage d'erreur.
Tu n'en aura peut être pas mais je t'avoue que j'ai survolé tous les messages d'erreur donc je peux en avoir zappé.
Bon courage et bonne journée
Re bonsoir, il n'y a pas de changement toujours les memes erreurs. J'ai verifié les noms de variables ligne par ligne et tout est identique.
Merci d'avance
Bonsoir.
Question :
Si c'est le cas, il te faut faire une condition sur ce code, pour qu'il ne soit interprété que lorsqu'il intercepte des données postées via le formulaire.
Sinon, c'est sur que tu auras toujours ces erreurs, même si les index de $_POST correspondent entre le code PHP et le formulaire.
Salut Bintou Soumaoro. Stp, pour mieux regler ton problème, il faudra que tu nous montres le code du formulaire qui envoie les informations car apparemment c'est à ce niveau que se situe ton problème à mon avis.
Pour faire simple, supposons que tu aies deux pages formulaire.html et envoi-mail.php. Dans formulaire.html tu mets :
<form action="envoi-mail.php" method="POST"> //tes input avec l'attribut name ayant pour valeur le nom de la variable à poster.</form>
Puis tu sais quoi faire dans envoi-mail.php.... ;)
D'accord, voici le code html , pour repondre à la question de Lartak oui, quand je finis de remplir le form et je clique sur envoyer donc c'est l'erreur qui s'affiche sur la page traitement.php
<form method="post" action="formulairemail.php" name="FormMail" enctype="text/plain">
<label>Nom et Prénom:</label>
<input name="name" size="50" type="text" autofocus placeholder="Votre nom complet">
<label>Téléphone (mobile et/ou fixe):</label>
<input name="telephone" size="50" type="text" placeholder="Votre numéro téléphone">
<label>Email:</label>
<input name="email" size="50" type="email" placeholder="Votre email ">
<label> Adresse (N˚, Voie): </label>
<input name="adresse" type="text" size="50"> <br/>
Etage <input name="etage" size="2" type="text">
Ascenceur Oui <input name="ascenceur" value="OUI" type="radio"> Non <input name="ascenceur" value="NON" type="radio">
<label height="5">A vous la parole :</label>
<textarea name="message" placeholder="......"></textarea>
<br>
<br/>
<br />
<input name="envoi" type="submit" Value="Envoyez" "50">
<br />
</form>
tu dis traitement.php mais tu valide ton form sur formulairemail.php tu changes bien le bon fichier avec les modifs ?
C'etait bien evidement traitement mais suite a tes suggestions j'ai renommée les é fichier source pour voir si ca allait avoir une difference. J'ai renommée le dossier contenant, mais c toujours les meme erreurs
Verifie bien la valeur de l'attribut action du formulaire. C'est formulairemail.php au lieu de traitement.php
Oui c'est verifié toutes les lignes, si l'erreur s'affiche ce qu'il ya bien un accès sinon il allait mettre not found.
le soucis vient pas de ton hébergeur mais de ton code .
fais un var_dump($_post) voir cequ'il te sort en faisant un die() juste après.
tout en haut de ton fichier de traitement.
S'il ne te met rien c'est que tu n'ai pas sur le bon fichier.
J'ai une seule ligne maintenant = ( ! ) Parse error: syntax error, unexpected 'die' (T_EXIT) in C:\wamp\www\Formulaire\formulairemail.php on line 3
J'ai corrigé la ligne et une autre erreur - ( ! ) Parse error: syntax error, unexpected '$name' (T_VARIABLE) in C:\wamp\www\Formulaire\formulairemail.php on line 9 alors qu'il n'ya aucune erreur de nom
Comme ceci :
var_dump($_POST);
die();
Et montres nous ce qu'il te retourne le var_dump (dans la balise code si possible : </>).
L'erreur qui s'affiche est -
array (sise=0)
empty
Ce n'est pas une erreur, c'est le résultat/retour du var_dump.
S'il est vide, c'est que tu n'as aucune donnée postée.
Dans ton code de traitement, tu devrais faire une vérification au tout début pour vérifier si des données ont bien été postées, du genre :
if (empty($_POST)) {
die('Aucune donnée récupérée !');
}
Le die pendant les tests bien sûr.
C'est un peu bizarre car j'ai des données à l'interieur, j'ai rempli toutes les cases. Mais toujours le meme message
array (size=0)
empty
Salut Santo ... Nop c'est oas reglé... je galère je vais refaire le code, le simplié, je verrai ce que ca donnera
Coucou je reviens vers vous avec la version simple
Mon code html
<fieldset size="150" width="200px"> <legend> NOTRE FORMULAIRE</legend>
<form name="FormMail" action="formulairemail.php" method="POST" enctype="text/plain" >
<label> Nom Complet </label>
<input type="text" name="nom" size="30" autofocus placeholder="Nom svp">
<label> Téléphone </label>
<input type="text" name="telephone" size="30" autofocus placeholder="Téléphone svp">
<label> Email </label>
<input type="text" name="email" size="30" autofocus placeholder="votre email svp">
<label> Adresse </label>
<input type="text" name="adresse" size="30" autofocus placeholder="votre adresse svp">
<label> Etage </label>
<input type="text" name="etage" size="10" autofocus placeholder="">
Ascenceur Oui <input name="ascenceur" value="OUI" type="radio"> Non <input name="ascenceur" type="radio" value="NON"> <br/>
<textarea name="message" ></textarea>
<br/> <input name="envoie" type="submit" value="Envoyez">
</form>
</fieldset>
et le php la partie traitement
<?php
$nom=$_POST['nom'];
$telephone=$_POST['telephone'];
$adresse=$_POST['adresse'];
$email=$_POST['email'];
$etage=$_POST['etage'];
$ascenceur=$_POST['ascenceur'];
$message=$_POST['message'];
$headers = 'From: ' . "\r\n" .
'Reply-To: moi@moi.es' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
"Le voici :" . $message."\r\n";
$texte_message .="Notre adresse :" . $adresse."\r\n";
$texte_message .="Téléphone :" . $telephone."\r\n";
$texte_message .="etage :" . $etage."\r\n";
$texte_message .="A très bientôt.\r\n";
$ok_mail = mail("moi@moi.es","Demande venant du site ","$texte_message");
$mail_ok = $mail("$adresse","Votre demande ",$texte);
if ($ok_mail) {
echo "mail parti";
} else {
echo "mail, pas parti";
}
if ($mail_ok) {
echo "mail client parti";
} else {
echo "mail client pas parti";
}
?>
Dans le resultat du traitement j'ai l'erreur sur la ligne 3 à 9 et puis 18? Sachant aue j'ai remplie la zone correctement. Et quand je fais un simple teste echo rien ne s'affiche sur le form.
Merci d'avance pour votre aide
ca me donne cet erreur, je suppose que cela veut dire que c'est bon.
Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\Formulaire\formulairemail.php on line 38
Call Stack
# Time Memory Function Location
1 0.2050 150736 {main}( ) ..\formulairemail.php:0
2 0.3330 151920 mail ( ) ..\formulairemail.php:38
TROP TOP mon probleme est resolu .. , merci a vous tous., il ne reste plus qu'a resoudre le probleme de d'accent.