bg62
Messages postés23590Date d'inscriptionsamedi 22 octobre 2005StatutModérateurDernière intervention15 avril 2024
-
14 août 2006 à 10:27
bg62
Messages postés23590Date d'inscriptionsamedi 22 octobre 2005StatutModérateurDernière intervention15 avril 2024
-
15 août 2006 à 18:15
bonjour, je me suis lancé dans l'élaboration d'un formulaire (en php mais avec aussi du javascript) et je rame complètement, malgré toutes les astuces que j'ai pues trouver ! alors : SOS !
Je viens encore de faire 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 à cette 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")
{
$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";
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;
}
for (i=0; i -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
}
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=' '+thelimit+' 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);
}
}
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 !)
<?php
if ($message_remerciement) {
echo("");
echo(stripslashes($message_remerciement));
echo("
</html>");
exit();
}
?>
Attention ! tous les champs sont obligatoires ...
Pour le Site: ,
----
Titre du Site,
maximum 20 mots (Les majuscules ne sont pas recommandées),
----
URL du site,
,
----
Description courte,
maximum 150 caractères (tout caractère ou espace compte pour 1)
<script>
displaylimit("Limite","champ3txtlimiter",150)
</script>,
----
Description longue,
maximum 200 caractères (tout caractère ou espace compte
pour 1)
----, Mots clefs 1</td>
15 mots maximum, séparés par des " , " Ne pas mettre d'espaces
avant ou après les virgules.,
----
Mots clefs 2,
maximum 200 mots, séparés par des " , " Ne pas mettre d'espaces
avant ou après les virgules.,
----
La catégorie dans laquelle on veut placer le site,
,
----
Eventuellement sous-catégorie,
,
----
Pour la Personne :,
,
----
prénom,
,
----
nom,
,
----
M ou Mme,
,
----
titre,
,
----
Pour le Webmaster :,
,
----
nom et prénom,
,
----
adresse email pour les soumissions,
attention ! bien lire les recommandations pour ce choix !,
----
adresse email pour contact,
adresse 'normale' : important pour le suivi !,
----
mot de passe,
choisi pour les soumissions,
----
Pour la ‘Compagnie’.,
(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 ),
----
société,
,
----
pays,
,
----
rue,
,
----
code postal,
,
----
ville,
,
----
email général,
,
----
téléphone,
,
----
fax,
,
----
portable,
,
----
numéro vert,
,
----
produits,
,
----
E MAIL,
Le même que celui choisi pour les soumissions .,