Améliorer un formulaire en php
Fermé
bg62
Messages postés
23671
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
21 janvier 2025
-
8 août 2006 à 15:31
bg62 Messages postés 23671 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 21 janvier 2025 - 14 août 2006 à 10:06
bg62 Messages postés 23671 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 21 janvier 2025 - 14 août 2006 à 10:06
A voir également:
- Améliorer un formulaire en php
- Formulaire de réclamation facebook - Guide
- Easy php - Télécharger - Divers Web & Internet
- Formulaire instagram compte suspendu - Guide
- Le formulaire rempli - Guide
- Formulaire de contact le bon coin introuvable - Forum Réseaux sociaux
8 réponses
Darshu
Messages postés
303
Date d'inscription
lundi 30 janvier 2006
Statut
Membre
Dernière intervention
3 avril 2008
64
8 août 2006 à 16:36
8 août 2006 à 16:36
Ca devient lourd cette histoire .... Tu va pas faire 10 topics pour la même chose quand même ?
Je t'ai déja dit : on ne peut pas faire au mot mais au nombre de caractères, pour les comptes à rebours il y a des scripts tout faits pour ça, pour la taille c'est avec l'attribut SIZE="XX" de ton <INPUT>, et pour la vérification des mails c'est aussi des trucs déja existants.
Va sur http://www.editeurjavascript.com/scripts/cat_formulaire_3.php et lis un peu tout ce qui existe déja ...
Je t'ai déja dit : on ne peut pas faire au mot mais au nombre de caractères, pour les comptes à rebours il y a des scripts tout faits pour ça, pour la taille c'est avec l'attribut SIZE="XX" de ton <INPUT>, et pour la vérification des mails c'est aussi des trucs déja existants.
Va sur http://www.editeurjavascript.com/scripts/cat_formulaire_3.php et lis un peu tout ce qui existe déja ...
Utilisateur anonyme
10 août 2006 à 13:19
10 août 2006 à 13:19
Pour compter le nombre de mots en javascript
variable.split(/[ ,?!;:()]/g).length
variable.split(/[ ,?!;:()]/g).length
bg62
Messages postés
23671
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
21 janvier 2025
2 393
10 août 2006 à 13:48
10 août 2006 à 13:48
merci
mais là tu dépasses mes connaissances ...
où dois-je mettre cette variable, dans la page que j'ai donnée en exemple ... à quel endroit précisément ? car là ...
@mitiés
b g
mais là tu dépasses mes connaissances ...
où dois-je mettre cette variable, dans la page que j'ai donnée en exemple ... à quel endroit précisément ? car là ...
@mitiés
b g
Utilisateur anonyme
10 août 2006 à 13:52
10 août 2006 à 13:52
Tu dois le mettre dans le script de vérification du formulaire.
Et variable ressemblera plutot à ça.
document.forms['nom_formulaire'].elements['champ_texte'].value
Et variable ressemblera plutot à ça.
document.forms['nom_formulaire'].elements['champ_texte'].value
bg62
Messages postés
23671
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
21 janvier 2025
2 393
10 août 2006 à 14:47
10 août 2006 à 14:47
très bien ! je veux bien ! mais je t'ai dis cela me dépasse ... voici où j'en suis, cela va faire un peu long, mais tu pourras au moins m'indiquer certainement quelques erreurs visibles et quelques correction et où mettre ce 'nouveau' code :
<?php
$email_dest = "mon adresse@ici.la";
if ($_POST['envoi']) {
$message_remerciement = "merci de votre demande je vous répons au plus vite";
// E-mail headers:
$headers ="MIME-Version: 1.0 \n";
$headers .="From: expediteur<mail de l'expediteur>\n";
$headers .="Content-Type: text/html; charset=iso-8859-1 \n";
$subject = "depuis refok";
$partie_entete = "<html><head>
<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
</head>
<body bgcolor=#FFFFFF>";
for ($a=1; $a<= $_POST['nbre_champs_texte']; $a++) {
$partie_champs_texte .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_champ'.$a] . " = " . $_POST['champ'.$a] . "</font><br>";
}
if ($_POST['nbre_zone_email'] != 0) {
$partie_zone_email = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_email'] . " = " . $_POST['zone_email'] . "</font><br>";
}
if ($_POST['nbre_zones_texte'] != 0) {
$partie_zone_texte = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_zone'] . " = " . $_POST['zone_texte'] . "</font><br>";
$partie_zone_texte = stripslashes($partie_zone_texte);
}
$fin = "</body></html>";
$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_zone_texte . $fin;
// Send the e-mail
if (@!mail($email_dest,$subject,$sortie,$headers)) {
echo("Envoi du formulaire impossible");
} // Closing if !mail...
} // Closing if edit
?><html>
<head>
<title>envoi de formulaire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript"><!-- Hide script from older browsers
function verifSelection() {if (mail_form.champ1.value == "") {
alert("non rempli !")
return false
} if (mail_form.champ2.value == "") {
alert("non rempli !")
return false
} if (mail_form.champ3.value == "") {
alert("non rempli !")
return false
} if (mail_form.champ4.value == "") {
alert("non rempli !")
return false
} if (mail_form.champ5.value == "") {
alert("non rempli !")
return false
} if (mail_form.zone_email.value == "") {
alert("non rempli !")
return false
}
invalidChars = " /:,;'"
for (i=0; i<invalidChars.length; i++) { // does it contain any invalid characters?
badChar = invalidChars.charAt(i)
if (mail_form.zone_email.value.indexOf(badChar,0) > -1) {
alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.")
mail_form.zone_email.focus()
return false
}
}
atPos = mail_form.zone_email.value.indexOf("@",1) // there must be one "@" symbol
if (atPos == -1) {
alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}
if (mail_form.zone_email.value.indexOf("@",atPos+1) != -1) { // and only one "@" symbol
alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}
periodPos = mail_form.zone_email.value.indexOf(".",atPos)
if (periodPos == -1) { // and at least one "." after the "@"
alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}
if (periodPos+3 > mail_form.zone_email.value.length) { // must be at least 2 characters after the
alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}if (mail_form.zone_texte.value == "") {
alert("non rempli !")
return false
} } // Fin de la fonction
</script>
</head>
<body>
<form name="mail_form" method="post" action="<?=$PHP_SELF?>" onSubmit="return verifSelection()">
<div align="center">
<p><font color="#FF0000">comment faire pour :</font></p>
<p><font color="#FF0000">1 - agrandir les zônes de saisie <strong>2
- Vérifier le nombre de mots ou de caractères des zônes
concernées (si possible avec un 'compte à rebours')</strong>
3 - n'accepter que des adresses mail valides dans les champs d'adresse 4-
à la réception les deux adresses (expéditeur et destinataire)
sont ls miennes et je ne peux pas répondre à l'expéditeur
!!! GENANT !</font></p>
</div>
<p align="center">
<p align="center">
<?php
if ($message_remerciement) {
echo("<font face=Verdana size=2>");
echo(stripslashes($message_remerciement));
echo("</p></body></html>");
exit();
}
?>
<p align="center">Attention ! tous les champs sont obligatoires ...
<table width="566" border="0" align="center">
<p align="center"> </p>
<tr>
<td><font face="Verdana" size="2"><strong>Pour le Site:</strong> </font></td>
</tr>
<tr>
<td><p><font size="2" face="Verdana">Titre du Site</font></p></td>
<td><input name="champ1" type="text">
maximum 20 mots</td>
</tr>
<tr>
<td><font face="Verdana" size="2">URL du site</font></td>
<td><input name="champ2" type="text"></td>
</tr>
<tr>
<td><font face="Verdana" size="2">Description courte</font></td>
<td><input name="champ3" type="text">
maximum 150 caractères</td>
</tr>
<tr>
<td><font face="Verdana" size="2">Description longue</font></td>
<td><input name="champ4" type="text">
maximum 200 caractères</td>
</tr>
<tr>
<td><font face="Verdana" size="2">Mots clefs 1</font></td>
<td><input name="champ5" type="text">
15 maximum , mais un mot ‘double’ est acceptable ...</td>
</tr>
<tr>
<td><font face="Verdana" size="2">Mots clefs 2</font></td>
<td><input name="champ6" type="text">
maximum 200 mots</td>
</tr>
<tr>
<td>La catégorie dans laquelle on veut placer le site</td>
<td><input name="champ7" type="text"></td>
</tr>
<tr>
<td>Eventuellement sous-catégorie</td>
<td><input name="champ8" type="text"></td>
</tr>
<tr>
<td><strong>Pour la Personne :</strong></td>
<td> </td>
</tr>
<tr>
<td>prénom</td>
<td><input name="champ9" type="text"></td>
</tr>
<tr>
<td>nom</td>
<td><input name="champ10" type="text"></td>
</tr>
<tr>
<td>M ou Mme</td>
<td><input name="champ11" type="text"></td>
</tr>
<tr>
<td>titre</td>
<td><input name="champ12" type="text"></td>
</tr>
<tr>
<td><strong>Pour le Webmaster :</strong></td>
<td> </td>
</tr>
<tr>
<td>nom et prénom</td>
<td><input name="champ13" type="text"></td>
</tr>
<tr>
<td>adresse email</td>
<td><input name="champ14" type="text">
attention ! bien lire les recommandations</td>
</tr>
<tr>
<td>adresse email pour contact</td>
<td><input name="champ15" type="text">
adresse 'normale'</td>
</tr>
<tr>
<td>mot de passe</td>
<td><input name="champ16" type="text"></td>
</tr>
<tr>
<td><strong>Pour la ‘Compagnie’.</strong></td>
<td>(Dans cette catégorie, l’on peut ignorer ou refuser certaines
lignes en mettant simplement un ‘ – ‘)</td>
</tr>
<tr>
<td>société</td>
<td><input name="champ17" type="text"></td>
</tr>
<tr>
<td>pays</td>
<td><input name="champ18" type="text"></td>
</tr>
<tr>
<td>rue</td>
<td><input name="champ19" type="text"></td>
</tr>
<tr>
<td>code postal</td>
<td><input name="champ20" type="text"></td>
</tr>
<tr>
<td>ville</td>
<td><input name="champ21" type="text"></td>
</tr>
<tr>
<td>email général</td>
<td><input name="champ22" type="text"></td>
</tr>
<tr>
<td>téléphone</td>
<td><input name="champ23" type="text"></td>
</tr>
<tr>
<td>fax</td>
<td><input name="champ24" type="text"></td>
</tr>
<tr>
<td>portable</td>
<td><input name="champ25" type="text"></td>
</tr>
<tr>
<td>numéro vert</td>
<td><input name="champ26" type="text"></td>
</tr>
<tr>
<td>produits</td>
<td><input name="champ27" type="text"></td>
</tr>
<tr>
<td width><font face="Verdana" size="2">E MAIL</font></td>
<td width><input name="zone_email" type="text"></td>
</tr>
<tr>
<td valign="top"><font face="Verdana" size="2">message personnel complèmentaire
: </font></td>
<td><textarea name="zone_texte" cols="50" rows="10"></textarea></td>
</tr>
<tr>
<td valign="top"><input name="nbre_champs_texte" type="hidden" id="nbre_champs_texte" value="27">
<input name="nbre_zones_texte" type="hidden" value="1"> <input name="nbre_zone_email" type="hidden" value="1">
<input name="titre_champ1" type="hidden" value="Titre du Site">
<input name="titre_champ2" type="hidden" value="URL du site">
<input name="titre_champ3" type="hidden" value="Description courte">
<input name="titre_champ4" type="hidden" value="Description longue">
<input name="titre_champ5" type="hidden" value="Mots clefs 1">
<input name="titre_champ6" type="hidden" value="Mots clefs 2">
<input name="titre_champ7" type="hidden" value="La catégorie dans laquelle on veut placer le site">
<input name="titre_champ8" type="hidden" value="Eventuellement sous-catégorie">
<input name="titre_champ9" type="hidden" value="prénom">
<input name="titre_champ10" type="hidden" value="nom">
<input name="titre_champ11" type="hidden" value="M ou Mme">
<input name="titre_champ12" type="hidden" value="titre">
<input name="titre_champ13" type="hidden" value="nom et prénom">
<input name="titre_champ14" type="hidden" value="adresse email">
<input name="titre_champ15" type="hidden" value="adresse email pour contact">
<input name="titre_champ16" type="hidden" value="mot de passe">
<input name="titre_champ17" type="hidden" value="société">
<input name="titre_champ18" type="hidden" value="pays">
<input name="titre_champ19" type="hidden" value="rue">
<input name="titre_champ20" type="hidden" value="code postal">
<input name="titre_champ21" type="hidden" value="ville">
<input name="titre_champ22" type="hidden" value="email général">
<input name="titre_champ23" type="hidden" value="téléphone">
<input name="titre_champ24" type="hidden" value="fax">
<input name="titre_champ25" type="hidden" value="portable">
<input name="titre_champ26" type="hidden" value="numéro vert :">
<input name="titre_champ26" type="hidden" value="produits :">
<input name="titre_email" type="hidden" value="E MAIL">
<input name="titre_zone" type="hidden" value="message personnel complèmentaire"></td>
<td><div align="center">
<input type="reset" name="Reset" value="Effacer">
<input type="submit" name="envoi" value="Envoyer">
</div></td>
</tr>
</table>
<div align="center"></div>
</form>
</body>
</html>
<?php
$email_dest = "mon adresse@ici.la";
if ($_POST['envoi']) {
$message_remerciement = "merci de votre demande je vous répons au plus vite";
// E-mail headers:
$headers ="MIME-Version: 1.0 \n";
$headers .="From: expediteur<mail de l'expediteur>\n";
$headers .="Content-Type: text/html; charset=iso-8859-1 \n";
$subject = "depuis refok";
$partie_entete = "<html><head>
<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
</head>
<body bgcolor=#FFFFFF>";
for ($a=1; $a<= $_POST['nbre_champs_texte']; $a++) {
$partie_champs_texte .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_champ'.$a] . " = " . $_POST['champ'.$a] . "</font><br>";
}
if ($_POST['nbre_zone_email'] != 0) {
$partie_zone_email = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_email'] . " = " . $_POST['zone_email'] . "</font><br>";
}
if ($_POST['nbre_zones_texte'] != 0) {
$partie_zone_texte = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_zone'] . " = " . $_POST['zone_texte'] . "</font><br>";
$partie_zone_texte = stripslashes($partie_zone_texte);
}
$fin = "</body></html>";
$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_zone_texte . $fin;
// Send the e-mail
if (@!mail($email_dest,$subject,$sortie,$headers)) {
echo("Envoi du formulaire impossible");
} // Closing if !mail...
} // Closing if edit
?><html>
<head>
<title>envoi de formulaire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript"><!-- Hide script from older browsers
function verifSelection() {if (mail_form.champ1.value == "") {
alert("non rempli !")
return false
} if (mail_form.champ2.value == "") {
alert("non rempli !")
return false
} if (mail_form.champ3.value == "") {
alert("non rempli !")
return false
} if (mail_form.champ4.value == "") {
alert("non rempli !")
return false
} if (mail_form.champ5.value == "") {
alert("non rempli !")
return false
} if (mail_form.zone_email.value == "") {
alert("non rempli !")
return false
}
invalidChars = " /:,;'"
for (i=0; i<invalidChars.length; i++) { // does it contain any invalid characters?
badChar = invalidChars.charAt(i)
if (mail_form.zone_email.value.indexOf(badChar,0) > -1) {
alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.")
mail_form.zone_email.focus()
return false
}
}
atPos = mail_form.zone_email.value.indexOf("@",1) // there must be one "@" symbol
if (atPos == -1) {
alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}
if (mail_form.zone_email.value.indexOf("@",atPos+1) != -1) { // and only one "@" symbol
alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}
periodPos = mail_form.zone_email.value.indexOf(".",atPos)
if (periodPos == -1) { // and at least one "." after the "@"
alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}
if (periodPos+3 > mail_form.zone_email.value.length) { // must be at least 2 characters after the
alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}if (mail_form.zone_texte.value == "") {
alert("non rempli !")
return false
} } // Fin de la fonction
</script>
</head>
<body>
<form name="mail_form" method="post" action="<?=$PHP_SELF?>" onSubmit="return verifSelection()">
<div align="center">
<p><font color="#FF0000">comment faire pour :</font></p>
<p><font color="#FF0000">1 - agrandir les zônes de saisie <strong>2
- Vérifier le nombre de mots ou de caractères des zônes
concernées (si possible avec un 'compte à rebours')</strong>
3 - n'accepter que des adresses mail valides dans les champs d'adresse 4-
à la réception les deux adresses (expéditeur et destinataire)
sont ls miennes et je ne peux pas répondre à l'expéditeur
!!! GENANT !</font></p>
</div>
<p align="center">
<p align="center">
<?php
if ($message_remerciement) {
echo("<font face=Verdana size=2>");
echo(stripslashes($message_remerciement));
echo("</p></body></html>");
exit();
}
?>
<p align="center">Attention ! tous les champs sont obligatoires ...
<table width="566" border="0" align="center">
<p align="center"> </p>
<tr>
<td><font face="Verdana" size="2"><strong>Pour le Site:</strong> </font></td>
</tr>
<tr>
<td><p><font size="2" face="Verdana">Titre du Site</font></p></td>
<td><input name="champ1" type="text">
maximum 20 mots</td>
</tr>
<tr>
<td><font face="Verdana" size="2">URL du site</font></td>
<td><input name="champ2" type="text"></td>
</tr>
<tr>
<td><font face="Verdana" size="2">Description courte</font></td>
<td><input name="champ3" type="text">
maximum 150 caractères</td>
</tr>
<tr>
<td><font face="Verdana" size="2">Description longue</font></td>
<td><input name="champ4" type="text">
maximum 200 caractères</td>
</tr>
<tr>
<td><font face="Verdana" size="2">Mots clefs 1</font></td>
<td><input name="champ5" type="text">
15 maximum , mais un mot ‘double’ est acceptable ...</td>
</tr>
<tr>
<td><font face="Verdana" size="2">Mots clefs 2</font></td>
<td><input name="champ6" type="text">
maximum 200 mots</td>
</tr>
<tr>
<td>La catégorie dans laquelle on veut placer le site</td>
<td><input name="champ7" type="text"></td>
</tr>
<tr>
<td>Eventuellement sous-catégorie</td>
<td><input name="champ8" type="text"></td>
</tr>
<tr>
<td><strong>Pour la Personne :</strong></td>
<td> </td>
</tr>
<tr>
<td>prénom</td>
<td><input name="champ9" type="text"></td>
</tr>
<tr>
<td>nom</td>
<td><input name="champ10" type="text"></td>
</tr>
<tr>
<td>M ou Mme</td>
<td><input name="champ11" type="text"></td>
</tr>
<tr>
<td>titre</td>
<td><input name="champ12" type="text"></td>
</tr>
<tr>
<td><strong>Pour le Webmaster :</strong></td>
<td> </td>
</tr>
<tr>
<td>nom et prénom</td>
<td><input name="champ13" type="text"></td>
</tr>
<tr>
<td>adresse email</td>
<td><input name="champ14" type="text">
attention ! bien lire les recommandations</td>
</tr>
<tr>
<td>adresse email pour contact</td>
<td><input name="champ15" type="text">
adresse 'normale'</td>
</tr>
<tr>
<td>mot de passe</td>
<td><input name="champ16" type="text"></td>
</tr>
<tr>
<td><strong>Pour la ‘Compagnie’.</strong></td>
<td>(Dans cette catégorie, l’on peut ignorer ou refuser certaines
lignes en mettant simplement un ‘ – ‘)</td>
</tr>
<tr>
<td>société</td>
<td><input name="champ17" type="text"></td>
</tr>
<tr>
<td>pays</td>
<td><input name="champ18" type="text"></td>
</tr>
<tr>
<td>rue</td>
<td><input name="champ19" type="text"></td>
</tr>
<tr>
<td>code postal</td>
<td><input name="champ20" type="text"></td>
</tr>
<tr>
<td>ville</td>
<td><input name="champ21" type="text"></td>
</tr>
<tr>
<td>email général</td>
<td><input name="champ22" type="text"></td>
</tr>
<tr>
<td>téléphone</td>
<td><input name="champ23" type="text"></td>
</tr>
<tr>
<td>fax</td>
<td><input name="champ24" type="text"></td>
</tr>
<tr>
<td>portable</td>
<td><input name="champ25" type="text"></td>
</tr>
<tr>
<td>numéro vert</td>
<td><input name="champ26" type="text"></td>
</tr>
<tr>
<td>produits</td>
<td><input name="champ27" type="text"></td>
</tr>
<tr>
<td width><font face="Verdana" size="2">E MAIL</font></td>
<td width><input name="zone_email" type="text"></td>
</tr>
<tr>
<td valign="top"><font face="Verdana" size="2">message personnel complèmentaire
: </font></td>
<td><textarea name="zone_texte" cols="50" rows="10"></textarea></td>
</tr>
<tr>
<td valign="top"><input name="nbre_champs_texte" type="hidden" id="nbre_champs_texte" value="27">
<input name="nbre_zones_texte" type="hidden" value="1"> <input name="nbre_zone_email" type="hidden" value="1">
<input name="titre_champ1" type="hidden" value="Titre du Site">
<input name="titre_champ2" type="hidden" value="URL du site">
<input name="titre_champ3" type="hidden" value="Description courte">
<input name="titre_champ4" type="hidden" value="Description longue">
<input name="titre_champ5" type="hidden" value="Mots clefs 1">
<input name="titre_champ6" type="hidden" value="Mots clefs 2">
<input name="titre_champ7" type="hidden" value="La catégorie dans laquelle on veut placer le site">
<input name="titre_champ8" type="hidden" value="Eventuellement sous-catégorie">
<input name="titre_champ9" type="hidden" value="prénom">
<input name="titre_champ10" type="hidden" value="nom">
<input name="titre_champ11" type="hidden" value="M ou Mme">
<input name="titre_champ12" type="hidden" value="titre">
<input name="titre_champ13" type="hidden" value="nom et prénom">
<input name="titre_champ14" type="hidden" value="adresse email">
<input name="titre_champ15" type="hidden" value="adresse email pour contact">
<input name="titre_champ16" type="hidden" value="mot de passe">
<input name="titre_champ17" type="hidden" value="société">
<input name="titre_champ18" type="hidden" value="pays">
<input name="titre_champ19" type="hidden" value="rue">
<input name="titre_champ20" type="hidden" value="code postal">
<input name="titre_champ21" type="hidden" value="ville">
<input name="titre_champ22" type="hidden" value="email général">
<input name="titre_champ23" type="hidden" value="téléphone">
<input name="titre_champ24" type="hidden" value="fax">
<input name="titre_champ25" type="hidden" value="portable">
<input name="titre_champ26" type="hidden" value="numéro vert :">
<input name="titre_champ26" type="hidden" value="produits :">
<input name="titre_email" type="hidden" value="E MAIL">
<input name="titre_zone" type="hidden" value="message personnel complèmentaire"></td>
<td><div align="center">
<input type="reset" name="Reset" value="Effacer">
<input type="submit" name="envoi" value="Envoyer">
</div></td>
</tr>
</table>
<div align="center"></div>
</form>
</body>
</html>
Utilisateur anonyme
10 août 2006 à 14:56
10 août 2006 à 14:56
Ah mon dieu c'est quoi tous ces champs hidden.
T'en as pas besoin, il te suffit de parcourir le tableau $_POST avec un foreach pour avoir le contenu des champs du formulaire.
Exemple
foreach ($_POST as $nom_champ => $valeur_champ)
echo "$nom_champ = $valeur_champ";
Pour le script que je t'ai donné il faut le mettre dans ta fonction verifSelection() où tu veux (en l'adaptant avec la bonne variable à tester).
Un conseil, va apprendre les bases de javascript, ça te sera très utile pour comprendre ce que tu fais avec ton code.
T'en as pas besoin, il te suffit de parcourir le tableau $_POST avec un foreach pour avoir le contenu des champs du formulaire.
Exemple
foreach ($_POST as $nom_champ => $valeur_champ)
echo "$nom_champ = $valeur_champ";
Pour le script que je t'ai donné il faut le mettre dans ta fonction verifSelection() où tu veux (en l'adaptant avec la bonne variable à tester).
Un conseil, va apprendre les bases de javascript, ça te sera très utile pour comprendre ce que tu fais avec ton code.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bg62
Messages postés
23671
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
21 janvier 2025
2 393
10 août 2006 à 15:11
10 août 2006 à 15:11
merci de tes conseils, je vais réessayer d'y comprendre qq chose à ces codes ...
mais
1 - que veux-tu dire par :
"Ah mon dieu c'est quoi tous ces champs hidden."
"T'en as pas besoin, il te suffit de parcourir le tableau $_POST avec un foreach pour avoir le contenu des champs du formulaire.
Exemple
foreach ($_POST as $nom_champ => $valeur_champ)
echo "$nom_champ = $valeur_champ";"
là il me faudrait la traduction ... (?) un 'foreach' sert à quoi ?
je crois que je suis tomber sur un sacré prof !
@mitiés
b g
mais
1 - que veux-tu dire par :
"Ah mon dieu c'est quoi tous ces champs hidden."
"T'en as pas besoin, il te suffit de parcourir le tableau $_POST avec un foreach pour avoir le contenu des champs du formulaire.
Exemple
foreach ($_POST as $nom_champ => $valeur_champ)
echo "$nom_champ = $valeur_champ";"
là il me faudrait la traduction ... (?) un 'foreach' sert à quoi ?
je crois que je suis tomber sur un sacré prof !
@mitiés
b g
Utilisateur anonyme
10 août 2006 à 15:20
10 août 2006 à 15:20
Je suis peut être allé trop vite en disant ça, tu as peut être une bonne raison d'avoir tous ces champs hidden. SI c'est ça je veux bien la connaitre.
Sinon le foreach permet de parcourir un tableau sans avoir besoin de connaitre la taille du tableau, ni le nom des clés (dans le cas d'un tableau associatif).
Sinon le foreach permet de parcourir un tableau sans avoir besoin de connaitre la taille du tableau, ni le nom des clés (dans le cas d'un tableau associatif).
bg62
Messages postés
23671
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
21 janvier 2025
2 393
10 août 2006 à 15:44
10 août 2006 à 15:44
non je n'ai pas de raison spéciale ... sauf que j'ai suivi un tuto pour construire une page (qui n'en faisait que la moitié environ ...) et fais les rajouts ensuite (doit même manquer des choses en haut de code d'ailleurs !)
@+
b g
@+
b g
bg62
Messages postés
23671
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
21 janvier 2025
2 393
14 août 2006 à 10:06
14 août 2006 à 10:06
bon voilà j'ai fait quelques modifs, je m'approche de ce que je voudrais, mais il y a encore quelques incompatibilités:
1 - Vérifier le nombre de mots dans les zônes concernées (si possible avec un 'compte à rebours'ou une alerte) 2 - Vérifier le nombre de caractères dans les zônes concernées (si possible avec un 'compte à rebours'ou une alerte ) cela fonctionne sur une ligne mais pas sur la deuxième !!! même en recopiant le même code ! 3 - n'accepter que des adresses mail valides dans les champs d'adresse (je ne sais pas si le procédé fonctionne bien !)
(il est toujours à la même adresse:http://refok.free.fr/super/pages/essai_formulaire.php)
voici le code:
<?php
// FAUT IL RECHANGER LES 'votresite.com" ?????
function email($destinataire, $sujet , $messtxt, $messhtml,$mailfrom,$namefrom="votresite.com")
{
$boundary = "_".md5 (uniqid (rand()));
$entete = "MIME-Version: 1.0\n";
$entete .= "X-Sender: <www.votresite.com>\n";
$entete .= "X-Mailer: PHP\n";
$entete .= "X-auth-smtp-user: webmaster@votresite.com \n";
$entete .= "X-abuse-contact: abuse@votresite.com \n";
$entete .= "Reply-to: $namefrom <$mailfrom>\n";
$entete .= "From:$namefrom <$mailfrom>\n";
//www-data@planet-work.com , dépend de votre hebergeur, envoyé vous un mail depuis la fonction mail sur une adresse non filtrée pour récuperer cette valeur
$entete .= "Content-Type: multipart/alternative; boundary=\"$boundary\"";
$message = "--" . $boundary . "\n";
$message.= "This is a multi-part message in MIME format.\n\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message .= $messtxt;
$message .= "\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message .= str_replace("=","=3D",$messhtml);
$message .= "\n\n";
return mail($destinataire, $sujet, $message, $entete);
}
// correction - - $email_dest = "bg62@free.fr";
$email_dest = "bg62@laposte.net";
if ($_POST['envoi']) {
$message_remerciement = "merci de votre demande je vous réponds au plus vite sur votre adresse mail";
$subject = "depuis refok";
$partie_entete = "<html><head>
<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
</head>
<body bgcolor=#FFFFFF>";
for ($a=1; $a<= $_POST['nbre_champs_texte']; $a++) {
$partie_champs_texte .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_champ'.$a] . " = " . $_POST['champ'.$a] . "</font><br>";
}
if ($_POST['nbre_zone_email'] != 0) {
$partie_zone_email = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_email'] . " = " . $_POST['zone_email'] . "</font><br>";
}
if ($_POST['nbre_zones_texte'] != 0) {
$partie_zone_texte = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_zone'] . " = " . $_POST['zone_texte'] . "</font><br>";
$partie_zone_texte = stripslashes($partie_zone_texte);
}
$fin = "</body></html>";
$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_zone_texte . $fin;
// Send the e-mail
email($email_dest,$subject,$sortie,$sortie,$_POST['champ14'],$_POST['champ15']);
// LES CHAMPS SONT BONS ICI ??????????????????????????????????????
} // Closing if edit
?><html>
<head>
<title>envoi de formulaire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript"><!-- Hide script from older browsers
//ORIGINAL<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
function checkwords(val1,maxlength){
var maxwords=maxlength
var temp=val1.split(" ")
if (temp.length>maxwords){
return false
}
else
{
return true;
}
}
//function verifSelection() {
//if (checkwords(mail_form.champ1.value,20)==false)
//{
// alert ("trop de mots pour le titre du site")
// return false;
//}
// PEUT ON METTRE UN TRUC DANS CE GENRE POUR VERIFIER LES AUTRES SELECTIONS ???? ET COMMENT INSERER ???
//function verifSelection2() {
//if (checkwords(mail_form.champ1.value,15)==false)
//{
//alert ("trop de mots pour MOTS CLEFS 1")
//return false;
//}
//function verifSelection3() {
//if (checkwords(mail_form.champ1.value,200)==false)
//{
//alert ("trop de mots pour MOTS CLEFS 2")
//return false;
//}
if (checkwords(mail_form.champ1.value,20)==false)
{
alert ("trop de mots pour le titre du site")
return false;
}
if (checkwords(mail_form.champ5.value,15)==false)
{
alert ("trop de mots pour les Mots clefs 1")
return false;
}
if (checkwords(mail_form.champ6.value,200)==false)
{
alert ("trop de mots pour les Mots clefs 2")
return false;
}
if (mail_form.champ1.value == "") {
alert("non rempli !")
return false
} if (mail_form.champ2.value == "") {
alert("non rempli !")
return false
} if (mail_form.champ3.value == "") {
alert("non rempli !")
return false
} if (mail_form.champ4.value == "") {
alert("non rempli !")
return false
} if (mail_form.champ5.value == "") {
alert("non rempli !")
return false
}} if (mail_form.champ6.value == "") {
alert("non rempli !")
return false
} if (mail_form.zone_email.value == "") {
alert("non rempli !")
return false
}
invalidChars = " /:,;'"
for (i=0; i<invalidChars.length; i++) { // does it contain any invalid characters?
badChar = invalidChars.charAt(i)
if (mail_form.zone_email.value.indexOf(badChar,0) > -1) {
alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.")
mail_form.zone_email.focus()
return false
}
}
atPos = mail_form.zone_email.value.indexOf("@",1) // there must be one "@" symbol
if (atPos == -1) {
alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}
if (mail_form.zone_email.value.indexOf("@",atPos+1) != -1) { // and only one "@" symbol
alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}
periodPos = mail_form.zone_email.value.indexOf(".",atPos)
if (periodPos == -1) { // and at least one "." after the "@"
alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}
if (periodPos+3 > mail_form.zone_email.value.length) { // must be at least 2 characters after the
alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}if (mail_form.zone_texte.value == "") {
alert("non rempli !")
return false
} } // Fin de la fonction
</script>
<script type="text/javascript">
var ns6=document.getElementById&&!document.all
function restrictinput(maxlength,e,placeholder){
if (window.event&&event.srcElement.value.length>=maxlength)
return false
else if (e.target&&e.target==eval(placeholder)&&e.target.value.length>=maxlength){
var pressedkey=/[a-zA-Z0-9\.\,\/]/
if (pressedkey.test(String.fromCharCode(e.which)))
e.stopPropagation()
}
}
function countlimit(maxlength,e,placeholder){
var theform=eval(placeholder)
var lengthleft=maxlength-theform.value.length
var placeholderobj=document.all? document.all[placeholder] : document.getElementById(placeholder)
if (window.event||e.target&&e.target==eval(placeholder)){
if (lengthleft<0)
theform.value=theform.value.substring(0,maxlength)
placeholderobj.innerHTML=lengthleft
}
}
function displaylimit(thename, theid, thelimit){
var theform=document.getElementById(theid)
var limit_text='<b><span id="'+theform.toString()+'">'+thelimit+'</span></b> characteres Maximum.'
if (document.all||ns6)
document.write(limit_text)
if (document.all){
eval(theform).onkeypress=function(){ return restrictinput(thelimit,event,theform)}
eval(theform).onkeyup=function(){ countlimit(thelimit,event,theform)}
}
else if (ns6){
document.body.addEventListener('keypress', function(event) { restrictinput(thelimit,event,theform) }, true);
document.body.addEventListener('keyup', function(event) { countlimit(thelimit,event,theform) }, true);
}
}
</script>
</head>
<body>
<form name="mail_form" method="post" action="<?=$PHP_SELF?>" onSubmit="return verifSelection()">
<div align="center">
<p><font color="#FF0000">comment faire pour :</font></p>
<p><font color="#FF0000">1</font><font color="#FF0000"><strong> - Vérifier
le <font size="+2">nombre de mots</font> dans les zônes concernées (si possible
avec un 'compte à rebours'ou une alerte)</strong> 2</font><font color="#FF0000"><strong>
- Vérifier le <font size="+2">nombre de caractères</font> dans les
zônes concernées (si possible avec un 'compte à rebours'ou une alerte )</strong></font><font color="#FF0000">
cela fonctionne sur une ligne mais pas sur la deuxième !!! même
en recopiant le même code ! 3 - n'accepter que des adresses mail valides
dans les champs d'adresse (je ne sais pas si le procédé fonctionne
bien !) </font></p>
</div>
<p align="center">
<p align="center">
<?php
if ($message_remerciement) {
echo("<font face=Verdana size=2>");
echo(stripslashes($message_remerciement));
echo("</p></body></html>");
exit();
}
?>
<p align="center"><strong>Attention ! tous les champs sont obligatoires ...
</strong>
<table width="566" border="0" align="center">
<p align="center"> </p>
<tr>
<td><font face="Verdana" size="2"><strong>Pour le Site:</strong> </font></td>
</tr>
<tr>
<td><p><font size="2" face="Verdana">Titre du Site</font></p></td>
<td><input name="champ1" type="text">
maximum 20 mots (Les majuscules ne sont pas recommandées)</td>
</tr>
<tr>
<td><font face="Verdana" size="2">URL du site</font></td>
<td><input name="champ2" type="text" size=100 ></td>
</tr>
<tr>
<td><font face="Verdana" size="2">Description courte</font></td>
<td><input id="champ3txtlimiter" name="champ3" type="text" size=100 maxlength=150>
maximum 150 caractères (tout caractère ou espace compte pour 1)
<script>
displaylimit("Limite","champ3txtlimiter",150)
</script></td>
</tr>
<tr>
<td><font face="Verdana" size="2">Description longue</font></td>
<td><input id="champ4txtlimiter" name="champ4" type="text" size=100 maxlength=150>
maximum 200 caractères (tout caractère ou espace compte
pour 1)</tr>
<tr>
<td><font face="Verdana" size="2">Mots clefs 1</font></td>
<td><input name="champ5" type="text" size=100 maxlength=150>
15 mots maximum, séparés par des " , " Ne pas mettre d'espaces
avant ou après les virgules.</td>
</tr>
<tr>
<td><font face="Verdana" size="2">Mots clefs 2</font></td>
<td><input name="champ6" type="text" size=100 maxlength=150>
maximum 200 mots, séparés par des " , " Ne pas mettre d'espaces
avant ou après les virgules.</td>
</tr>
<tr>
<td>La catégorie dans laquelle on veut placer le site</td>
<td><input name="champ7" type="text" size=80 maxlength=100></td>
</tr>
<tr>
<td>Eventuellement sous-catégorie</td>
<td><input name="champ8" type="text" size=80 maxlength=100></td>
</tr>
<tr>
<td><strong>Pour la Personne :</strong></td>
<td> </td>
</tr>
<tr>
<td>prénom</td>
<td><input name="champ9" type="text"></td>
</tr>
<tr>
<td>nom</td>
<td><input name="champ10" type="text"></td>
</tr>
<tr>
<td>M ou Mme</td>
<td><input name="champ11" type="text"></td>
</tr>
<tr>
<td>titre</td>
<td><input name="champ12" type="text"></td>
</tr>
<tr>
<td><strong>Pour le Webmaster :</strong></td>
<td> </td>
</tr>
<tr>
<td>nom et prénom</td>
<td><input name="champ13" type="text"></td>
</tr>
<tr>
<td>adresse email pour les soumissions</td>
<td><input name="champ14" type="text">
attention ! bien lire les recommandations pour ce choix !</td>
</tr>
<tr>
<td><strong>adresse email pour contact</strong></td>
<td><input name="champ15" type="text">
<strong>adresse 'normale' : important pour le suivi !</strong></td>
</tr>
<tr>
<td>mot de passe</td>
<td><input name="champ16" type="text">
choisi pour les soumissions</td>
</tr>
<tr>
<td><strong>Pour la ‘Compagnie’.</strong></td>
<td>(Dans cette catégorie, l’on peut ignorer ou refuser certaines lignes
en mettant simplement un ‘ – ‘, sauf pour l'adresse e-mail : remettez
la même que pour les soumissions )</td>
</tr>
<tr>
<td>société</td>
<td><input name="champ17" type="text"></td>
</tr>
<tr>
<td>pays</td>
<td><input name="champ18" type="text"></td>
</tr>
<tr>
<td>rue</td>
<td><input name="champ19" type="text"></td>
</tr>
<tr>
<td>code postal</td>
<td><input name="champ20" type="text"></td>
</tr>
<tr>
<td>ville</td>
<td><input name="champ21" type="text"></td>
</tr>
<tr>
<td>email général</td>
<td><input name="champ22" type="text"></td>
</tr>
<tr>
<td>téléphone</td>
<td><input name="champ23" type="text"></td>
</tr>
<tr>
<td>fax</td>
<td><input name="champ24" type="text"></td>
</tr>
<tr>
<td>portable</td>
<td><input name="champ25" type="text"></td>
</tr>
<tr>
<td>numéro vert</td>
<td><input name="champ26" type="text"></td>
</tr>
<tr>
<td>produits</td>
<td><input name="champ27" type="text"></td>
</tr>
<tr>
<td width><font face="Verdana" size="2">E MAIL</font></td>
<td width><input name="zone_email" type="text">
Le même que celui choisi pour les soumissions .</td>
</tr>
<tr>
<td valign="top"><font face="Verdana" size="2">message personnel complèmentaire
: </font></td>
<td><textarea name="zone_texte" cols="50" rows="10"></textarea></td>
</tr>
<tr>
<td valign="top"><input name="nbre_champs_texte" type="hidden" id="nbre_champs_texte" value="27">
<input name="nbre_zones_texte" type="hidden" value="1"> <input name="nbre_zone_email" type="hidden" value="1">
<input name="titre_champ1" type="hidden" value="Titre du Site">
<input name="titre_champ2" type="hidden" value="URL du site">
<input name="titre_champ3" type="hidden" value="Description courte">
<input name="titre_champ4" type="hidden" value="Description longue">
<input name="titre_champ5" type="hidden" value="Mots clefs 1">
<input name="titre_champ6" type="hidden" value="Mots clefs 2">
<input name="titre_champ7" type="hidden" value="La catégorie dans laquelle on veut placer le site">
<input name="titre_champ8" type="hidden" value="Eventuellement sous-catégorie">
<input name="titre_champ9" type="hidden" value="prénom">
<input name="titre_champ10" type="hidden" value="nom">
<input name="titre_champ11" type="hidden" value="M ou Mme">
<input name="titre_champ12" type="hidden" value="titre">
<input name="titre_champ13" type="hidden" value="nom et prénom">
<input name="titre_champ14" type="hidden" value="adresse email">
<input name="titre_champ15" type="hidden" value="adresse email pour contact">
<input name="titre_champ16" type="hidden" value="mot de passe">
<input name="titre_champ17" type="hidden" value="société">
<input name="titre_champ18" type="hidden" value="pays">
<input name="titre_champ19" type="hidden" value="rue">
<input name="titre_champ20" type="hidden" value="code postal">
<input name="titre_champ21" type="hidden" value="ville">
<input name="titre_champ22" type="hidden" value="email général">
<input name="titre_champ23" type="hidden" value="téléphone">
<input name="titre_champ24" type="hidden" value="fax">
<input name="titre_champ25" type="hidden" value="portable">
<input name="titre_champ26" type="hidden" value="numéro vert :">
<input name="titre_champ26" type="hidden" value="produits :">
<input name="titre_email" type="hidden" value="E MAIL">
<input name="titre_zone" type="hidden" value="message personnel complèmentaire"></td>
<td><div align="center">
<input type="reset" name="Reset" value="Effacer">
<input type="submit" name="envoi" value="Envoyer">
</div></td>
</tr>
</table>
<div align="center"></div>
</form>
</body>
</html>
1 - Vérifier le nombre de mots dans les zônes concernées (si possible avec un 'compte à rebours'ou une alerte) 2 - Vérifier le nombre de caractères dans les zônes concernées (si possible avec un 'compte à rebours'ou une alerte ) cela fonctionne sur une ligne mais pas sur la deuxième !!! même en recopiant le même code ! 3 - n'accepter que des adresses mail valides dans les champs d'adresse (je ne sais pas si le procédé fonctionne bien !)
(il est toujours à la même adresse:http://refok.free.fr/super/pages/essai_formulaire.php)
voici le code:
<?php
// FAUT IL RECHANGER LES 'votresite.com" ?????
function email($destinataire, $sujet , $messtxt, $messhtml,$mailfrom,$namefrom="votresite.com")
{
$boundary = "_".md5 (uniqid (rand()));
$entete = "MIME-Version: 1.0\n";
$entete .= "X-Sender: <www.votresite.com>\n";
$entete .= "X-Mailer: PHP\n";
$entete .= "X-auth-smtp-user: webmaster@votresite.com \n";
$entete .= "X-abuse-contact: abuse@votresite.com \n";
$entete .= "Reply-to: $namefrom <$mailfrom>\n";
$entete .= "From:$namefrom <$mailfrom>\n";
//www-data@planet-work.com , dépend de votre hebergeur, envoyé vous un mail depuis la fonction mail sur une adresse non filtrée pour récuperer cette valeur
$entete .= "Content-Type: multipart/alternative; boundary=\"$boundary\"";
$message = "--" . $boundary . "\n";
$message.= "This is a multi-part message in MIME format.\n\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message .= $messtxt;
$message .= "\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message .= str_replace("=","=3D",$messhtml);
$message .= "\n\n";
return mail($destinataire, $sujet, $message, $entete);
}
// correction - - $email_dest = "bg62@free.fr";
$email_dest = "bg62@laposte.net";
if ($_POST['envoi']) {
$message_remerciement = "merci de votre demande je vous réponds au plus vite sur votre adresse mail";
$subject = "depuis refok";
$partie_entete = "<html><head>
<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
</head>
<body bgcolor=#FFFFFF>";
for ($a=1; $a<= $_POST['nbre_champs_texte']; $a++) {
$partie_champs_texte .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_champ'.$a] . " = " . $_POST['champ'.$a] . "</font><br>";
}
if ($_POST['nbre_zone_email'] != 0) {
$partie_zone_email = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_email'] . " = " . $_POST['zone_email'] . "</font><br>";
}
if ($_POST['nbre_zones_texte'] != 0) {
$partie_zone_texte = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_zone'] . " = " . $_POST['zone_texte'] . "</font><br>";
$partie_zone_texte = stripslashes($partie_zone_texte);
}
$fin = "</body></html>";
$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_zone_texte . $fin;
// Send the e-mail
email($email_dest,$subject,$sortie,$sortie,$_POST['champ14'],$_POST['champ15']);
// LES CHAMPS SONT BONS ICI ??????????????????????????????????????
} // Closing if edit
?><html>
<head>
<title>envoi de formulaire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript"><!-- Hide script from older browsers
//ORIGINAL<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
function checkwords(val1,maxlength){
var maxwords=maxlength
var temp=val1.split(" ")
if (temp.length>maxwords){
return false
}
else
{
return true;
}
}
//function verifSelection() {
//if (checkwords(mail_form.champ1.value,20)==false)
//{
// alert ("trop de mots pour le titre du site")
// return false;
//}
// PEUT ON METTRE UN TRUC DANS CE GENRE POUR VERIFIER LES AUTRES SELECTIONS ???? ET COMMENT INSERER ???
//function verifSelection2() {
//if (checkwords(mail_form.champ1.value,15)==false)
//{
//alert ("trop de mots pour MOTS CLEFS 1")
//return false;
//}
//function verifSelection3() {
//if (checkwords(mail_form.champ1.value,200)==false)
//{
//alert ("trop de mots pour MOTS CLEFS 2")
//return false;
//}
if (checkwords(mail_form.champ1.value,20)==false)
{
alert ("trop de mots pour le titre du site")
return false;
}
if (checkwords(mail_form.champ5.value,15)==false)
{
alert ("trop de mots pour les Mots clefs 1")
return false;
}
if (checkwords(mail_form.champ6.value,200)==false)
{
alert ("trop de mots pour les Mots clefs 2")
return false;
}
if (mail_form.champ1.value == "") {
alert("non rempli !")
return false
} if (mail_form.champ2.value == "") {
alert("non rempli !")
return false
} if (mail_form.champ3.value == "") {
alert("non rempli !")
return false
} if (mail_form.champ4.value == "") {
alert("non rempli !")
return false
} if (mail_form.champ5.value == "") {
alert("non rempli !")
return false
}} if (mail_form.champ6.value == "") {
alert("non rempli !")
return false
} if (mail_form.zone_email.value == "") {
alert("non rempli !")
return false
}
invalidChars = " /:,;'"
for (i=0; i<invalidChars.length; i++) { // does it contain any invalid characters?
badChar = invalidChars.charAt(i)
if (mail_form.zone_email.value.indexOf(badChar,0) > -1) {
alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.")
mail_form.zone_email.focus()
return false
}
}
atPos = mail_form.zone_email.value.indexOf("@",1) // there must be one "@" symbol
if (atPos == -1) {
alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}
if (mail_form.zone_email.value.indexOf("@",atPos+1) != -1) { // and only one "@" symbol
alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}
periodPos = mail_form.zone_email.value.indexOf(".",atPos)
if (periodPos == -1) { // and at least one "." after the "@"
alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}
if (periodPos+3 > mail_form.zone_email.value.length) { // must be at least 2 characters after the
alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}if (mail_form.zone_texte.value == "") {
alert("non rempli !")
return false
} } // Fin de la fonction
</script>
<script type="text/javascript">
var ns6=document.getElementById&&!document.all
function restrictinput(maxlength,e,placeholder){
if (window.event&&event.srcElement.value.length>=maxlength)
return false
else if (e.target&&e.target==eval(placeholder)&&e.target.value.length>=maxlength){
var pressedkey=/[a-zA-Z0-9\.\,\/]/
if (pressedkey.test(String.fromCharCode(e.which)))
e.stopPropagation()
}
}
function countlimit(maxlength,e,placeholder){
var theform=eval(placeholder)
var lengthleft=maxlength-theform.value.length
var placeholderobj=document.all? document.all[placeholder] : document.getElementById(placeholder)
if (window.event||e.target&&e.target==eval(placeholder)){
if (lengthleft<0)
theform.value=theform.value.substring(0,maxlength)
placeholderobj.innerHTML=lengthleft
}
}
function displaylimit(thename, theid, thelimit){
var theform=document.getElementById(theid)
var limit_text='<b><span id="'+theform.toString()+'">'+thelimit+'</span></b> characteres Maximum.'
if (document.all||ns6)
document.write(limit_text)
if (document.all){
eval(theform).onkeypress=function(){ return restrictinput(thelimit,event,theform)}
eval(theform).onkeyup=function(){ countlimit(thelimit,event,theform)}
}
else if (ns6){
document.body.addEventListener('keypress', function(event) { restrictinput(thelimit,event,theform) }, true);
document.body.addEventListener('keyup', function(event) { countlimit(thelimit,event,theform) }, true);
}
}
</script>
</head>
<body>
<form name="mail_form" method="post" action="<?=$PHP_SELF?>" onSubmit="return verifSelection()">
<div align="center">
<p><font color="#FF0000">comment faire pour :</font></p>
<p><font color="#FF0000">1</font><font color="#FF0000"><strong> - Vérifier
le <font size="+2">nombre de mots</font> dans les zônes concernées (si possible
avec un 'compte à rebours'ou une alerte)</strong> 2</font><font color="#FF0000"><strong>
- Vérifier le <font size="+2">nombre de caractères</font> dans les
zônes concernées (si possible avec un 'compte à rebours'ou une alerte )</strong></font><font color="#FF0000">
cela fonctionne sur une ligne mais pas sur la deuxième !!! même
en recopiant le même code ! 3 - n'accepter que des adresses mail valides
dans les champs d'adresse (je ne sais pas si le procédé fonctionne
bien !) </font></p>
</div>
<p align="center">
<p align="center">
<?php
if ($message_remerciement) {
echo("<font face=Verdana size=2>");
echo(stripslashes($message_remerciement));
echo("</p></body></html>");
exit();
}
?>
<p align="center"><strong>Attention ! tous les champs sont obligatoires ...
</strong>
<table width="566" border="0" align="center">
<p align="center"> </p>
<tr>
<td><font face="Verdana" size="2"><strong>Pour le Site:</strong> </font></td>
</tr>
<tr>
<td><p><font size="2" face="Verdana">Titre du Site</font></p></td>
<td><input name="champ1" type="text">
maximum 20 mots (Les majuscules ne sont pas recommandées)</td>
</tr>
<tr>
<td><font face="Verdana" size="2">URL du site</font></td>
<td><input name="champ2" type="text" size=100 ></td>
</tr>
<tr>
<td><font face="Verdana" size="2">Description courte</font></td>
<td><input id="champ3txtlimiter" name="champ3" type="text" size=100 maxlength=150>
maximum 150 caractères (tout caractère ou espace compte pour 1)
<script>
displaylimit("Limite","champ3txtlimiter",150)
</script></td>
</tr>
<tr>
<td><font face="Verdana" size="2">Description longue</font></td>
<td><input id="champ4txtlimiter" name="champ4" type="text" size=100 maxlength=150>
maximum 200 caractères (tout caractère ou espace compte
pour 1)</tr>
<tr>
<td><font face="Verdana" size="2">Mots clefs 1</font></td>
<td><input name="champ5" type="text" size=100 maxlength=150>
15 mots maximum, séparés par des " , " Ne pas mettre d'espaces
avant ou après les virgules.</td>
</tr>
<tr>
<td><font face="Verdana" size="2">Mots clefs 2</font></td>
<td><input name="champ6" type="text" size=100 maxlength=150>
maximum 200 mots, séparés par des " , " Ne pas mettre d'espaces
avant ou après les virgules.</td>
</tr>
<tr>
<td>La catégorie dans laquelle on veut placer le site</td>
<td><input name="champ7" type="text" size=80 maxlength=100></td>
</tr>
<tr>
<td>Eventuellement sous-catégorie</td>
<td><input name="champ8" type="text" size=80 maxlength=100></td>
</tr>
<tr>
<td><strong>Pour la Personne :</strong></td>
<td> </td>
</tr>
<tr>
<td>prénom</td>
<td><input name="champ9" type="text"></td>
</tr>
<tr>
<td>nom</td>
<td><input name="champ10" type="text"></td>
</tr>
<tr>
<td>M ou Mme</td>
<td><input name="champ11" type="text"></td>
</tr>
<tr>
<td>titre</td>
<td><input name="champ12" type="text"></td>
</tr>
<tr>
<td><strong>Pour le Webmaster :</strong></td>
<td> </td>
</tr>
<tr>
<td>nom et prénom</td>
<td><input name="champ13" type="text"></td>
</tr>
<tr>
<td>adresse email pour les soumissions</td>
<td><input name="champ14" type="text">
attention ! bien lire les recommandations pour ce choix !</td>
</tr>
<tr>
<td><strong>adresse email pour contact</strong></td>
<td><input name="champ15" type="text">
<strong>adresse 'normale' : important pour le suivi !</strong></td>
</tr>
<tr>
<td>mot de passe</td>
<td><input name="champ16" type="text">
choisi pour les soumissions</td>
</tr>
<tr>
<td><strong>Pour la ‘Compagnie’.</strong></td>
<td>(Dans cette catégorie, l’on peut ignorer ou refuser certaines lignes
en mettant simplement un ‘ – ‘, sauf pour l'adresse e-mail : remettez
la même que pour les soumissions )</td>
</tr>
<tr>
<td>société</td>
<td><input name="champ17" type="text"></td>
</tr>
<tr>
<td>pays</td>
<td><input name="champ18" type="text"></td>
</tr>
<tr>
<td>rue</td>
<td><input name="champ19" type="text"></td>
</tr>
<tr>
<td>code postal</td>
<td><input name="champ20" type="text"></td>
</tr>
<tr>
<td>ville</td>
<td><input name="champ21" type="text"></td>
</tr>
<tr>
<td>email général</td>
<td><input name="champ22" type="text"></td>
</tr>
<tr>
<td>téléphone</td>
<td><input name="champ23" type="text"></td>
</tr>
<tr>
<td>fax</td>
<td><input name="champ24" type="text"></td>
</tr>
<tr>
<td>portable</td>
<td><input name="champ25" type="text"></td>
</tr>
<tr>
<td>numéro vert</td>
<td><input name="champ26" type="text"></td>
</tr>
<tr>
<td>produits</td>
<td><input name="champ27" type="text"></td>
</tr>
<tr>
<td width><font face="Verdana" size="2">E MAIL</font></td>
<td width><input name="zone_email" type="text">
Le même que celui choisi pour les soumissions .</td>
</tr>
<tr>
<td valign="top"><font face="Verdana" size="2">message personnel complèmentaire
: </font></td>
<td><textarea name="zone_texte" cols="50" rows="10"></textarea></td>
</tr>
<tr>
<td valign="top"><input name="nbre_champs_texte" type="hidden" id="nbre_champs_texte" value="27">
<input name="nbre_zones_texte" type="hidden" value="1"> <input name="nbre_zone_email" type="hidden" value="1">
<input name="titre_champ1" type="hidden" value="Titre du Site">
<input name="titre_champ2" type="hidden" value="URL du site">
<input name="titre_champ3" type="hidden" value="Description courte">
<input name="titre_champ4" type="hidden" value="Description longue">
<input name="titre_champ5" type="hidden" value="Mots clefs 1">
<input name="titre_champ6" type="hidden" value="Mots clefs 2">
<input name="titre_champ7" type="hidden" value="La catégorie dans laquelle on veut placer le site">
<input name="titre_champ8" type="hidden" value="Eventuellement sous-catégorie">
<input name="titre_champ9" type="hidden" value="prénom">
<input name="titre_champ10" type="hidden" value="nom">
<input name="titre_champ11" type="hidden" value="M ou Mme">
<input name="titre_champ12" type="hidden" value="titre">
<input name="titre_champ13" type="hidden" value="nom et prénom">
<input name="titre_champ14" type="hidden" value="adresse email">
<input name="titre_champ15" type="hidden" value="adresse email pour contact">
<input name="titre_champ16" type="hidden" value="mot de passe">
<input name="titre_champ17" type="hidden" value="société">
<input name="titre_champ18" type="hidden" value="pays">
<input name="titre_champ19" type="hidden" value="rue">
<input name="titre_champ20" type="hidden" value="code postal">
<input name="titre_champ21" type="hidden" value="ville">
<input name="titre_champ22" type="hidden" value="email général">
<input name="titre_champ23" type="hidden" value="téléphone">
<input name="titre_champ24" type="hidden" value="fax">
<input name="titre_champ25" type="hidden" value="portable">
<input name="titre_champ26" type="hidden" value="numéro vert :">
<input name="titre_champ26" type="hidden" value="produits :">
<input name="titre_email" type="hidden" value="E MAIL">
<input name="titre_zone" type="hidden" value="message personnel complèmentaire"></td>
<td><div align="center">
<input type="reset" name="Reset" value="Effacer">
<input type="submit" name="envoi" value="Envoyer">
</div></td>
</tr>
</table>
<div align="center"></div>
</form>
</body>
</html>
8 août 2006 à 16:55
je sais bien que j'ai l'air d'insister mais je pensais que sur un forum comme celui-ci on pouvait y trouver de l'aide ... (du moins c'est toujours ce que j'au eu auparavant ..)
j'ai même cherché sur google et sur javascript ... mais ce n'est jamais pile ce que je veux, ou alors je ne suis pas du niveau pour faire l'adaptation !
sinon je crois bien que je me débrouillerais seul si j'en était capable
amitiés
b g
8 août 2006 à 16:53
Bref, dans ces cas la ou tu fais un topic pour que quelqu'un te mâches intégralement ton truc parce que t'a la flemme de chercher par toi même, je craque ... Et c'est en recherchant, en essayant d'intégrer des trucs faits par des "bons" qu'on progresse soi même ... Pas en copiant/collant sans comprendre des bouts de script que des inconnus te pondent.
Aller, courage et cherche par toi même, tu progressera 100 fois plus vite !
8 août 2006 à 17:14
je ne fais que cela, et en plus en bas débit ... pour te dire que pas simple !
@+
b g
8 août 2006 à 18:27
j'ai trouvé un compte à rebours pour les caractères, mais pas pour les mots ...
si tu as un lien ?
MAIS j'ai surtout un gros problème, qui doit être dans la source php, le message par de mon adresse chez free pour arriver à une autre (à moi aussi !!!) donc pas moyen de répondre à l'expéditeur ..
et là je coince !
alor si tu peux m'indiquer, au moins où est cette erreur et comment le corriger, merci !
@+
b g
9 août 2006 à 09:11
Quant à l'adresse d'expédition, c'est toujours par le serveur mail de l'hébergeur du site que ça passe, donc pas moyen de répondre. Mais si dans ton message tu envoies le mail d e l'utilisateur, avec une recherche en PHP sur "expéditeur:" par exemple, tu peux récupérer l'adresse mail fournie, et ainsi répondre.
Pour faire une telle recherche, je ne vois que preg_match_all (et oui, encore celle la !) qui te permet d'isoler les éléments souhaités !