begin process at 2010 03 22 16:58:48
  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


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

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 : 2,948 sec (4)

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