Verification Formulaire mail HTML comment faire ?

Bonjour,

Je vous écrit pour vous demander de l’aide. Je souhaiterais faire un script PHP de vérification pour ma fonction mail. Etant un debutant de chez debutant, j’ai commencé à chercher sur le net pour progresser, je suis arrivé à un résultat qui est presque le bon, mais je comprend pas comment arriver à la bonne solution.

Donc voila le script :

<?php // Plusieurs destinataires $to = 'µµµµµµµµµ'; // Expéditeur // Sujet $subject = $title; // message $message .= $comments . "\r\n" . $realname . "\r\n" . $telephone . "\r\n"; // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini // $headers = 'MIME-Version: 1.0' . "\r\n"; // $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= 'From : ' . $email; // Verification des cases vides if($realname != "" AND $email != "" AND $subject != "" AND $comments != "") { // Envoi mail($to, $subject, $message, $headers); Header("Location: [url=http://www.........fr/Remerciement.html");]www.........fr...[/url] } elseif($realname == "") { echo (""); //echo "Veuillez entrer votre nom"; } elseif($email == "") { echo "Veuillez entrer votre adresse E-Mail"; } elseif($subject == "") { echo "Veuillez entrer un sujet"; } elseif($comments == "") { echo "Veuillez écrire un commentaire"; } ?>

Donc voilà, quand je test ce script et que je rempli pas la case NOM, il me charge une page blanche PUIS m’ouvre un fenetre avec écrit ce qu’il y a sur la script. Moi je souhaiterais qu’il reste sur la même page et qu’il ouvre la fenetre. Mais je comprend pas pourquoi il charge une page blanche!

Pouvez vous m’aider ? Alors je demande juste un truc, je souhaiterais avoir de l’aide, et comprendre mon erreur, donc je veux pas de réponse toute prête ou alors elle seront suivi de commentaire pour ma propre culture. Merci d’avance.

MERCI A TOUS d’avoir lu mon probleme.

Cordialement,

Fabrice.
Edité le 25/09/2007 à 10:19

En l’occurrence, ton code ne fait qu’envoyer/vérifier le mail. L’erreur ou le problème se situe dans la page du formulaire.

SInon, peux tu changer le titre de ton sujet pour quelque chose de plus précis/explicite (genre ton problème, et pas simplement “aide en programmation”), merci :slight_smile:

Ok je vous met donc mon formulaire ^^ (je viens de changer le sujet)

 
Nom :
E-Mail :
N° de Téléphone :
Sujet :
Commentaires :

-
 

VOila la partie qui correspond au formulaire. Je vois pas le soucis :s. HELP ME PLEASE.

Merci SANS NOM ^^

Cordialement,

Fabrice

Bien. Tu n’es peut-être pas assez clair dans tes termes, mais essayes en commentant la ligne header('Location: …) ça t’évitera de rediriger vers une autre page, si c’est que tu entends par “ouvrir une fenêtre”. Dans ton code, je ne vois absolument rien (pas de target="_blank", ni de window.open()) qui fasse que ça ouvre une nouvelle fenêtre, j’en déduis cela.

Pour le sujet, non. Ce n’est pas un sujet explicite, ni précis. N’appelle pas un chat un chat, donne sa couleur en plus. ie: tu dis que tu as un problème, mais si tout le monde dit “Au secours, j’ai un problème” (je paraphrase), alors il n’y aurait que ça sur le forum et personne ne chercherait à répondre, car on ne passe pas notre vie à corriger des problèmes, ça demande de l’investissement personnel que la personne en face se doit aussi d’avoir dans la recherche d’un sujet clair, net et concis.

Ex (dans ton cas) : Vérification d’email en php, comment faire?

C’est certes dur dans certains cas, mais ça ne mange pas de pain. (et encore une fois, je le rappelle ce n’est que mon boulot de modérateur de veiller à la clarté du forum ;))

Ok Désolé… je pensais que j’étais clair… Désolé.

Pour mon problème j’y ai pensé cette nuit, et quand tu m’as dit " ton code ne fait qu’envoyer/vérifier le mail", et j’ai compris mon erreur, j’ai mal réfléchi…

