Formulaire d'envoi email

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Formulaire d'envoi email

par Aureusms » 31 mai 2007, 23:02

Ce n'est pas :
<form method="post" action="<? $_GET['PHP_SELF'] ?>">


mais
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

par Alteus » 31 mai 2007, 17:03

Merci pour vos reponses. En effet, comme je suis super débutant en PHP je ne maitrise pas trop les méthodes POST et GET :p

J'ai tout de meme reussi à créer mon formulaire ;)

Re: Formulaire d'envoi email

par Xenon_54 » 29 mai 2007, 06:32

 
# // Sujet du mail
$mailheaders = "From: $fromemail\n";
mail($recipient, $subject, $mail, $mailheaders);
Je t'invite à réviser ton code. Un spammeur pourrait "hijacker" ton formulaire et ajouter des entêtes ou complètement refaire ton email.

Vérifie que $fromemail ne contient pas de retour de ligne.

Je t'invite à lire cet article:
http://www.securephpwiki.com/index.php/Email_Injection

par jpaul » 29 mai 2007, 06:10

Bonjour,

La première chose qui me surprend dans ton code, c'est que d'après la ligne que tu as ajoutée entre les deux bloc de code php, tes formulaires sont envoyés avec la méthode post : form method="post" hors tu testes tes variables avec $_GET[...]

Il y a des chances pour que si tu remplace tes $_GET[...] par des $_POST[...] tu aies plus de succès.

Bonne continuation.[/b]

Formulaire d'envoi email

par Alteus » 28 mai 2007, 15:24

Bonjour,

Voila, j'ai une page de formulaire inclue dans la 1ere page de mon site.
Sur ce formulaire figure 4 zones (Nom, Email, Sujet et message) qui sont des champs obligatoires.
Je souhaiterais faire un controle du remplissage des ces champs et selon le cas :

- tout est OK alors j'envois l'email et je met un message au dessus du formulaire du type : "Email envoyé"
- un ou plusieurs champs ne sont pas remplis alors j'affiche un meesage au dessus de mon formulaire pour indiquer a l'utilisateur qu'il doit remplir tel ou tel champ.

Etant débutant en php, je n'arrive pas à tester puis afficher un le message.

A titre indicatif voici mon code :
 
if (!empty($_GET['envoyer'])){
		$ERRMSG="ok";
		if (empty($_get['from']))
		{
			$ERRMSG="pasok";
		}
		elseif (empty($_get['fromemail']))
		{
			$ERRMSG="pasok";
		}
		elseif (empty($_get['sujet']))
		{
			$ERRMSG="pasok";
		}
		elseif (empty($_get['pagetext']))
		{
			$ERRMSG="pasok";
		}

			if ($_GET['ERRMSG'] === 'ok')
			{

					$mail = $mail."Email depuis Site CV\n\n\nStatue : ";
					$mail = $mail."\nNom : " . $from;
					$mail=$mail."\nEmail : " . $fromemail;
					$mail=$mail."\nSujet: " . $sujet;
					$mail=$mail."\nTexte : " . $pagetext;
					#
					# // Sujet du mail et adresse de déstination
					$recipient = "[email protected]";
					$subject = $sujet;
					#
					# // Sujet du mail
					$mailheaders = "From: $fromemail\n";
					mail($recipient, $subject, $mail, $mailheaders);
			
					$ERRMSG = '<p class="comment">Email envoyé.</p>';
			}
			elseif ($_GET['ERRMSG'] === 'pasok')
			{
				$ERRMSG = '<p class="comment">Veuillez entrer votre nom, votre e-mail, un sujet et le texte de votre message.</p>';
			}
			else //important le else, pour reperer si des gens essayent de tricher
			{
				$ERRMSG = '<p class="comment">Veuillez entrer votre nom, votre e-mail, un sujet et le texte de votre message.</p>';
			}
	}
	else
	{
		$ERRMSG = '<p class=comment1>Tous les champs sont obligatoires.</p>';
	} 
 ?>

<form method="post" action="<? $_GET['PHP_SELF'] ?>">
 
<?php
	echo $ERRMSG;
	?>

...

Quelqu'un peut il m'aider ?

Merci d'avance