FORMULAIRE

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,
Dans mon site j'ai crée un formulaire :


<form method="post" action="mailto:spamdv@hotmail.fr">
<div style="text-align: center;">
<input name="subject" value="Site-principal" type="hidden">
</div>
<table style="text-align: left; margin-left: auto; margin-right: auto;">
<tbody>
<tr>
<td style="text-align: left; font-family: Helvetica,Arial,sans-serif;">Nom :</td>
<td><input name="Nom" size="30" type="text"></td>
</tr>
<tr>
<td style="font-family: Helvetica,Arial,sans-serif;">Email:</td>
<td><input name="Mail" size="30" type="text"></td>
</tr>
<tr>
<td><span style="font-family: Helvetica,Arial,sans-serif;">Sujet :</span> </td>
<td>
<select name="subject" size="1">
<option value="----">Choisir dans la liste ci-dessous
</option>
<option value="PoPoint">Site allemand facile
</option>
<option value="Autre">Autre...
</option>
</select>
</td>
</tr>
<tr>
<td colspan="2"><br>
<span style="font-family: Helvetica,Arial,sans-serif;">
Message:</span><br>
<textarea cols="50" rows="6" name="Message"></textarea>
</td>
</tr>
</tbody>
</table>
<br>
<div style="text-align: center;"><a href="envoi.html"><input value="Envoyer" type="submit"></a>
</div>
</form>

Mon problème est que non seulement le code est un peu "bric a brac" mais à l'envoi, on ouvre une fenêtre outlook ! J'ai fait une recherche et j'ai compris qu'il fallait utiliser le PHP mais sinon j'ai rien compris. Je suis également allé sur
https://www.commentcamarche.net/contents/800-php-mail-et-fonctions-reseau
Si vous pouviez m'expliquer clairement le code à rajouter ou et comment.
Merci de votre aide !

6 réponses

lulu
 
salut,

il faut mettre dans action la page ou se situe ton script

exemple :

<form method="post" action="contact.php"> 


ensuite pour envoi du mail il faut utiliser la fonction mail()
0
Utilisateur anonyme
 
Je suis un peu mou du bulbe ^^ reprenons : j'ajoute <form method="post" action="contact.php"> a la place de
<form method="post" action="mailto:spamdv@hotmail.fr"> et apres comment on sait a quelle adresse mail l'envoyer ?

Et peux-tu être plus précis sur
"ensuite pour envoi du mail il faut utiliser la fonction mail()"
ça veut dire quoi ? ou faut t'il mettre ce code et faut il le modifier ?

en tous cas super merci pour ta réponse plutôt rapide !
0
lulu
 
oups !
c'est vrai j'ai été un peu vite
tien une petite video qui expliquera mieux que moi
https://www.grafikart.fr/tutoriels/formulaire-php-21
0
Utilisateur anonyme
 
j'ai regarder la video en 2 min mais elle m'a l'air bien expliqué. Je la regarderai attentivement demain. Merci beaucoup de tes réponses, je te donne des nouvelles demain et si quelque chose m'échappe encore je te demenderai
Merci
0
Utilisateur anonyme
 
Voila j'ai tout fait omme dans la video et la ils mettent :


Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE or '$' in /mnt/136/sda/1/f/kiloo120/test/contact.php on line 4
0
lulu
 
montre ton code tu as fais des erreur de syntax en le recopiant
0
Utilisateur anonyme
 
oki alors j'ai revu tout ça au calme ce matin, je me suis arreté la :
<?php