Donc pour faire un sujet clair… Une personne qui navigue sur mon site, va sur la page Contact, et dois remplir un formulaire. Et si il ne rempli pas tous les champs, alors je voulais afficher un petit fenetre d’alert (fonction Alert() en Javascript mais je connai mal le javascript). Et sur cette fenetre il y aurait d’ecrit “Veuillez entrer votre nom” ou “Veuillez entrer votre E-Mail” ou autre.

Voila j’espère avoir était clair. Moi je continu de chercher de mon coté, je repasserai dans la jounée…

Merci beaucoup.

Cordialement,

Fabrice.

Dans ce cas, faut faire ta validation avant l’envoi du formulaire.

Ex:

code html: <form … onsubmit=“return validate(this);”>…

fonction javascript:
function validate(e) {
if (e.elements[‘sujet’] == ‘’) {alert(‘Entrez un sujet’); return false;}
return true;
}

Merci Sans Nom,

J’ai décider de faire une fonction Javascript pour verifier que toutes les cases soient bien remplies.

Code :




Nom :
E-Mail :
N° de Téléphone :
Sujet :
Commentaires :

-
... ... Voila la page Contact.php

maintenant le code mail3.php :

<?php // Plusieurs destinataires $to = 'n**********@hotmail.fr'; // Expéditeur // Sujet $subject = $title; // message $message .= $comments . "\r\n" . $realname . "\r\n" . $telephone . "\r\n"; // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini // $headers = 'MIME-Version: 1.0' . "\r\n"; // $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= 'From : ' . $email; //Envoi du mail mail($to, $subject, $message, $headers); Header("Location: [url=http://$$$$$$$$$$$$$$$$$$$$$$$$$$$.html");]$$$$$$$$$$$$$$$$$$$$$$$$$$$.html");...[/url] ?>

Voila tous le code qui nous interresse…

Verification OK. Mais impossible d’envoyer le mail. J’utilise la console d’erreur de Firefox, et j’avais formulaire.submit() qui me renvoyait formulaire.submit() is not a function. Donc j’ai mis document.formulaire.submit() et là ça me renvoie “HAD NO PROPERTIES”.

Qu’est ce que cela veut dire ?

Merci d’avance.

Cordialement,
Fabrice.

Reprend mon code, quite à renvoyer return true tout le temps.

Sinon “formulaire.submit() is not a function” veut dire que formulaire n’est pas de méthode submit(), simplement.

Ce qui est logique, c’est documents.forms[‘formulaire’].submit() ou document.forms.formulaire.submit() si tu veux.
Edité le 25/09/2007 à 15:25

Haaaaaa ok merci… Perso ton code je le comprend pas, c’est pour cela que je vais tester Document.forms.formulaire.submit()… Car j’aime pas utilisé un code que je connais pas et que je comprend pas! Donc si mon test ne marche pas, je m’instruirais un peu sur tes fonctions ^^

Vela !

Merci beaucoup de ton aide!

Cordialement.

Fabrice

Bonjour Sansnom,

J’ai une petite question, j’ai tester document.forms.formulaire.submit() mais ça ne marche pas… donc je vais utiliser ton code, pourrais tu me l’expliquer rapidement que je comprend a comment fonctionne validate this et autres ?

Merci d’avance.

Cordialement,

Fabrice.

this = objet sur lequel porte l’événement. Donc dans onsubmit=“return foo(this);”, ça veut dire que tu passe à la fonction foo l’objet courant, ie: le formulaire.

Le return foo(this) est nécessaire pour arrêter l’événement si jamais tes champs ne sont pas remplis : si tu renvoies true, alors le formulaire sera envoyé. Si tu renvoies false, rien ne sera fait.

d’accord… bon je te met mes codes car il ne marchent pas et je comprend pas pk je dois avec chier un truc mais quoi ? ?)

BOn le formulaire :

Nom :
E-Mail :
N° de Téléphone :
Sujet :
Commentaires :

-

et le script :

