Ben en fait je suis une novice, je ne fais pas encore très bien la différence entre GET et POST.
J'ai pris le script, je l'ai adapté, et hop.
En fait, le formulaire est validé par un fichier pds-contact.js
Quand je mets des noms différents dans mon formulaire (cas de l'exemple sur
http://www.oscompta.com/test2/) et que je modifie tous les autres fichiers, le pds-contact.js devient ceci:
- Code: Tout sélectionner
function valider(formulaire){
/* on récupère toutes les variables javascript */
var societe=formulaire.societe.value
var nom=formulaire.nom.value
var prenom=formulaire.prenom.value
var telephone=formulaire.telephone.value
var mobile=formulaire.mobile.value
var email=formulaire.email.value
var check1=formulaire.check1.value
var check2=formulaire.check2.value
var check3=formulaire.check3.value
var message=formulaire.message.value
var anti_bot=formulaire.anti_bot.value
/* On indique ici les longueurs minimales et maximales des champs que l'on veut*/
var societe_min=2
var societe_max=200
var nom_min=3
var nom_max=100
var prenom_min=3
var prenom_max=200
var email_min=8
var email_max=150
var message_min=4
var message_max=3000
/* Vérification des champs */
if (societe==""){
afficher_erreur('societe','Merci de bien vouloir indiquer le nom de votre société')
}
else if (societe.length<societe_min){
afficher_erreur('societe','Le nom que vous avez indiqué est trop court')
}
else if (societe.length>societe_max){
afficher_erreur('societe','Le nom que vous avez indiqué est trop long')
}
else{
afficher_bon('societe')
if (nom==""){
afficher_erreur('nom','Merci de bien vouloir indiquer votre nom.')
}
else if (nom.length<nom_min){
afficher_erreur('nom','Le nom que vous avez indiqué est trop court')
}
else if (nom.length>nom_max){
afficher_erreur('nom','Le nom que vous avez indiqué est trop long')
}
else{
afficher_bon('nom')
if (prenom==""){
afficher_erreur('prenom','Merci de bien vouloir indiquer votre prénom.')
}
else if (prenom.length<prenom_min){
afficher_erreur('prenom','Le prénom que vous avez indiqué est trop court')
}
else if (prenom.length>prenom_max){
afficher_erreur('prenom','Le prénom que vous avez indiqué est trop long')
}
else{
afficher_bon('prenom')
if (email==""){
afficher_erreur('email','Vous devez entrer un email!')
}
else if (email.length<email_min){
afficher_erreur('email','L email que vous avez indiqué est trop court')
}
else if (email.length>email_max){
afficher_erreur('email','L email que vous avez indiqué est trop grand')
}
else{
afficher_bon('email')
if (message==""){
afficher_erreur('message','Vous devez indiquer un message!')
}
else if (message.length<message_min){
afficher_erreur('message','Le message que vous avez indiqué est trop court')
}
else if (message.length>message_max){
afficher_erreur('message','Le message que vous avez indiqué est trop grand')
}
else{
afficher_bon('message')
if (anti_bot==""){
afficher_erreur('anti_bot','Vous devez indiquer le code anti spam!')
}
else if (anti_bot.length!=4){
afficher_erreur('anti_bot','Le code anti spam doit faire 4 lettres')
}
else{
afficher_bon('anti_bot')
formulaire.envoyer.disabled=true
/* Appel de la fonction ajax*/
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else{ // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr
}
var xhr = getXhr()
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState != 4 ){
document.getElementById('wait').style.display='';
}
if(xhr.readyState == 4 && xhr.status == 200){
document.getElementById('wait').style.display='none';
document.getElementById('resultat').style.display='';
document.getElementById('resultat').innerHTML = xhr.responseText;
}
}
xhr.open("GET","gestion_pds/envoyer_message.php?message="+escape(message)+"&societe="+societe+"&nom="+nom+"&prenom="+prenom+"&telephone="+telephone+"&mobile="+mobile+"&check1="+check1+"&check2="+check2+"&check3="+check3+"&anti_bot="+anti_bot+"&email="+email+"",true);
xhr.send(null);
formulaire.envoyer.disabled=false;
}
}
}
}
}
}
}
function afficher_erreur(champ,erreur){
document.getElementById(champ+'_requis').innerHTML = erreur
document.getElementById('champ_'+champ).style.border="1px solid #ff0000"
document.getElementById('champ_'+champ).focus();
}
function afficher_bon(champ){
document.getElementById('champ_'+champ).style.border="1px solid green"
document.getElementById(champ+'_requis').style.display='none'
}
Le fichier envoyer_message.php est comme suit:
- Code: Tout sélectionner
<?php
//Pas de cache possible pour la réponse
header("Cache-Control: no-cache");
header("Pragma: nocache");
require_once("config_pds.php");
//On teste si les champs sont remplis
if (!isset ($_GET['societe']) or !isset ($_GET['nom']) or !isset ($_GET['prenom']) or !isset ($_GET['telephone']) or !isset ($_GET['mobile']) or !isset ($_GET['email']) or !isset ($_GET['message']) or !isset ($_GET['check1']) or !isset ($_GET['check2']) or !isset ($_GET['check3']) or !isset ($_GET['anti_bot'])){
?>
<span class="erreur">
Un des champs au moins n'est pas rempli!</span>
<?php
}
else if ($_SESSION['verif_anti_bot']!=$_GET['anti_bot']){
?>
<span class="erreur">
Le code de vérification n'est pas bon
</span>
<?php
}
else{
//On formate les champs
$societe=htmlentities(addslashes($_GET['societe']));
$nom=htmlentities(addslashes($_GET['nom']));
$prenom=htmlentities(addslashes($_GET['prenom']));
$telephone=htmlentities(addslashes($_GET['telephone']));
$mobile=htmlentities(addslashes($_GET['mobile']));
$email=htmlentities(addslashes($_GET['email']));
$check1=htmlentities(addslashes($_GET['check1']));
$check2=htmlentities(addslashes($_GET['check2']));
$check3=htmlentities(addslashes($_GET['check3']));
$message=nl2br(stripslashes($_GET['message']));
$destinataires="xxxxxxx@xxxxxxx.com";
$contenu_message="Vous avez reçu une demande d'information sur le site TamTam Marketing:
Société: ".$societe."
Nom: ".$nom."
Prénom: ".$prenom."
Téléphone: ".$telephone."
Mobile: ".$mobile."
Email: ".$email."
Sujets choisis:
".$check1."
".$check2."
".$check3."
Message:
".$message."
";
if (EMAIL_HTML==="oui"){
//On envoi l'email au format HTML
$From = "From:".EMAIL_WEBMASTER."
";
$From .= "MIME-version: 1.0
";
$From .= "Content-type: text/html; charset= iso-8859-1
";
$From .= "Reply-To: ".$email."
";
mail(EMAIL_WEBMASTER,SUJET_EMAIL,$contenu_message,$From);
//On teste si le mail a été envoyé correctement
if (!mail){
?>
<span class="erreur">
Erreur! L'email n'a pu être envoyé! Merci de rééssayer plus tard!<br />
</span>
<?php
}
else{
?>
<span class="bon">
L'email à bien été envoyé. Vous recevrez une réponse le plus vite possible!<br />
</span>
<?php
}
}
else{
//On envoi l'email au format texte
$From = "From:".EMAIL_WEBMASTER."
";
$From .= "Reply-To: ".$email."
";
mail(EMAIL_WEBMASTER,SUJET_EMAIL,$contenu_message,$From);
//On teste si le mail a été envoyé correctement
if (!mail){
?>
<span class="erreur">
Erreur! L'email n'a pu être envoyé! Merci de rééssayer plus tard!<br />
</span>
<?php
}
else{
?>
<span class="bon">
L'email à bien été envoyé. Vous recevrez une réponse sous 24 heures !<br />
</span>
<?php
}
}
//On supprime la session pour le code anti-spam
unset($_SESSION['verif_anti_bot']);
}
?>
Mes checkboxes sont comme suit:
- Code: Tout sélectionner
<input type="checkbox" name="check1" class="checkbox" value="Scanner / Qualite point de vente">
<input type="checkbox" name="check2" class="checkbox" value="Mise en scene / Merchandising">
<input type="checkbox" name="check3" class="checkbox" value="Scenario vendeur / Methode de vente">
Quand je reçois le message, que les checkboxes soient cochées ou non, je reçois toujours la même chose:
- Code: Tout sélectionner
Vous avez reçu une demande d'information sur le site TamTam Marketing:
Société: test
Nom: test
Prénom: test
Téléphone: test
Mobile: test
Email: un@email.com
Sujets choisis:
Scanner / Qualite point de vente
Mise en scene / Merchandising
Scenario vendeur / Methode de vente
Message:
test
J'ai essayé les scripts de ce site:
http://www.swsysteme.com/tutos/tutocase.php
++++++ quelques dizaines d'autres en espérant une solution, mais nada, ça ne marche pas.
Néanmoins, je vais essayer de remplacer les GET par des POST, on verra ce que ça donne.
Toute suggestion est bienvenue.
Merci,
Sandrine