if(isset($_POST) && isset($_POST['nom']) && isset($_POST['email']) && isset ($_POST['message'])){
extract($_POST);
if(!empty($nom) && !empty($email) && !empty($message)){
echo $message;
;
}
?>
Jusqu'à la j'ai corrigé toutes mes fautes mais quand je lance sous fiefox pour tester mon code ils me mettent

Parse error: syntax error, unexpected $end in /mnt/136/sda/1/f/site/test/contact.php on line 9

J'ai pourtant bien recopié et ma ligne 9 est identique a celle de la video or dans la video, lorsqu'il corrige ses erreurs, le code fonctionne !
Quelle est l'erreur de cette ligne ?
Merci,

PS j'ai aussi eut un probleme avec la ligne 7, dans la video c'est une parenthese qui est affichée mais quand je met une parenthèse ils me disent que la parenthese n'est pas attendue ici mais c'est ';' qui est attendu ^^

Merci bcp !
0
lulu
 
en ligne 7 c'est une accolade qu'il faut mettre et pas une parenthèse :

<?php

if(isset($_POST) && isset($_POST['nom']) && isset($_POST['email']) && isset ($_POST['message'])){
extract($_POST);
	if(!empty($nom) && !empty($email) && !empty($message)){
	echo $message;
	}
}
?>  
0
Utilisateur anonyme
 
On avance, doucement mais surement...
La j'ai le code en entier

<?php

if(isset($_POST) && isset($_POST['nom']) && isset($_POST['email']) && isset ($_POST['message'])){
extract($_POST);
if(!empty($nom) && !empty($email) && !empty($message)){
$destinataire="spamdv@hotmail.fr";
$sujet="Formulare de contact";
$msg="Une question est arrivée \n
Nom : $nom \n
Email : $email \n
Message : $message";
$entete="From: $nom \n Reply-To: $email";
mail($destinataire,$sujet,$msg,$entete)
}
else{
echo "Vous n'avez pas rempli tous les champs";
}
}
?>


Le probleme c'est qu'ils mettent :


Parse error: syntax error, unexpected '}' in /mnt/136/sda/1/f/kiloo120/test/contact.php on line 14

Pourquoi ? dans la video, il en met pourtant ?
Peux-tu me donner ton code sinon et je le copie colle, la je désespere ^^
Merci
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
il te manque le ; a la fin de cette ligne

mail($destinataire,$sujet,$msg,$entete)

il faut parfois regarder la ligne au dessus de celle indiquée, comme tu n'as pas mis de ; php considère les deux lignes (la 13 et la 14) comme une seule (la 14)
0
Utilisateur anonyme
 
Alors la j'écris mon message et quand je click sur envoyer, j'ai une page blanche. je me suis alors dit : c'est normal y'a pas de
echo="votre message a bien été envoyé !"

Le problème c'est où le placer ?
Sinon je ne comprend pas : j'ai beau avoir mis la bonne adresse le mail n'arrive pas ! ça fait maintenant 3 minutes que j'attends sans aucun mail ! l'adresse est pourtant bonne !

C'est bien ligne 6 qu'il faut mettre
$destinataire="monadresse@hotmail.fr";
Si oui l'adresse est bonne ! pourquoi le message n'arrive t'il pas ?
Merci !
0
Utilisateur anonyme
 
Ah ! un autre probleme : quand je laisse des champs vides, aucun message ne s'affiche, j'ai pourtant bien mis le echo="blablabla" que je laisse des champs vides ou pas, page blanche et aucuns messages !
Pourquoi ?
Merci !
0
Utilisateur anonyme
 
Bon j'ai travaillé sur ce formulaire toute la soirée et voila ou j'en suis :

j'ai pêché un code que j'ai modifié... le voila :

<?php

if(isset($_POST) && isset($_POST['nom']) && isset($_POST['email']) && isset($_POST['message'])){
$nom = htmlspecialchars($_POST['nom']);
$message = htmlspecialchars(trim($_POST['message']));
$email = htmlspecialchars($_POST['email']);
#Verification de la validité de l'email#
if(preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email)) //si l'email est valide
{



if(!empty($nom) && !empty($email) && !empty($message)){
$message=str_replace("\'","'",$message);
$destinataire="spamdv@hotmail.fr";
$sujet="Formulaire de contact";
$message="Une nouvelle question est arrivée \n
Nom : $nom \n
Email : $email \n
Message: $message";
$entete="From: $nom \n Reply-To: $email";
mail(utf8_decode($destinataire),utf8_decode($sujet),utf8_decode($message),utf8_decode($entete));
$a= "<p>Le mail a bien été envoyé.</p>";
}
else{
$erreur .= "<p>Veuillez remplir tous les champs.</p>";
}

}
else{
$erreur .= "<p>Votre adresse email est invalide.</p>";
}

}
if(isset($a))

