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
bonjour,
petit à petit ça vient ....
j'ai créé un formulaire en php, mais il reste des amélioratons, que je ne sais pas faire, à y apporter ... alors : sos !
voici l'adresse de la page :
http://refok.free.fr/super/pages/essai_formulaire.php
comme il est noté en haut de page :
1 - agrandir les zônes de saisie 2 - Vérifier le nombre de mots ou de caractères des zônes concernées (si possible avec un 'compte à rebours') 3 - n'accepter que des adresses mail valides dans les champs d'adresse et 4 - je voudrais changer l'adresse du destinataire (car là elle se fait d'office par rapport à free)
merci à l'avance
b g
A voir également:

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
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 ...
0
bg62 Messages postés 23671 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 21 janvier 2025 2 393
8 août 2006 à 16:55
bonjour
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
0
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:53
J'aide ... quand les personnes ont un minimum cherché par elle même auparavant ! Ce lien (editeurjavascript) je te l'ai déja donné plusieurs fois ... Les scripts n'ont besoin d'aucune adaptation (ceux sur l'editeurjavascript en tout cas) et corrrspondent PARFAITEMENT à ce que tu veux faire ...

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 !
0
bg62 Messages postés 23671 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 21 janvier 2025 2 393 > Darshu Messages postés 303 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 3 avril 2008
8 août 2006 à 17:14
je n'ai pas du tout la flemme de chercher, au contraire !
je ne fais que cela, et en plus en bas débit ... pour te dire que pas simple !
@+
b g
0
bg62 Messages postés 23671 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 21 janvier 2025 2 393 > Darshu Messages postés 303 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 3 avril 2008
8 août 2006 à 18:27
je suis toujours dessus comme tu peux le voir
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
0
Darshu Messages postés 303 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 3 avril 2008 64 > Darshu Messages postés 303 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 3 avril 2008
9 août 2006 à 09:11
Oui en effet, on ne peut pas compter les mots ! Je te l'avais dis dès le début. Un moyen de "tricher" peut être de compter les espaces, mais ça mériterait réflexion.

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 !
0
Utilisateur anonyme
10 août 2006 à 13:19
Pour compter le nombre de mots en javascript
variable.split(/[ ,?!;:()]/g).length
0
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
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
0
Utilisateur anonyme
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
0
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
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&ocirc;nes de saisie <strong>2
- V&eacute;rifier le nombre de mots ou de caract&egrave;res des z&ocirc;nes
concern&eacute;es (si possible avec un 'compte &agrave; rebours')</strong>
3 - n'accepter que des adresses mail valides dans les champs d'adresse 4-
&agrave; la r&eacute;ception les deux adresses (exp&eacute;diteur et destinataire)
sont ls miennes et je ne peux pas r&eacute;pondre &agrave; l'exp&eacute;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&egrave;res</td>
</tr>
<tr>
<td><font face="Verdana" size="2">Description longue</font></td>
<td><input name="champ4" type="text">
maximum 200 caract&egrave;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 &#8216;double&#8217; 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&eacute;gorie dans laquelle on veut placer le site</td>
<td><input name="champ7" type="text"></td>
</tr>
<tr>
<td>Eventuellement sous-cat&eacute;gorie</td>
<td><input name="champ8" type="text"></td>
</tr>
<tr>
<td><strong>Pour la Personne :</strong></td>
<td> </td>
</tr>
<tr>
<td>pr&eacute;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&eacute;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 &#8216;Compagnie&#8217;.</strong></td>
<td>(Dans cette cat&eacute;gorie, l&#8217;on peut ignorer ou refuser certaines
lignes en mettant simplement un &#8216; &#8211; &#8216;)</td>
</tr>
<tr>
<td>soci&eacute;t&eacute;</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&eacute;n&eacute;ral</td>
<td><input name="champ22" type="text"></td>
</tr>
<tr>
<td>t&eacute;l&eacute;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&eacute;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&egrave;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&eacute;gorie dans laquelle on veut placer le site">
<input name="titre_champ8" type="hidden" value="Eventuellement sous-cat&eacute;gorie">
<input name="titre_champ9" type="hidden" value="pr&eacute;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&eacute;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&eacute;t&eacute;">
<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&eacute;n&eacute;ral">
<input name="titre_champ23" type="hidden" value="t&eacute;l&eacute;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&eacute;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&egrave;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>
0
Utilisateur anonyme
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.
0

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
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
0
Utilisateur anonyme
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).
0
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
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
0
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
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&egrave;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&egrave;me !!! m&ecirc;me
en recopiant le m&ecirc;me code ! 3 - n'accepter que des adresses mail valides
dans les champs d'adresse (je ne sais pas si le proc&eacute;d&eacute; 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&egrave;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&egrave;res (tout caract&egrave;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 &quot; , &quot; Ne pas mettre d'espaces
avant ou apr&egrave;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 &quot; , &quot; Ne pas mettre d'espaces
avant ou apr&egrave;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&ecirc;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>
0