Aller au contenu

Nabiot

Membre
  • Compteur de contenus

    8
  • Inscrit(e) le

  • Dernière visite

Réputation sur la communauté

0 Neutre

Information du profil

  • Société
    MDFI
  1. Nabiot

    Envoi de formulaire

    Pour resumer : Le robot qui confirme depuis la page de formulaire n'est pas la cause car le mail recu devrait etre CONTENT: TYPE -> INFO contact -> title -> phone -> email -> company -> Country -> -Select your country- remarks -> Submit -> Submit END Mais par contre l'envoi du formulaire vient du fait qu'un visiteur, robot probablement, passe sur la page action.php directement, sans etre passe par une page de formulaire, d'ou le fait que le mail recu est totalement vide. Pas de champs transmis par la page precedente.... CONTENT: END Ok, la solution n'est finalement pas tres difficile, encore merci de vous etre penche sur mon cas...
  2. Nabiot

    Envoi de formulaire

    voici les codes complets : Pour le formulaire.htm CODE #####La partie scripts dans le <head> <script type="text/JavaScript"> <!-- function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers.document); if(!x && d.getElementById) x=d.getElementById(n); return x; } function MM_validateForm() { //v4.0 var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments; for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args); if (val) { nm=val.name; if ((val=val.value)!="") { if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@'); if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n'; } else if (test!='R') { num = parseFloat(val); if (isNaN(val)) errors+='- '+nm+' must contain a number.\n'; if (test.indexOf('inRange') != -1) { p=test.indexOf(':'); min=test.substring(8,p); max=test.substring(p+1); if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n'; } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; } } if (errors) alert('The following error(s) occurred:\n'+errors); document.MM_returnValue = (errors == ''); } function MM_showHideLayers() { //v9.0 var i,p,v,obj,args=MM_showHideLayers.arguments; for (i=0; i<(args.length-2); i+=3) with (document) if (getElementById && ((obj=getElementById(args))!=null)) { v=args[i+2]; if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; } obj.visibility=v; } } //--> </script> <script src="../quality_control_assembling_china/scripts/AC_RunActiveContent.js" type="text/javascript"></script #####la partie formulaire <td valign="top"><form method="POST" action="action.php" name="info" onSubmit="MM_validateForm('contact','','R','phone','', 'NisNum','email','','RisEmail','company','','R'); return document.MM_returnValue"> <input type="hidden" name="TYPE" value="INFO"> <table width="480" border="0" cellpadding="3" cellspacing="0" class="fonts01"> <tr> <tr> <td> </td> </tr> <tr> <td><strong>Would you like us to call you ?</strong> Clic here for an <a href="call.htm" class="link07"> <strong>IMMEDIATE CALL REQUEST</strong></a></td> </tr> <tr> <td> </td> </tr> <td colspan="2" valign="top"><table width="480" border="0" cellpadding="3" cellspacing="1"> Please complete the form below and we will answer you <strong>as soon as possible.</strong> <br> <i>* denotes required information.</i> <tr> <td> </td> </tr> <tr> <td width="92" align="right">Salutation</td> <td width="377" valign="baseline"><input type="radio" name="salutation" value="Mr"> Mr. <input type="radio" name="Salutation" value="Ms"> Ms. <input type="radio" name="Salutation" value="Mrs" > Mrs. </td> </tr> <tr> <td align="right"><span class="formFont02"><strong>*</strong></span>Name</td> <td valign="baseline"><input type="text" name="contact" size="30" maxlength="50"></td> </tr> <tr> <td align="right">Job Title</td> <td valign="baseline"><input type="text" name="title" size="30" maxlength="30" ></td> </td> </tr> <tr> <td align="right">Telephone</td> <td valign="baseline"><input type="text" name="phone" size="30" maxlength="30" ></td> </tr> <tr> <td align="right"><span class="formFont02"><strong>*</strong></span>E-mail</td> <td valign="baseline"><input type="text" name="email" size="30" maxlength="60" ></td> </tr> <tr> <td colspan="2" valign="top"><table width="480" border="0" cellpadding="3" cellspacing="1"> <tr> <td width="92" align="right"><span class="formFont02"><strong>*</strong></span>Company</td> <td width="377" valign="baseline"><input type="text" name="company" size="30" maxlength="50" ></td> </tr> <tr> <td align="right"><span class="formFont02"></span>Country</td> <td valign="baseline"><select name="Country" class="fonts01"> <option selected="selected">-Select your country- </option> <option value="Afghanistan">Afghanistan</option> ... <option value="Zimbabwe">Zimbabwe </option> </select></td> </tr> <tr> <td align="right"><span class="formFont02"></span>Message</td> <td valign="top"> <div valign="left"> <textarea name="remarks" wrap="VIRTUAL" cols="40" rows="5"></textarea> </div> </td> </tr> <tr> <td colspan="2" align="center" valign="top"><input name="Submit" type="submit" id="Submit" value="Submit" > <input name="Reset" type="reset" id="Reset" value="Reset" ></td> </tr> </table></td> </tr> </table></table></td> </form></td> Je vous rassure ####xxx sont des commentaires que je viens de rajouter sur le post... Voici le AC_RunActiveContent.js CODE //v1.0//Copyright 2006 Adobe Systems, Inc. All rights reserved. function AC_AddExtension(src, ext) { if (src.indexOf('?') != -1) return src.replace(/\?/, ext+'?'); else return src + ext; } function AC_Generateobj(objAttrs, params, embedAttrs) { var str = '<object '; for (var i in objAttrs) str += i + '="' + objAttrs + '" '; str += '>'; for (var i in params) str += '<param name="' + i + '" value="' + params + '" /> '; str += '<embed '; for (var i in embedAttrs) str += i + '="' + embedAttrs + '" '; str += ' ></embed></object>'; document.write(str); } function AC_FL_RunContent(){ var ret = AC_GetArgs ( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" , "application/x-shockwave-flash" ); AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs); } function AC_SW_RunContent(){ var ret = AC_GetArgs ( arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000" , null ); AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs); } function AC_GetArgs(args, ext, srcParamName, classid, mimeType){ var ret = new Object(); ret.embedAttrs = new Object(); ret.params = new Object(); ret.objAttrs = new Object(); for (var i=0; i < args.length; i=i+2){ var currArg = args.toLowerCase(); switch (currArg){ case "classid": break; case "pluginspage": ret.embedAttrs[args] = args[i+1]; break; case "src": case "movie": args[i+1] = AC_AddExtension(args[i+1], ext); ret.embedAttrs["src"] = args[i+1]; ret.params[srcParamName] = args[i+1]; break; case "onafterupdate": case "onbeforeupdate": case "onblur": case "oncellchange": case "onclick": case "ondblClick": case "ondrag": case "ondragend": case "ondragenter": case "ondragleave": case "ondragover": case "ondrop": case "onfinish": case "onfocus": case "onhelp": case "onmousedown": case "onmouseup": case "onmouseover": case "onmousemove": case "onmouseout": case "onkeypress": case "onkeydown": case "onkeyup": case "onload": case "onlosecapture": case "onpropertychange": case "onreadystatechange": case "onrowsdelete": case "onrowenter": case "onrowexit": case "onrowsinserted": case "onstart": case "onscroll": case "onbeforeeditfocus": case "onactivate": case "onbeforedeactivate": case "ondeactivate": case "type": case "codebase": ret.objAttrs[args] = args[i+1]; break; case "width": case "height": case "align": case "vspace": case "hspace": case "class": case "title": case "accesskey": case "name": case "id": case "tabindex": ret.embedAttrs[args] = ret.objAttrs[args] = args[i+1]; break; default: ret.embedAttrs[args] = ret.params[args] = args[i+1]; } } ret.objAttrs["classid"] = classid; if (mimeType) ret.embedAttrs["type"] = mimeType; return ret; } voici la page action.php pour envoye le formulaire CODE <?php $idFormulaire = '-- WEBSITE -- ENG --'; //objet du mail $to = 'guillaume_AT_asiapack.com, sales_AT_asiapack.com, webmaster_AT_asiapack.com'; //destinataires du mail $location = 'thankyou1.htm'; //page de reroutage page pour remerciement $body = "CONTENT: \n\n"; foreach ($_POST as $variable => $value) { $body .= $variable . ' -> ' . $value . "\n\n"; } $body .= "\nEND\n\n Date - " . strftime("%c") . "\n"; $subject = $idFormulaire; $headers = "From: WEBSITE"; _AT_mail($to, $subject, $body, $headers); header('location: ' . $location); foreach($bad_strings as $bad_string) { if(eregi($bad_string, strtolower($str_to_test))) { echo "$bad_string found. Suspected injection attempt - mail not being sent."; exit; } } function contains_newlines($str_to_test) { if(preg_match("/(%0A|%0D|\\n+|\\r+)/i", $str_to_test) != 0) { echo "newline found in $str_to_test. Suspected injection attempt - mail not being sent."; exit; } } ?> Cette page action.php m'a ete fournie par un ami qui m'a dit avoir le mm probleme mais ne pas savoir d'ou cela provient. j'ajoute que je suis un boulet en javascript... merci de votre aide !
  3. Nabiot

    Envoi de formulaire

    je reprecise cela dit que les formulaires qui me sont envoyes par ce biais fonctionnent bien la plupart du temps, mais environ un tiers des formulaires arrivent vides, ce qui est assez penalisant pour un site professionnel ayant pour but d'attirer des contacts... Est ce du a une certaine configuration au niveau du visiteur du site ? Mes tests en local fonctionnent bien, mais je recois de tps en tps des prises de contacts vides des visiteurs du sites...
  4. Nabiot

    Envoi de formulaire

    Hum non desole, trop facile ! 3 champs sont obligatoires. Voici le mail recu qd on remplit juste ces 3 champs : CONTENT: TYPE -> INFO contact -> Guillaume title -> phone -> email -> me_AT_ou.com company -> One More test Country -> -Select your country- remarks -> Submit -> Submit END Date - 06/17/08 06:42:15 Les tests pour verifier que les champs sont corrects sont effectue par ce script sur la page formulaire.htm : CODE <script type="text/JavaScript"><!-- function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers.document); if(!x && d.getElementById) x=d.getElementById(n); return x; } function MM_validateForm() { //v4.0 var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments; for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args); if (val) { nm=val.name; if ((val=val.value)!="") { if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@'); if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n'; } else if (test!='R') { num = parseFloat(val); if (isNaN(val)) errors+='- '+nm+' must contain a number.\n'; if (test.indexOf('inRange') != -1) { p=test.indexOf(':'); min=test.substring(8,p); max=test.substring(p+1); if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n'; } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; } } if (errors) alert('The following error(s) occurred:\n'+errors); document.MM_returnValue = (errors == ''); } function MM_showHideLayers() { //v9.0 var i,p,v,obj,args=MM_showHideLayers.arguments; for (i=0; i<(args.length-2); i+=3) with (document) if (getElementById && ((obj=getElementById(args))!=null)) { v=args[i+2]; if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; } obj.visibility=v; } } //--> </script> desole pour le manque de precisions du premier post. je ne sais ce qu'il faut comme renseignements supplementaires
  5. Nabiot

    Envoi de formulaire

    Bonjour, Je dispose d'un code php me permetttant d'envoyer par email les informations remplies par nos visiteurs sur un formulaire en html. L'envoi des informations se fait grace a la page action.php dont le code est le suivant : CODE <?php $idFormulaire = '-- WEBSITE -- ENG --'; //objet du mail $to = 'webmaster_AT_domaine.com'; //destinataires du mail $location = 'formulaire.htm'; //page de reroutage page pour remerciement $body = "CONTENT: \n\n"; foreach ($_POST as $variable => $value) { $body .= $variable . ' -> ' . $value . "\n\n"; } $body .= "\nEND\n\n Date - " . strftime("%c") . "\n"; $subject = $idFormulaire; $headers = "From: WEBSITE"; _AT_mail($to, $subject, $body, $headers); header('location: ' . $location); foreach($bad_strings as $bad_string) { if(eregi($bad_string, strtolower($str_to_test))) { echo "$bad_string found. Suspected injection attempt - mail not being sent."; exit; } } function contains_newlines($str_to_test) { if(preg_match("/(%0A|%0D|\\n+|\\r+)/i", $str_to_test) != 0) { echo "newline found in $str_to_test. Suspected injection attempt - mail not being sent."; exit; } } ?> voici une partie du code html : <form method="POST" action="action.php" name="info" onSubmit="MM_validateForm('contact','','R','phone','','NisNum','email','','RisEmail','company','','R');return document.MM_returnValue"> <input type="hidden" name="TYPE" value="INFO"> .... <td width="377" valign="baseline"><input type="radio" name="salutation" value="Mr"> ... <input type="text" name="phone" size="30" maxlength="30" > Le probleme est que parfois, le formulaire est envoye vide. lorsque je recoit le mail, les informations du formulaire y sont absentes. Voici un email "vide" type : CONTENT: END Date - 05/16/08 21:06:41 Avez une idee sur l'origine du probleme ? Un debut de reponse ? Une piste a suivre ? Si vous en avez, n'hesitez a m'en faire part svp parce que je ne sais pas du tout d'ou ca peut provenir. Merci d'avance et desole pour le manque d'accent... je ne les ai pas trouves sur les qwerty Nabiot
  6. Bon ok, j'ai fait mon boulet. Je viens de trouver, en regardant bien sur la ou j'aurais du chercher en premier. La bonne config est donc donne sur la doc d'Apache : http://httpd.apache.org/docs/2.2/vhosts/name-based.html #### dans le httpd.conf (et pas besoin d'inclure le vhost.conf du coup) NameVirtualHost *:80 <VirtualHost *:80> ServerName www.monsite.com ServerAlias monsite.com *.monsite.com DocumentRoot "c:/wamp/www/dossier1" </VirtualHost> <VirtualHost *:80> ServerName www.monsite.com.hk ServerAlias monsite.com.hk *.monsite.com.hk DocumentRoot /www/dossier2 </VirtualHost> ##### Au lieu de ma config bien complexe, ceci est tres simple et marche (pour le moment). Si vous avez un avis, n'hesitez pas. Et mm si vous voulez me dire que je suis un boulet, vous pouvez aussi ! Merci rdd, pour les paths, en effet, je pense que c'est mieux d'y mettre des guillemets. Mon erreur etait probablement due au fait que je n'avais pas mis de ServerAlias... et au final, je ne me sers pas des <directory>, ca je ne sais pas trop si je dois les mettre au pas par contre. Merci de votre aide ! Je compte bien revenir de tps en tps sur ce forum fort interessant.
  7. Desole pour le retard. Je me suis rendu compte trop tard que je postais mon msg au mauvais moment... Petit week end de vacances avec un lundi ferie ici (hong kong) ! Voici les bouts de confi qui peuvent vous interesser : ##Dans le httpd.conf## ##le partie qui nous interesse## ServerAdmin guillaume_AT_monsite.com ServerName 202.XX.XX.XX:80 <Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all Satisfy all </Directory> <Directory "C:/wamp/www"> Options Indexes FollowSymLinks AllowOverride all Order Allow,Deny Allow from all </Directory> Include "c:/wamp/apache2/conf/extra/httpd-vhosts.conf" ################## ##dans le httpd-vhosts.conf NameVirtualHost www.monsite.com:80 <VirtualHost www.monsite.com:80> ServerAdmin guillaume_AT_monsite.com DocumentRoot C:/wamp/www/dossier1/ ServerName 202.XX.XX.XX <Directory "C:/wamp/www/dossier1"> Options Indexes FollowSymLinks AllowOverride all Order Allow,Deny Allow from all </Directory> </VirtualHost> NameVirtualHost www.monsite.com.hk:80 <VirtualHost www.monsite.com.hk:80> ServerAdmin guillaume_AT_monsite.com DocumentRoot C:/wamp/www/dossier2/ ServerName 202.XX.XX.XX ## la mm IP qu'avant <Directory "C:/wamp/www/dossier2"> Options Indexes FollowSymLinks AllowOverride all Order Allow,Deny Allow from all </Directory> </VirtualHost> ####### C'est la config qui me parait le plus pret de ce que je veux. Avec celle ci, j'ai une erreur "403 forbidden, pas d'acces". Comment faire pour avoir plusieurs sites differents sur mon serveur ? Est ce un pb dans les option des <Directory> ? Svp, help...
  8. Bonjour, Je galere pas mal... et ca m'amene a decouvrir ce forum qui a l'air fort interessant ! J'ai un Windows XP pro qui me sert de serveur (pas le choix dsl). J'y ai mis un WAMP dessus, le site est en html, simple, uniquement des envois de formulaires en php. Le probleme, c'est que je voudrais pouvoir faire pointer plusieurs nom de domaine sur ce site, mais je galere plus ou moins. J'ai pour l'instant 2 noms de domaines qui pointent sur mon serveur. Je peux donc facilement faire pointer les 2 domaines sur le mm sites, mais comment faire si je veux avoir 2 sites differents ? J'ai bien changer le fichier host de windows, essayer de configurer des virtual host sur apache2, mais a chaque fois, il doit manquer un truc dans la config parce qu'a chaque fois je tombe sur une erreur 404 au pire et au mieux une erreur 403 forbidden. J'ai vu que sur Linux, il y avait une histoire de site-enable nouvelle pour apache2, comment faire l'equivalent sur windows ? Ou alors, je suis un boulet et les configs des anciens apache1.x marchent elles bien et j'aurai oublie une manip ? Merci de votre aide si qq un a une config qui fonctionne bien ! Nabiot
×
×
  • Créer...