| [Javascript & php] formulair d'e mail par nina_bee |
lundi 5 mars 2007 à 12:04:36 |
<script language="JavaScript" type="text/JavaScript">
<!--
var name = navigator.appName
var os=navigator.platform
//alert("plateforme de l'utilisateur : "+os);
if (name == "Microsoft Internet Explorer"){
url=('<link href="mediashow-ie.css" rel="stylesheet" type="text/css" />');
}else{
url=('<link href="mediashow.css" rel="stylesheet" type="text/css" />');
}
document.write(url);
function verif_formulaire()
{
if(document.formulaire.mail.value == "") {
alert("Veuillez saisir votre adresse e-mail");
document.formulaire.nom.focus();
return false;
}
if(document.formulaire.wwww.value == "") {
alert("Veuillez saisir l'adresse de votre site internet");
document.formulaire.lieu.focus();
return false;
}
if(document.formulaire.text.value == "") {
alert("Veuillez saisir votre message");
document.formulaire.text.focus();
return false;
}
if(document.formulaire.mail.value.indexOf('@') == -1) {
alert("veuillez saisir votre adresse mail au format monadresse@monadresse.fr");
document.formulaire.mail.focus();
return false;
}
if(document.formulaire.tel.value == "") {
alert("Veuillez saisir votre numéro de téléphone");
document.formulaire.tel.focus();
return false;
}
var chkZ = 1;
for(i=0;i<document.formulaire.tel.value.length;++i)
if(document.formulaire.age.value.charAt(i) < "0"
|| document.formulaire.age.value.charAt(i) > "9")
chkZ = -1;
if(chkZ == -1) {
alert("Veuillez saisir votre numéro de téléphone au format 01.55.49.22.10 ou 06.55.22.10");
document.formulaire.tel.focus();
return false;
}
}//fin de la fonction de verification du formulaire
//-->
</script>
</head>
//Formulaire:
<form action="mail.php" method="post" name="contact" target="_self" id="contactmediashow"
enctype="application/x-www-form-urlencoded" onsubmit="return verif_formulaire()" >
<input type="hidden" name="destinataire" value="nina_bee@hotmail.fr" id="destinataire"/>
<input type="hidden" name="objet" value="contact client" id="objet" />
<p>
<label for="mail" class="formText">Votre adresse e-mail professionnelle: </label><br>
<span class="champs">
<input name="mail" type="text" id="mail" size="40" onkeyup="javascript:couleur(this);" />
</span></p>
<p>
<label for="www" class="formText">Votre site web entreprise:</label><br>
<span class="champs">
<input name="www" type="text" id="www" size="40" onkeyup="javascript:couleur(this);" />
</span> </p>
<p>
<label for="text" class="formText">Votre message: </label><br>
<span class="champs">
<textarea name="text" cols="31" rows="15" id="text" onkeyup="javascript:couleur(this);"></textarea>
</span>
</p>
<p>
<label for="tel" class="formText">Votre numéro de téléphone : </label><br>
<span class="champs">
<input name="tel" type="text" id="tel" size="40" onkeyup="javascript:couleur(this);"/>
</span>
</p>
<p align="right" class="formText"><input type="submit" value="envoi" name="submit" onclick="return verif_formulaire()" /></p>
</form>
<p class="texteNormal"> <?php
$mail = mail($destinataire,$siteclient,$mailclient,$message,$tel);
if(isset($mail)){
echo "Message envoyé";
}
?></p>
<p align="center"><a href="contact.php" class="lien">retour à la page de contact</a> - <a href="index.php" class="lien">retour à la page d'acceuil</a></p>
Configuration: Windows XP Firefox 2.0.0.2
Bonjour,
Plusieurs choses à mon avis : - tout d'abord pour ma part je n'utilise pas le balise label, je ne la connais pas, mais j'utilise des <input type="text" name="nom_champ" ...> - votre formulaire n'a pas de nom, il faudrait rajouter dans la balise form la propriété suivante name="nom_formulaire". - ceci fait on accède en javascript aux différentes entrées de la manière suivante : document.nom_formulaire.nom_champ.value, notamment dans le cas d'un champs texte, les champs "boutons radio" étant un poil plus complexes. Dans la partie mail.php, les variables ne seront pas récupéré avec le code tel qu'il est. Il faut utiliser le tableau $_POST qui contient les variables passées en post. Par exemple pour l'entrée de formulaire <input type="text" name="mail">, le script doit récupérer le contenu grâce à la variable $_POST['mail']. Autrefois il était souvent possible de récupérer cette valeur en tapant directement $mail dans le code, mais pour des raisons de sécurité maintenant il faut le plus souvent passer par des tableau globaux ($_POST pour les variables passée en mode post, $_GET pour les variables passées en mode get c'est à dire dans l'url). Autrement je ne sais pas quel navigateur vous utilisez, mais Firefox dispose d'une "console javascript" très pratique pour le développeur car elle affiche les erreurs de javascript avec les lignes incriminées. Ben :)
|
alors j'ai bien pris note et de mon coté j'ai corrigé certaine choses (dont le problème de nom du formulaire).
A présent ça marche....ou presque: mon code vérifie seulement que le premier champ n'est pas vide.... Quant au php c'est un oubli de ma part je n'ai pas mis tout le code (faut dire que je m'y perd un peu dans toutes ces pages car ça fait un bout de temsp que je suis bloquée sur cette page de contact... désolée) alors voili mon code =p page contact.php
<script language="JavaScript" type="text/JavaScript">
<!--
var name = navigator.appName
var os=navigator.platform
//alert("plateforme de l'utilisateur : "+os);
if (name == "Microsoft Internet Explorer"){
url=('<link href="mediashow-ie.css" rel="stylesheet" type="text/css" />');
}else{
url=('<link href="mediashow.css" rel="stylesheet" type="text/css" />');
}
document.write(url);
function verif_formulaire()
{
if(document.contact.mail.value == "") {
alert("Veuillez saisir votre adresse e-mail");
document.contact.nom.focus();
return false;
}
if(document.contact.wwww.value == "") {
alert("Veuillez saisir l'adresse de votre site internet");
document.contact.lieu.focus();
return false;
}
if(document.contact.text.value == "") {
alert("Veuillez saisir votre message");
document.contact.text.focus();
return false;
}
if(document.contact.mail.value.indexOf('@') == -1) {
alert("veuillez saisir votre adresse mail au format monadresse@monadresse.fr");
document.contact.mail.focus();
return false;
}
if(document.contact.tel.value == "") {
alert("Veuillez saisir votre numéro de téléphone");
document.contact.tel.focus();
return false;
}
var chkZ = 1;
for(i=0;i<document.contact.tel.value.length;++i)
if(document.contact.age.value.charAt(i) < "0"
|| document.contact.age.value.charAt(i) > "9")
chkZ = -1;
if(chkZ == -1) {
alert("Veuillez saisir votre numéro de téléphone au format 01.55.49.22.10 ou 06.55.22.10");
document.contact.tel.focus();
return false;
}
}//fin de la fonction de verification du formulaire
//-->
</script>
//formulaire:
<p align="center">
<form action="mail.php" method="post" name="contact" id="contact" onsubmit="return verif_formulaire(contact)" >
<input type="hidden" name="destinataire" value="nina_bee@hotmail.fr" id="destinataire"/>
<input type="hidden" name="objet" value="contact client" id="objet" />
<p>
<label for="mail" class="formText">Votre adresse e-mail professionnelle: </label><br>
<span class="champs">
<input name="mail" type="text" id="mail" size="40" />
</span></p>
<p>
<label for="www" class="formText">Votre site web entreprise:</label><br>
<span class="champs">
<input name="www" type="text" id="www" size="40" />
</span> </p>
<p>
<label for="text" class="formText">Votre message: </label><br>
<span class="champs">
<textarea name="text" cols="31" rows="15" id="text" ></textarea>
</span>
</p>
<p>
<label for="tel" class="formText">Votre numéro de téléphone : </label><br>
<span class="champs">
<input name="tel" type="text" id="tel" size="40" />
</span>
</p>
<p align="right" class="formText"><input type="submit" value="envoi" name="submit" /></p>
</form>
</p>
mail.php
<?php
$destinataire = $_POST['destinataire'];
$objet = $_POST['objet'];
$mailclient = htmlentities("From: ".$_POST['mail']);
$siteclient = $_POST['www'];
$message = stripslashes(htmlentities($_POST['text']));
$tel = $_POST['tel'];
?>
<body>
...du code...
<p class="texteNormal"> <?php
$mail = mail($destinataire,$siteclient,$mailclient,$message,$tel);
if(isset($mail)){
echo $destinataire." ".$siteclient." ".$mailclient." ".$message." ".$tel."<br>";
echo "Message envoyé";
}
?></p>
<p align="center"><a href="contact.php" class="lien">retour à la page de contact</a> - <a href="index.php" class="lien">retour à la page d'acceuil</a></p>
</body>
deplus meme quand le premier champ est vide je suis redirrigée vers mail.php!!! Quand à l'email il n'arrive jammais dans ma boite Merci encore pour vos conseils, j'espere que vous saurez m'aider encore un peu
|
re!!
merci d'avoir mis le doigt dessus. Maintenant mes champs sont vérifiés et si il sont vide ou si ils ne sont pas au bon format, l'alert s'affiche. Par contre quand le champs mail ou le champs www sont vides, je suis quand meme redirigée vers mail.php. Je ne comprend pas pourquoi? |
Décidément :)
Bon, alors, je pense que le problème vient de là : <input name="mail" type="text" id="mail" size="40" /> Tu ne définis pas de "value". Le value sera défini par le navigateur quand l'utilisateur aura mis un texte. Je suis prêt à parier que si au lieu de valider tout de suite, tu rentres du texte, puis l'efface, ça marchera correctement ! Donc, avant ça, mail.value n'existe pas. Et ne vaut donc pas "". Essaie de définir ton champ comme cela : <input name="mail" type="text" id="mail" size="40" value="" /> Idem, bien sûr, pour tous tes champs texte. |
coucou!! merci pour ton aide.malheureusement ca ne marche pas.... Par contre ca m'a donné une idée: en mettant value=" ", le champ mail et le champ www ne sont pas remplis au bon format donc je recois eune alerte et cette fois je ne passe pas à la page suivante. Bon c'est carrément de la bidouille mais ca marche alors merci!!!!=p
par contre je reste bloquée par le php (argh si pres du but....) ********^_^*********** |
hep... n'aurais tu pas oublié le return true à fin de la validation ? Configuration: Windows XP Internet Explorer 6.0 |
sorry... j'avais pas tout lu.
Je comprends pas du tout ta syntaxe mail() !! et si tu mettais $mail = mail($destinataire,$objet,$message); su tu veux ajouter les autres infos, y faut les concaténer au message : $mail = mail($destinataire,$objet,$message.$siteclient.$mailclient.$tel); Configuration: Windows XP Internet Explorer 6.0 |
| 12/02 22h49 | [php] formulaire envoi mail | Webmastering | 24/04 11h10 | 4 |
| 16/01 13h02 | PHP: formulaire et mail | Webmastering | 16/01 13h41 | 2 |
| 20/06 21h27 | Php + formulaire et titre du mail | Programmation | 20/06 22h10 | 7 |
| 12/06 10h40 | [PHP/HTML] Traitement formulaire envoi mail | Webmastering | 12/06 14h41 | 6 |
![]() | easyPHP - EasyPHP est un environnement de travail packagé comprenant le serveur web Apache, le système de gestion de bases de données... | Catégorie: Serveurs Licence: Open Source |
![]() | PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de... | Catégorie: PHP Licence: Freeware/gratuit |
![]() | Email remover - il s'utilise avant votre lecteur de courrier et permet d'éffacer ,CHEZ VOTRE F.A.I. les messages que vous séléctionnerez... | Catégorie: Courrier électronique Licence: Freeware/gratuit |
![]() | HTML Tidy - HTML Tidy est un utilitaire permettant de vérifier et d'optimiser tout code HTML. La version originale de cet utilitaire... | Catégorie: Webmaster Licence: Freeware/gratuit |
![]() | Trust Ami Mouse 250S | Catégorie: Souris | Aucun avis Donnez votre opinion sur Trust Ami Mouse 250S Optical E-mail | |
![]() | JBL EON1500 | Catégorie: Enceintes | Aucun avis Donnez votre opinion sur JBL EON1500 | 266.00 € Thomann FR |
![]() | JBL ES80 Cherry | Catégorie: Enceintes | Aucun avis Donnez votre opinion sur JBL ES80 Cherry | 899.00 € Son-Vidéo |
![]() | JBL Northridge E20 Beech | Catégorie: Enceintes | Aucun avis Donnez votre opinion sur JBL Northridge E20 Beech | 199.00 € Son-Vidéo |