begin process at 2010 02 10 07:47:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

formulaire trop complexe pour moi ! sos


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

formulaire trop complexe pour moi ! sos

lundi 14 août 2006 à 10:27:37 | formulaire trop complexe pour moi ! sos

bg62

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: [ Lien ])
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>


  si quelqu'un pouvais m'aider, ou encore mieux le corriger complètement ce serait suprt
@mitiés B G
lundi 14 août 2006 à 23:27:59 | Re : formulaire trop complexe pour moi ! sos

apacheswiss

déjà je te conseillerais de mettre ton code javascript dans un fichier séparer...

et ensuite pour les input..
un truc du genre....

<input name="champ22" type="text" onchange="javascript:onChangeFunction(this);">
etc etc etc
mardi 15 août 2006 à 18:10:07 | Re : formulaire trop complexe pour moi ! sos

bg62

merci mais pourrais-tu être plus précis ?
@mitiés

  B G
mardi 15 août 2006 à 18:15:25 | Re : formulaire trop complexe pour moi ! sos

bg62

attention , merci pour vos explications, mais j'ai bien précisé : je suis débutant (archi débutant ....)
tenez-en compte svp
@mitiés


  B G


Cette discussion est classée dans : mail, form, email, return, false


Répondre à ce message

Sujets en rapport avec ce message

débutant ayant besoin d'un coup de pouce [ par zebigred ] bonjour à tousje suis un tres grand débutant dans le php et j'ai un probleme avec l'envoi de formulaire et la fonction mail. en effet je ne sais pas o Problème de compatibilité de script [ par Chris54 ] Bonjour,J'ai un problème d'execution d'un script javascript sous netscape alors qu'il fonctionne parfaitement sous IE mais je ne sais pas pourquoi.Que prob d'envoi de fomulaire [ par simsgodzilla ] Bonjour!Pourriez vous me dire ce qui cloche dans ce code? il parrait archer à l'execption près que l'envoi ne s'effectue pas...lol // Interface PHP Probleme de verification de champ de formulaire [ par simsgodzilla ] Bonjour!Mon formulaire marche impect sauf qu'il corrige pas les erreurs comme je lui demande...Quelqu'un aurait il une réponse? Merci! // Interface Récup 2 données d'un formulaire --- à l'aide!!!!!! [ par ladafan ] Bonjour tout le monde,J'ai un gros probleme de recup de mes données sur un formulaire...Je voudrai qu'elles me soient envoyées sur mail...Voici la pag """" confirmation de lecture d'email """" [ par vaispeed007 ] bon voila le principale probléme  ki me dérange 1/ g un site PHP/XHTML/CSS/Mysql j'envoie un mail (M) a chak nouvel utilisateur (USER) inscrit bref co Expediteur dans fonction Mail() [ par Bowlest ] Bonjour,J'ai un mini problème: en fait ma fonction mail marche trés bien, mais lorsque je reçois le mail, son expéditeur est "Apache" et non celui que aidez moi pb avec email !! [ par anisbs ] Salut je suis débutant en phpje commence a essayer quelques trucs mais la fonction mail ne fonctionne pas Il me sort un truc comme :Warning: mail(): fonction mail bizarre [ par pouda ] Salut a tousvoila je voudrai faire une mailing liste a partir d'une table nuked klan dans ma base cependant ma fonction mail deconnevoila le codegloba Fonction email [ par milkasoprano ] Bonjour j'ai un petit renseignement a vous demander ! pk ma fonction mail ne fonctionne pas ? je ne recois pas demail ! le site supporte bien la fonct


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales