Formulaire ??

Fermé
arthur73 - 6 nov. 2009 à 19:36
 arthur73 - 8 nov. 2009 à 15:24
Bonjour,

J'ai créé un formulaire sur mon site. Le problème, lorsque je soumet le message ma boîte mail s'ouvre !!
J'aimerai que mon message parte directement chez le destinataire sans avoir à le retaper. Voilà mon script :

<form action="mailto:palbe@orange.fr" method="post">
Nom : <input type="text" name="Nom" size="20" maxlength="256"><br><br>
Prénom : <input type="text" name="prenom" size="20" maxlength="256"><br><br>
Téléphone : <input type="text" name="tel" size="20" maxlength="256"><br><br>
E-Mail : <input type="text" name="mail" size="20" maxlength="256"><br><br>
Votre message :<br><br><textarea name="message" cols="30" rows="10">

</textarea>
<input type="submit" value="envoyer">


</form>
Merci pour votre aide
arthur73

5 réponses

avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
6 nov. 2009 à 19:46
Tu dois utiliser un script PHP.
0
Un script php ???
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
6 nov. 2009 à 20:03
Oui.
Pour informations, on est obligé de passer par un serveur SMTP pour envoyer des emails.
Avec un script côté client comme le XHTML, il faut donc que le client aie un serveur SMTP → le client mail s'ouvre
Avec un script côté serveur comme le PHP, le serveur est souvent configurer pour utiliser un serveur SMTP mais ça dépends de l'hébergeur.

Renommes ta page en .php et voilà le script
<?php
if($_POST['submitForm'] == 'true') {
	$nom = trim($_POST['nom']);
	$prenom = trim($_POST['prenom']);
	$tel = trim($_POST['tel']);
	$mail = trim($_POST['mail']);
	$message = trim($_POST['message']);
	
	if(
		empty($nom) ||
		empty($prenom) ||
		empty($tel) ||
		empty($mail) ||
		empty($message)
	) {
		echo 'Vous devez remplir tous les champs !';
	} else {
		if(!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#i")) {
			echo 'Adresse email invalide !';
		} else {
			$to = 'palbe@orange.fr';
			$subject = 'Contact depuis le site';
			$message = '';
			foreach($_POST as $k => $v) {
				$message .= $k.' : '.$v."\n";
			}
			$headers = 	'From: webmaster@example.com'."\r\n".
    					'Reply-To: '.$mail."\r\n" .
    					'X-Mailer: PHP/'.phpversion();
			if(mail($to, $subject, $message, $headers)) {
				echo 'Mail envoyé !';
			} else {
				echo 'Erreur lors de l\'envoye du mail';
			}
		}
	}
} else {
?><form action="" method="post">
	<p>
		<label for="nom"Nom : </label>
		<input type="text" name="nom" id="nom" size="20" maxlength="256" />
	</p>
	<p>
		<label for="prenom">Prénom : </label>
		<input type="text" name="prenom" id="prenom" size="20" maxlength="256" />
	</p>
	<p>
		<label for="tel">Téléphone : </label>
		<input type="text" name="tel" id="tel" size="20" maxlength="256" />
	</p>
	<p>
		<label for="mail">E-Mail : </label>
		<input type="text" name="mail" id="mail" size="20" maxlength="256" />
	</p>
	<p>
		<label for="message">Votre message :</label><br/>
		<textarea name="message" id="message" cols="30" rows="10"></textarea>
	</p>
	<p>
		<input type="submit" value="envoyer" />
		<input type="hidden" name="submitForm" value="true" />
	</p>
</form><?php } ?>
0
Merci pour la réponse,

J'ai essayé ton script, 2 problèmes :

- Des lignes de script apparaissent sur le haut de la page.

- Dois je changer l'adresse suivante 'From: webmaster@example.com'

Merci pour ton aide

arthur73
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
6 nov. 2009 à 22:13
Ta page doit avoir l'extension ".php" et doit être sur un serveur.
Voilà mon script corrigé (la ligne "From") :
<?php
if($_POST['submitForm'] == 'true') {
	$nom = trim($_POST['nom']);
	$prenom = trim($_POST['prenom']);
	$tel = trim($_POST['tel']);
	$mail = trim($_POST['mail']);
	$message = trim($_POST['message']);
	
	if(
		empty($nom) ||
		empty($prenom) ||
		empty($tel) ||
		empty($mail) ||
		empty($message)
	) {
		echo 'Vous devez remplir tous les champs !';
	} else {
		if(!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#i")) {
			echo 'Adresse email invalide !';
		} else {
			$to = 'palbe@orange.fr';
			$subject = 'Contact depuis le site';
			$message = '';
			foreach($_POST as $k => $v) {
				$message .= $k.' : '.$v."\n";
			}
			$headers = 	'From: '.$mail."\r\n".
    					'Reply-To: '.$mail."\r\n" .
    					'X-Mailer: PHP/'.phpversion();
			if(mail($to, $subject, $message, $headers)) {
				echo 'Mail envoyé !';
			} else {
				echo 'Erreur lors de l\'envoye du mail';
			}
		}
	}
} else {
?><form action="" method="post">
	<p>
		<label for="nom"Nom : </label>
		<input type="text" name="nom" id="nom" size="20" maxlength="256" />
	</p>
	<p>
		<label for="prenom">Prénom : </label>
		<input type="text" name="prenom" id="prenom" size="20" maxlength="256" />
	</p>
	<p>
		<label for="tel">Téléphone : </label>
		<input type="text" name="tel" id="tel" size="20" maxlength="256" />
	</p>
	<p>
		<label for="mail">E-Mail : </label>
		<input type="text" name="mail" id="mail" size="20" maxlength="256" />
	</p>
	<p>
		<label for="message">Votre message :</label><br/>
		<textarea name="message" id="message" cols="30" rows="10"></textarea>
	</p>
	<p>
		<input type="submit" value="envoyer" />
		<input type="hidden" name="submitForm" value="true" />
	</p>
</form><?php } ?>
0
Bonjour,

J'ai toujours deux lignes de codes qui apparaissent sur ma page de formulaire !!

Les voici :

$v) { $message .= $k.' : '.$v."\n"; } $headers = 'From: '.$mail."\r\n". 'Reply-To: '.$mail."\r\n" . 'X-Mailer: PHP/'.phpversion(); if(mail($to, $subject, $message, $headers)) { echo 'Mail envoyé !'; } else { echo 'Erreur lors de l\'envoye du mail'; } } } } else { ?>

Merci pour ton aide

arthur73
0

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

Posez votre question
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
7 nov. 2009 à 14:00
Ce n'est pas possible. Vérifie que ta page aie bien l'extension ".php" au lieu de ".html".
Ensuite, tu dois lancer le script quand il est sur le serveur, pas en l'ouvrant avec un clic droit.
0
Bonjour,

J'ai bien une extension php, mais lorsque je copie ton script j'ai toujours deux lignes de codes qui apparaissent sur la page web.
0