Voila je t mis les deux script que j’ai fais, les deux ne marche pas… Le premier me fait un erreur IS NO PROPERTIES et le second m’envoie toujours le mail XD c’est pas mal mais bon autant pas le mettre ^^

Voila!

Grand merci à toi SANS NOM… t un chef.

Cordialement,

Fabrice

OUlala je viens de voir une erreur dans mon code ^^

bon alors voila je mettrais ça en code :
function validate_form(thisform)
{
if(thisform.elements[‘realname’] == ‘’)
{
alert(‘Veuillez entrer un nom’);
return false;
else if(thisform.elements[‘email’] == ‘’)
{
alert(‘Veuillez entrer votre E-mail’);
return false;
else if(thisform.elements[‘title’] == ‘’)
{
alert(‘Veuillez entrer un sujet’);
return false;
else if(thisform.elements[‘comments’] == ‘’)
{
alert(‘Veuillez entrer votre commentaire’);
return false;
else
return true;
}
}

           }

}

Voila quelqu’un valide mon code ? ^^
Je suis pas programmeur moi, donc je suis un peu perdu… je n’ai que les bases ^^

Merci d’avance,

Fabrice

Personne pour m’aider ? :’( Pourtant rien marche HELP PLEASE!!

Plutôt ça :

function validate_form(form) {
  var r = true;
  if(form.elements['realname'] == '') {
    alert('Veuillez entrer un nom');
    r = false;
  }
  if(form.elements['email'] == '') {
    alert('Veuillez entrer votre E-mail');
    r = false;
  }
  if (form.elements['title'] == '') {
    alert('Veuillez entrer un sujet');
    r = false;
  }
  if (form.elements['comments'] == '') {
    alert('Veuillez entrer votre commentaire');
    r = false;
  }
  return r;
}

Ici, ça affichera plusieurs alertes si l’utilisateur a oublié plusieurs champs.

Merci sans nom, j’ai trouver une solution qui fonctionne parfaitement, donc plus de probleme de verification… mais j’ai un autre probleme… Je sais pas utiliser les REGEXP pour le java, j’ai creer une expression reguliere pour verifier les téléphones mais sa marche pas :

(document.formulaire.telephone.value == “#^0[1-68][0-9]{8}$#”)

This ne marche pas! Donc je suppose qu’il faut lancer la fonction regexp ou un truc du genre, mais je trouve pas d’explication sur google…

HELP ME please!

Fabrice.

PS : Une choix que mon code fonctionnera niquel, je le posterai dans ce sujet pour qu’il puisse servir a autrui, car c’est vraiment cool de programmer un peu (enfin programme… xD)

C 'est bon j’ai trouvé la solution, je fais vérifier ça par un quelqu’un et je le met en ligne :wink:

MERCI A TOUT LE MONDE, surtout SANS NOM :wink:

Cordialement,

Fabrice

bon voila mon code :

Sur la page Formulaire.HTML :

Script :

Form :

Nom :
E-Mail :
N° de Téléphone :
(ex : "0123456789")
Sujet :
Commentaires :

-

Et enfin la fonction mail2.php :

<?php // Plusieurs destinataires $to = VOTRE E MAIL'; // notez la virgule // Expéditeur // Sujet $subject = $title; // message $message .= $comments . "\r\n" . $realname . "\r\n" . $telephone . "\r\n"; // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini // $headers = 'MIME-Version: 1.0' . "\r\n"; // $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= 'From : ' . $email; // Envoi mail($to, $subject, $message, $headers); Header("Location: VOTRE ADRESSE DE REDIRECTION (Avec [url=HTTP://www.truc.com/redirection.html");]www.truc.com...[/url] ?>

Voila j’espere que cela servira, et si quelqu’un passe par ici et voit une erreur n’hésitez pas à la noté :wink:

Cordialement,

Fabrice.

Slt à tous,
j’ai recopier le code et changer ce qu’il y avait a changer (adresse mail, …) et mon naviguateur reste sur “mail2.php” et affiche une page blanche, il ne fait pas la redirection et il n’envoi pas non plus le message. peut-tu m’aider STP.
Edité le 12/10/2007 à 21:03