begin process at 2012 05 28 16:42:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Architecture d'un formulaire client + divers fonctions (email, macros....).


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

Architecture d'un formulaire client + divers fonctions (email, macros....).

jeudi 3 février 2011 à 11:00:57 | Architecture d'un formulaire client + divers fonctions (email, macros....).

quinton75

Bonjour,

J'ai créée un formulaire pour demander aux clients smart box de renseigner leurs infos persos ....En bas de page, le code.....

Et j'aimerais intégrer les fonctions suivantes :
- Une fois le formulaire rempli, envoi d'un mail de confirmation
- check du code samrt box saisi sur le formulaire via une macro sur le site de smart box (si le code est non consommé => génération d'un fichier excel avec le descriptif de la demande
si consommé => renvoyer un mail pour demander à l'utilisateur de recommencer la saisie de formulaire avec le bon code

Sur le site de smart box il y a juste un champ ou on rentre le code et dès validation, il apparait en dessous, un texte "consommé" ou "valide"


En fait j'ai donc 2 problèmes techniques :
- générer l'envoi d'un mail dès validation du formulaire
- vérifier la validité d'un code dès validation du formulaire sur le site de smart box


1er code :

Code PHP :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Mini-chat</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <style type="text/css">
    form
    {
        text-align:center;
    }
    </style>
    <body>
    
    <form action="smartbox_validation.php" method="post">
        <p>

		<label for="numero_smartbox">smartbox</label> : <input type="text" name="numero_smartbox" id="numero_smartbox" /><br />
        <label for="nom">nom</label> :  <input type="text" name="nom" id="nom" /><br />
		<label for="prenom">prenom</label> : <input type="text" name="prenom" id="prenom" /><br />
        <label for="date_de_naissance">date de naissance</label> :  <input type="text" name="date_de_naissance" id="date_de_naissance" /><br />
		<label for="telephone">telephone</label> : <input type="text" name="telephone" id="telephone" /><br />
        <label for="nom_de_la_photographie">nom de la photographie</label> :  <input type="text" name="nom_de_la_photographie" id="nom_de_la_photographie" /><br />
		<label for="page_du_livret">page</label> : <input type="text" name="page_du_livret" id="page_du_livret" /><br />
        <label for="fin_de_validite">validite</label> :  <input type="text" name="fin_de_validite" id="fin_de_validite" /><br />
		<label for="livraison">livraison</label> : <input type="text" name="livraison" id="livraison" /><br />
        <label for="adresse_postale">adresse</label> :  <input type="text" name="adresse_postale" id="adresse_postale" /><br />
        <label for="code_postal">code postal</label> :  <input type="text" name="code_postal" id="code_postal" /><br />
		<label for="ville">ville</label> : <input type="text" name="ville" id="ville" /><br />
        <label for="email">email</label> :  <input type="text" name="email" id="email" /><br />
		


        <input type="submit" value="Envoyer" />
	</p>
    </form>




2eme code :

Code PHP :

<p>Votre demande a bien été prise en compte</p>


<?php
// Connexion à la base de données
try
{
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
	$bdd = new PDO('mysql:host=localhost;dbname=pseudo', 'utilisateur', 'mdp', $pdo_options);
    
    // Insertion du message à l'aide d'une requête préparée
    $req = $bdd->prepare('INSERT INTO smartbox ( numero_smartbox, nom, prenom, date_de_naissance, telephone, nom_de_la_photographie, page_du_livret, fin_de_validite, livraison, adresse_postale, code_postal, ville, email ) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
    $req->execute(array ($_POST['numero_smartbox'],$_POST['nom'], $_POST['prenom'],$_POST['date_de_naissance'], $_POST['telephone'],$_POST['nom_de_la_photographie'], $_POST['page_du_livret'],$_POST['fin_de_validite'], $_POST['livraison'],$_POST['adresse_postale'], $_POST['code_postal'],$_POST['ville'], $_POST['email']));
    
}
catch(Exception $e)
{
    die('Erreur : '.$e->getMessage());
}
?>
jeudi 3 février 2011 à 14:48:04 | Re : Architecture d'un formulaire client + divers fonctions (email, macros....).

bobertin89

Salut,
pour envoyer un mail, php a une fonction mail largement commentée sur ce forum et sur le web en général...
http://www.vulgarisation-informatique.com/mail.php
Pour ton excel :
http://www.graphiks.net/php-tutoriel/mysql/mysql_vers_excel_via_php_et_sylk.html
Google est ton meilleur ami...
P.S.: N'oublie pas d'aller voir la belle bertoune, elle t'aidera...

jeudi 3 février 2011 à 15:21:54 | Re : Architecture d'un formulaire client + divers fonctions (email, macros....).

quinton75

Merci bcp bobertin....

euhh la belle bertoubeje ne suis pas sur...

Sinon autre interogation mais en javascript...EN fbjs plus precisement :

Je soushaite integrer un formulaire sur une page facebook ..Mon code javascript fonctionne mais pas sur facebook..

Il faut surement le passer en fbjs, mais malgré toutes les sources du net, ca marche pas :
Code Javascript :
<html> 
<head> 
<title>Webform</title> 
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 
<script language="javascript"> 
var dtCh='/'; 
var minYear=1900; 
var maxYear=2100; 
function isValidInteger(s){ 
var i; 
for(i=0;i<s.length;i++){ 
var c=s.charAt(i); 
if(((c<'0')||(c>'9'))) return false; 
} 
return true; 
} 
function stripCharsInBag(s,bag){ 
var i; 
var returnString=''; 
for(i=0;i<s.length;i++){ 
var c=s.charAt(i); 
if(bag.indexOf(c)==-1) returnString+=c; 
} 
return returnString; 
} 
function daysInFebruary(year){ 
return(((year%4==0)&&((!(year % 100 == 0))||(year%400==0)))?29:28); 
} 
function DaysArray(n){ 
for(var i=1;i<=n;i++){ 
this[i]=31; 
if(i==4||i==6||i==9||i==11){this[i]=30;} 
if(i==2){this[i]=29;} 
} 
return this; 
} 
function isDateOK(dtStr){ 
if(dtStr=='') return true; 
var daysInMonth=DaysArray(12); 
var pos1=dtStr.indexOf(dtCh); 
var pos2=dtStr.indexOf(dtCh,pos1+1); 
var strDay=dtStr.substring(0,pos1); 
var strMonth=dtStr.substring(pos1+1,pos2); 
var strYear=dtStr.substring(pos2+1); 
strYr=strYear; 
if(strDay.charAt(0)=='0'&&strDay.length>1) strDay=strDay.substring(1); 
if(strMonth.charAt(0)=='0'&&strMonth.length>1) strMonth=strMonth.substring(1); 
for(var i=1;i<=3;i++){ 
if(strYr.charAt(0)=='0'&&strYr.length>1) strYr=strYr.substring(1); 
} 
month=parseInt(strMonth); 
day=parseInt(strDay); 
year=parseInt(strYr); 
if(pos1==-1||pos2==-1){ 
alert('Le format de date devrait être : dd/mm/yyyy.'); 
return false; 
} 
if(strMonth.length<1||month<1||month>12){ 
alert('Veuillez entrer un mois valide.'); 
return false; 
} 
if(strDay.length<1||day<1||day>31||(month==2&&day>daysInFebruary(year))||day>daysInMonth[month]){ 
alert('Veuillez entrer un jour valide.'); 
return false; 
} 
if(strYear.length!=4||year==0||year<minYear||year>maxYear){ 
alert('Veuillez entrer une année &#65533; 4 chiffres comprise entre '+minYear+' et '+maxYear+'.'); 
return false; 
} 
if(dtStr.indexOf(dtCh,pos2+1)!=-1||isValidInteger(stripCharsInBag(dtStr,dtCh))==false){ 
alert('Veuillez entrer une date valide.'); 
return false; 
} 
return true; 
} 
function modifyDateFormat(dt){ 
var valuesTable=dt.value.split(dtCh); 
dt.value=valuesTable[1]+dtCh+valuesTable[0]+dtCh+valuesTable[2]; 
} 
function isEmail(emailAddress){ 
emailAddressValue=emailAddress.value.toLowerCase(); 
var countryTLDs=/^(ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|Fiddlesticks|bt|bv|bw|by|bz|ca|cat|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$/;
var gTLDs=/^(aero|biz|cat|com|coop|edu|gov|info|int|mil|museum|name|net|org|jobs)$/; 
var basicAddress=/^(.+)@(.+)$/; 
var specialChars='\\(\\)><@,;:\\\\\\\"\\.\\[\\]'; 



var validChars='\[^\\s'+specialChars+'\]'; 
var validCharset='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\'-_.'; 
var quotedUser='(\"[^\"]*\")'; 



var atom=validChars+'+'; 
var word='('+atom+'|'+quotedUser+')'; 
var validUser=new RegExp('^'+word+'(\.'+word+')*$'); 
var symDomain=new RegExp('^'+atom+'(\.'+atom+')*$'); 
var matchArray=emailAddressValue.match(basicAddress); 
if(emailAddress.value==''||emailAddress==null){ 
return true; 
} 
if(matchArray==null){ 
alert('L\'adresse Email semble incorrecte,\nveuillez vérifier la syntaxe.'); 
emailAddress.focus(); 
return false; 
}else{ 
var user=matchArray[1]; 
var domain=matchArray[2]; 
for(i=0;i<user.length;i++){ 
if(validCharset.indexOf(user.charAt(i))==-1){ 
alert('L\'adresse Email contient des caractères invalides,\nveuillez vérifier la partie avant l\'arobase.'); 
emailAddress.focus(); 
return false; 
} 
} 
for(i=0;i<domain.length;i++){ 
if(validCharset.indexOf(domain.charAt(i))==-1){ 
alert('L\'adresse Email contient des caractères invalides,\nveuillez vérifier la partie après l\'arobase.'); 
emailAddress.focus(); 
return false; 
} 
} 
if(user.match(validUser)==null){ 
alert('L\'adresse Email semble incorrecte,\nveuillez vérifier la partie avant l\'arobase.'); 
emailAddress.focus(); 
return false; 
} 
var atomPat=new RegExp('^'+atom+'$'); 
var domArr=domain.split('.'); 
var len=domArr.length; 
for(i=0;i<len;i++){ 
if(domArr[i].search(atomPat)==-1){ 
alert('L\'adresse Email semble incorrecte,\nveuillez vérifier la partie après l\'arobase.'); 
emailAddress.focus(); 
return false; 
} 
} 
if((domArr[domArr.length-1].length==2)&&(domArr[domArr.length-1].search(countryTLDs)==-1)){ 
alert('L\'adresse Email semble incorrecte,\nveuillez vérifier le suffixe du domaine.'); 
emailAddress.focus(); 
return false; 
} 
if((domArr[domArr.length-1].length>2)&&(domArr[domArr.length-1].search(gTLDs)==-1)){ 
alert('L\'adresse Email semble incorrecte,\nveuillez vérifier le suffixe du domaine.'); 
emailAddress.focus(); 
return false; 
} 
if((domArr[domArr.length-1].length<2)||(domArr[domArr.length-1].length>6)){ 
alert('L\'adresse Email semble incorrecte,\nveuillez vérifier le suffixe du domaine.'); 
emailAddress.focus(); 
return false; 
} 
if(len<2){ 
alert('L\'adresse Email semble incorrecte.'); 
emailAddress.focus(); 
return false; 
} 
} 
return true; 
} 
String.prototype.trim = function() { return this.replace(/^\s*(\b.*\b|)\s*$/, "$1"); } 
function mandatoryText(input,fieldName){ 
if(input.value.trim()==''||input==null){ 
alert('Veuillez saisir '+fieldName+'.'); 
input.focus(); 
return false; 
} else { 
return true; 
} 
} 
function validForm(){ 
if(!mandatoryText(document.getElementById('EMAIL_FIELD'), 'Adresse e-mail')) return; 
if(!isEmail(document.getElementById('EMAIL_FIELD'))) return; 
if(!isDateOK(document.getElementById('DATEOFBIRTH_FIELD').value)) return; 
if(document.getElementById('DATEOFBIRTH_FIELD').value!='') modifyDateFormat(document.getElementById('DATEOFBIRTH_FIELD')); 
document.getElementById('emvForm').submit(); 
if(document.getElementById('DATEOFBIRTH_FIELD').value!='') modifyDateFormat(document.getElementById('DATEOFBIRTH_FIELD')); 
} 
</script> 
</head> 
<body> 
<form name="emvForm" id="emvForm" action="http://p2tre.emv3.com/D2UTF8" method="POST" target="_top"> 
<input type="hidden" name="emv_tag" value="xxxx" /> 
<input type="hidden" name="emv_ref" value="yyyy" /> 
<table> 
<tr> 
<td> 
Adresse e-mail 
</td> 
<td> 
<input type="text" id="EMAIL_FIELD" name="EMAIL_FIELD" value="" size="30" maxlength="64"> 
</td> 
</tr> 
<tr> 
<td> 
Prénom 
</td> 
<td> 
<input type="text" id="FIRSTNAME_FIELD" name="FIRSTNAME_FIELD" value="" size="30" maxlength="64"> 
</td> 
</tr> 
<tr> 
<td> 
Nom 
</td> 
<td> 
<input type="text" id="LASTNAME_FIELD" name="LASTNAME_FIELD" value="" size="30" maxlength="64"> 
</td> 
</tr> 
<tr> 
<td> 
Date de naissance 
</td> 
<td> 
<input type="text" id="DATEOFBIRTH_FIELD" name="DATEOFBIRTH_FIELD" value="" size="30" maxlength="64"> 
</td> 
</tr> 
<tr> 
<td> 
Genre 
</td> 
<td> 
<select id="TITLE_FIELD" name="TITLE_FIELD"> 
<option selected value=""></option> 
<option value="Homme">Homme</option> 
<option value="Femme">Femme</option> 
</select> 
</td> 
</tr> 
<tr> 
<td colspan="2" align="center"> 
<input type="button" value="Soumettre le formulaire" onClick="javascript:validForm();"> 
</td> 
</tr> 
</table> 
</form> 
</body> 
</html>

jeudi 3 février 2011 à 16:56:53 | Re : Architecture d'un formulaire client + divers fonctions (email, macros....).

quinton75

c'est toi qui chante?;)
vendredi 4 février 2011 à 11:38:48 | Re : Architecture d'un formulaire client + divers fonctions (email, macros....).

bobertin89

Salut quinton,
je pensais la belle bertoune t'aiderais!!!
C'est ma soeur qui chante, moi je suis flute/clavier(chapeau...)...
Pour ton souci avec facebook, je ne pense pouvoir t'aider... JS pas trop mon truc et Facebook encore moins...
Désolé...
Si tu veux, envoie une invit Facebook.
Bon dev.
A+


Cette discussion est classée dans : code, formulaire, box, email, post


Répondre à ce message

Sujets en rapport avec ce message

Pb, Formulaire / Mail [ par MaSenCo ] Bonjour,Je viens de mettre un formulaire / mail sur mon site, et j'ai un petit problème avec la fonction mail, c'est à dire que je reçois bien le mail Erreur dans un script de formulaire [ par Sven78 ] Bonjour à toutes et à tous Google m'a conduit ici quand je lui ai demandé de l'aide sur la fonction $_POST qui semble me poser problème À la base c'e Petit problème pour un formulaire ! [ par robapt ] Bonjour à tous ! Grace à l'aide de JulSoft, mon petit formulaire à bien avancé! En gros, il consiste à enregistrer son contenu dans un fichier php (pr PHP post/get erreur [ par Ziklamor ] Bonjour,Je poste de nouveau un message pour demander de l'aide car je suis de nouveau coincé...Mon problème vient d'un formulaire situé dans un fichie envoie d'un formulaire par email [ par rochdiboubaker ] salut, j'ai téléchargé un code d'un formulaire d'envoie à un email (php), et j'ai essayé de l'executer avec Easy PHP, mais il a retourné ce message. envoi formulaire à un email [ par ahlemlo ] bonjour à tous svp pouvez vous m'aider je veus envoiyer un formulaire à mon email est ce que ce code est juste?sinon comment faire//envoi formulaire à Afficher un message d'erreur avant retour formulaire [ par patric31 ] Bonjour à toutes et à tous,Je suis tout nouveau et chez vous et chez M. et Mme PHP et leur petit SQL.J'ai créer un formulaire de saisie tout simple :  Vérification formulaire livre d'or [ par Danamel ] Bonjour à tous J'ai actuellement sur mon site un livre d'or qui fonctionne mais désirant le modifier afin de changer sa présentation je fait un s ALERTE - Soucis avec formulaire ... [ par FXPHANTOM ] Bonjour , J'ai rencontré le problème suivant : "Erreur lors de l'écriture du message" lors de l'envoi de ma page de formulaire . En espérant avoir un Passage de variables sans $_POST et sans $_GET !! Urgent [ par WrestlingMan ] Salut !! Voilà mon souci !! Dans un formulaire, je saisis la ou les premières lettres du nom d'une personne. ->Première page de code !! Deuxième pag


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,858 sec (4)

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