Formulaires dans dreamweaver

Fermé
dhannecart Messages postés 3 Date d'inscription lundi 21 février 2011 Statut Membre Dernière intervention 21 février 2011 - 21 févr. 2011 à 13:10
 __construct() - 21 févr. 2011 à 21:55
Bonjour,

J'ai un petit problème, je crée un site web, avec un petit formulaire, mais je ne les reçois lorsque le visiteur l'envoie.

J'ai fait le tour des forums pour vérifier les codes, mais je ne trouve pas mon erreur...

Quelqu'un pourrait m'aider ??

Merci d'avance.

Voici mon code :

<?php if ($_POST['message'] == "") { ?>
<form name="envoiemail" id="envoiemail" method="post" action="">
<p>Votre nom :<br />
<input name="nom" type="text" id="nom" />
</p>
<p>Votre ville :<br />
<input name="sujet" type="text" id="sujet" />
</p>
<p>Votre e-mail :<br />
<input name="email" type="text" id="email" />
</p>
<p>Message :<br />
<textarea name="message"></textarea>
</p>
<p>
<input name="Submit" type="submit" onclick=
"MM_validateForm('nom','','R','sujet','','R','email','','NisEmail');MM_validateForm('email','','NisEmail');MM_validateForm('nom','','R','sujet','','R','email','','R','message','','R');MM_popupMsg('Merci !');return document.MM_returnValue" value="Envoyer" />
</p>
</form>
<?php } else {
mail("info@monmail.com", $_POST['sujet'], $_POST['message'],"From: ".$_POST['nom']."<".$_POST['email'].">

<p></p>
<?php } ?>


5 réponses

__construct()
21 févr. 2011 à 19:45
Bonsoir,
Tu devrais également exécuter les vérifications PHP des données provenant du formulaire côté serveur et pas uniquement côté client (javascript).
<?php
if($_POST['message'] == "") { ?>
<form name="envoiemail" id="envoiemail" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
	<p>Votre nom :<br />
		<input type="text" id="nom" name="nom" value="" />
	</p>
	<p>Votre ville :<br />
		<input type="text" id="sujet" name="sujet" value="" />
	</p>
	<p>Votre e-mail :<br />
		<input type="text" id="email" name="email" value="" />
	</p>
	<p>Message :<br />
		<textarea id="message" name="message"></textarea>
	</p>
	<p>
		<input type="submit" name="Submit" value="Envoyer" onclick="MM_validateForm('nom','','R','sujet','','R','email','','NisEmail');MM_validateForm('email','','NisEmail');MM_validateForm('nom','','R','sujet','','R','email','','R','message','','R');MM_popupMsg('Merci !');return document.MM_returnValue" />
	</p> 
</form> 
<?php } else { 
mail("info@monmail.com", $_POST['sujet'], $_POST['message'], "From: ".$_POST['nom']."<".$_POST['email'].">");
<?php } ?>
0
dhannecart Messages postés 3 Date d'inscription lundi 21 février 2011 Statut Membre Dernière intervention 21 février 2011
21 févr. 2011 à 20:08
Bonsoir !

Merci pour ta réponse, mais en utilisant ton code, je ne reçois toujours pas les formulaires, et maintenant après la fenêtre "Merci", le visiteur va sur une page introuvable ...

En fait mon formulaire reprend aussi ces codes (j'y connais rien au PHP, seulement un peu d'Html...):

Plus haut sur ma page, j'avais inséré ce code:

<script type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
} if (errors) alert('The following error(s) occurred:\n'+errors);
document.MM_returnValue = (errors == '');
}

function MM_popupMsg(msg) { //v1.0
alert(msg);
}
//-->
</script>

****************

Et puis j'ai ton code :

<?php
if($_POST['message'] == "") { ?>
<form name="envoiemail" id="envoiemail" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
<p>Votre nom :<br />
<input type="text" id="nom" name="nom" value="" />
</p>
<p>Votre ville :<br />
<input type="text" id="sujet" name="sujet" value="" />
</p>
<p>Votre e-mail :<br />
<input type="text" id="email" name="email" value="" />
</p>
<p>Message :<br />
<textarea id="message" name="message"></textarea>
</p>
<p>
<input type="submit" name="Submit" value="Envoyer" onclick="MM_validateForm('nom','','R','sujet','','R','email','','NisEmail');MM_validateForm('email','','NisEmail');MM_validateForm('nom','','R','sujet','','R','email','','R','message','','R');MM_popupMsg('Merci !');return document.MM_returnValue" />
</p>
</form>
<?php } else {
mail("info@monmail.com", $_POST['sujet'], $_POST['message'], "From: ".$_POST['nom']."<".$_POST['email'].">
<?php } ?>

Il n'y a pas une méthode plus simple ? Ou alors l'erreur est toute petite ???

Merci pour ton temps !
0
J'avais mis un point-virgule à cette ligne, tu l'as supprimé?
mail("info@monmail.com", $_POST['sujet'], $_POST['message'], "From: ".$_POST['nom']."<".$_POST['email']."> 

Le code javascript ne m'intéresses pas, il n'empêche pas le mail d'être envoyé...
0
dhannecart Messages postés 3 Date d'inscription lundi 21 février 2011 Statut Membre Dernière intervention 21 février 2011
21 févr. 2011 à 21:41
Oups... je l'ai remis.

Mais sur ma page web, sous le bouton envoyer, j'ai ça qui apparait : ");
C'est pas très esthétique ...

Je ne reçois toujours pas le formulaire par email, et je quitte le site après avoir appuyer sur "envoyer".

merci d'avance pour ton aide!
0

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

Posez votre question
__construct()
21 févr. 2011 à 21:55
ça c'est normal, il y a une erreur de syntaxe!
mail("info@monmail.com", $_POST['sujet'], $_POST['message'], "From: ".$_POST['nom']."<".$_POST['email'].">");
0