{

echo "<font color='green'>$a</font>";

}
if(isset($erreur))

{

echo "<font color='red'>$erreur</font>";

}
?>

<form action="<?php echo $_SERVER['PHP_SELF'];?>"method="post">
<table><tr><td><label for="nom">Nom:</label></td><td><input type="text" name="nom" id="nom"/></td></tr><tr><td><label for="email">Email:</label></td><td><input type="text" name="email" id="email" /></td></tr><tr><td><label for="message">Message :</label></td><td><textarea name="message" cols="30" rows="15" id="message" ></textarea></td></tr><tr><td></td><td><input type="submit" value="Envoyer" /></td></tr></table>


Quand j'insere ça dans une page vide, le formulaire marche à 1000% avec l'email qui arrive bien et tout !
Maintenant quand je met ce code dans une page contenant d'autres choses (banniere et menu) la le formulaire n'envoi plus rien, le PHP est inopérationel ! pourquoi ce code marche tout seul et pas en compagnie d'autres choses ?
0
lulu
 
ta oublie de fermer ta balise </form>.

sinon mais un htmlentities devant $_SERVER['PHP_SELF'] ou met directement le lien de ta page
0
Utilisateur anonyme
 
Lors d'un instant ça a marché mais apres j'ai modifié une police et paf !
Expliquez moi une derniere fois ce qui cloche dans ce code : (Bon il est brouillon mais...)

<?php if(isset($_POST) && isset($_POST['nom']) && isset($_POST['email']) && isset($_POST['message'])){ $nom = htmlspecialchars($_POST['nom']); $message = htmlspecialchars(trim($_POST['message'])); $email = htmlspecialchars($_POST['email']); #Verification de la validité de l'email# if(preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email)) //si l'email est valide { if(!empty($nom) && !empty($email) && !empty($message)){ $message=str_replace("\'","'",$message); $destinataire="spamdv@hotmail.fr"; $sujet="Formulaire de contact"; $message="Une nouvelle question est arrivée \n Nom : $nom \n Email : $email \n Message: $message"; $entete="From: $nom \n Reply-To: $email"; mail(utf8_decode($destinataire),utf8_decode($sujet),utf8_decode($message),utf8_decode($entete)); $a= "<p>Le mail a bien été envoyé.</p>"; } else{ $erreur .= "<p>Veuillez remplir tous les champs.</p>"; } } else{ $erreur .= "<p>Votre adresse email est invalide.</p>"; } } if(isset($a)) { echo "<font color='green'>$a</font>"; } if(isset($erreur)) { echo "<font color='red'>$erreur</font>"; } ?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<table>
<tbody>
<tr>
<td><label for="nom">Nom:</label></td>
<td><input name="nom" id="nom" type="text"></td>
</tr>
<tr>
<td><label for="email">Email:</label></td>
<td><input name="email" id="email" type="text"></td>
</tr>
<tr>
<td><label for="message">Message :</label></td>
<td><textarea name="message" cols="30" rows="15" id="message"></textarea></td>
</tr>
<tr>
<td></td>
<td><input value="Envoyer" type="submit"></td>
</tr>
</tbody>
</table>
</form>



Merci ! Je commençais a désespérer mais vous êtes la !
Merci du temps et de l'attention que vous m'avez accordé !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lulu
 
tu peux mettre ton formulaire de contact ?
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
pour avoir un état de l'envoi du mail il faut faire:

........
$env_mail=mail($destinataire,$sujet,$msg,$entete) ;

if($env_mail){
   echo 'mail envoyé !';
}else{
   echo 'pb envoi mail !!';
}

.......
0