Accueil > Forum > > > > Architecture d'un formulaire client + divers fonctions (email, macros....).
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 bertoube    je 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 � 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....).
|
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
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
XML ET PHPXML ET PHP par karouani
Cliquez pour lire la suite par karouani RE : GOOGLE MAPRE : GOOGLE MAP par inwebo
Cliquez pour lire la suite par inwebo
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|