LE NEWSMAGAZINE Nº1 DES NOUVELLES TECHNOLOGIES
160 utilisateurs connectés

preg_match & expressions régulières [ Résolu ]

Crunkman le 29 décembre 2008 à 11h37
Salut ! :wahoo:

Je suis en train de mettre en place un module en PHP afin d'inscrire des utilisateurs sur un site. :sol:

Cependant je voudrais mettre en place des petites "améliorations" :

- Cela marche sauf que je voudrais que lorsqu'il tapent le mot de passe et la confirmation du mot de passe cela ne s'affiche pas en clair, que ce qu'ils tapent s'affiche avec des étoiles ou un truc comme ça. :heink:
- Aussi je voudrais que lorsque le formulaire est envoyé, un mail s'envoie automatiquement à la personne, dans lequel il y ait un lien vers une page. Ce lien serait pour finaliser l'inscription, activer définitivement le compte.
- Actuellement, lorsqu'on appuie sur le bouton envoyer le code fait ceci :
1. Si on presse le bouton envoyer et
2. Si les champs ne sont pas vides et
3. Si l'adresse Email est valide alors
4. Traitement du formulaire

Moi je voudrais faire cela :
1. Si on presse le bouton envoyer et
2. Si les champs ne sont pas vides et
3. Si la valeur du champ Confirmation_Password est égale à valeur du champ Password et
4. Si l'adresse Email est valide alors
5. Traitement du formulaire et
6. Envoi d'un mail d'activation à la personne

Voici le code que j'ai actuellement :
<div id="div_formulaire">
<form action="inscriptions_page_inscription_site.php" name='formulaire' method="post"/>
<input type="hidden" name="subject" value="formmail" />
<label>
Pseudo : <input type="text" name="Pseudo" size="30" value="<?php if (isset($_POST["Pseudo"])){ echo $_POST["Pseudo"];} ?>" />
</label><br/><br/><br/>
<label>
Mot de passe :
<input type="text" name="Password" size="30" value="<?php if (isset($_POST["Password"])){ echo $_POST["Password"];} ?>" />
</label><br/><br/><br/>
<label>
Confirmation du mot de passe :
<input type="text" name="Confirmation_Password" size="30" value="<?php if (isset($_POST["Confirmation_Password"])){
echo $_POST["Confirmation_Password"];} ?>" />
</label><br/><br/><br/>
<label>
Adresse Email :
<input type="text" name="Email" size="30" value="<?php if (isset($_POST["Email"])){ echo $_POST["Email"];} ?>"/>
</label><br/><br/><br/>
<label>
<input type="submit" value="Envoyer" name="envoyer"/> -
<input type="reset" value="Tout Effacer" />
</label><br/><br/>
</form>

<?php
if (isset($_REQUEST['envoyer'])) // Si on presse le bouton envoyer
{
if (!empty($_REQUEST['Pseudo'])&&!empty($_REQUEST['Password'])
&&!empty($_REQUEST['Email'])&&!empty($_REQUEST['Confirmation_Password'])) // Si les champs ne sont pas vides
{
$Prenom=$_REQUEST["Pseudo"]; // Définition des varibales
$Nom=$_REQUEST["Password"]; // Définition des varibales
$Email=$_REQUEST["Email"]; // Définition des varibales
$Sujet=$_REQUEST["Confirmation_Password"]; // Définition des varibales

if(preg_match("#^[a-z0-9._-]{1,}@[a-z0-9._-]{2,}\.[a-z]{2,4}$#",$_POST['Email'])) // Si l'adresse Email est valide
{
$requete = "INSERT INTO Inscription_Site (Pseudo, Password, Confirmation_Password, Email) VALUES
('" . $_REQUEST["Pseudo"] . "' , '" . $_REQUEST["Password"] . "' ,
'" . $_REQUEST["Confirmation_Password"] . "' , '" . $_REQUEST["Email"] ."')"; // Ajout des valeurs contenues dans les champs du formulaire à la table Realisation

$resultat = mysql_query ($requete, $connexion); // Execution de la requête
if ($resultat)
{
echo "<span class='rouge'>Inscription bien prise en compte<br/>\n</span>"; // Si la requête a réussi
}

else
{
echo "<span class='rouge'>Exécution de la requête impossible !<br/>\n</span>"; // Si la requête a échoué
echo "<span class='rouge'>Message de MySQL : </span>", mysql_error($connexion); // Si la requête a échoué
}
mysql_close($connexion); // Fin de la connexion à la base
}
else
{
echo'<span class="rouge">Votre adresse Email n\'est pas valide !</span>'; // Message d'information
}
}
else
{
echo'<span class="rouge">Merci de remplir tous les champs !</span>'; // Message d'information
}
}
?>

</div>


J'en demande peut être beaucoup ! :(
En tout cas merci d'avance à tous pour votre aide et votre participation ! :D


-->Message édité par Crunkman le 10/01/2009 19:25:51<--
-------
Mon portfolio : http://rbelly.free.fr
Ma police de caractère : http://www.dafont.com/fr/rqf.font
Mon site sur les Supercars : http://passionsupercars.blogspot.com
hamster3553 le 29 décembre 2008 à 14h27
Salut !
Alors je vais repondre a certaine de tes questions.
Cela marche sauf que je voudrais que lorsqu'il tapent le mot de passe et la confirmation du mot de passe cela ne s'affiche pas en clair, que ce qu'ils tapent s'affiche avec des étoiles ou un truc comme ça.

<input type="password" ......>
et voila !
Aussi je voudrais que lorsque le formulaire est envoyé, un mail s'envoie automatiquement à la personne, dans lequel il y ait un lien vers une page. Ce lien serait pour finaliser l'inscription, activer définitivement le compte.

Utilise la fonction mail(); dans lequel tu met le lien vers la page souhaité et un ID pour chaque personne inscrite.
ex: http://www.validationinscription.php?ID=154

sur cette page, tu verifies que tu recupère l' ID et qu'il est ok, et tu valides l'inscription.
-->Message édité par hamster3553 le 29/12/2008 14:29:21<--
Crunkman le 29 décembre 2008 à 15h12
Merci de ton aide ! Et pour vérifier que la valeur du champ Confirmation_Password est égale à valeur du champ Password, comment faire ?
-------
Mon portfolio : http://rbelly.free.fr
Ma police de caractère : http://www.dafont.com/fr/rqf.font
Mon site sur les Supercars : http://passionsupercars.blogspot.com
hamster3553 le 29 décembre 2008 à 17h05
Confirmation_Password est égale à valeur du champ Password, comment faire
?
:non: Je te le donne mais je suis sur que tu aurais pu le trouver tout seul !!!
if ($_POST['Confirmation_Password']== $_POST['Password'])
Crunkman le 30 décembre 2008 à 10h54
Merci cela marche parfaitement ! :sol:

Je donne le code qui fait donc ceci :
1. Si on presse le bouton envoyer et
2. Si les champs ne sont pas vides et
3. Si les champs "Mot de passe" et "Confirmation du mot de passe" sont égaux et
3. Si l'adresse Email est valide alors
4. Traitement du formulaire

Code :

<div id="div_formulaire">
<form action="inscriptions_page_inscription_site.php" name='formulaire' method="post"/>
<input type="hidden" name="subject" value="formmail" />
<label>
Pseudo : <input type="text" name="Pseudo" size="30" value="<?php if (isset($_POST["Pseudo"])){ echo $_POST["Pseudo"];} ?>" />
</label><br/><br/><br/>
<label>
Mot de passe :
<input type="password" name="Password" size="30" value="<?php if (isset($_POST["Password"])){ echo $_POST["Password"];} ?>" />
</label><br/><br/><br/>
<label>
Confirmation du mot de passe :
<input type="password" name="Confirmation_Password" size="30" value="<?php if (isset($_POST["Confirmation_Password"])){
echo $_POST["Confirmation_Password"];} ?>" />
</label><br/><br/><br/>
<label>
Adresse Email :
<input type="text" name="Email" size="30" value="<?php if (isset($_POST["Email"])){ echo $_POST["Email"];} ?>"/>
</label><br/><br/><br/>
<label>
<input type="checkbox" name="Newsletter" value="abonne" checked> Je m'abonne à la newsletter afin de recevoir des informations utiles sur l'AQCV. (Abonnement gratuit).
<br/><br/><br/>
<input type="submit" value="Envoyer" name="envoyer"/> -
<input type="reset" value="Tout Effacer" />
</label><br/><br/>
</form>

<?php
if (isset($_REQUEST['envoyer'])) // Si on presse le bouton envoyer
{
if (!empty($_REQUEST['Pseudo'])&&!empty($_REQUEST['Password'])
&&!empty($_REQUEST['Email'])&&!empty($_REQUEST['Confirmation_Password'])) // Si les champs ne sont pas vides
{
$Pseudo=$_REQUEST["Pseudo"]; // Définition des varibales
$Password=$_REQUEST["Password"]; // Définition des varibales
$Email=$_REQUEST["Email"]; // Définition des varibales
$Confirmation_Password=$_REQUEST["Confirmation_Password"]; // Définition des varibales

if ($_POST['Confirmation_Password']== $_POST['Password'])
{
if(preg_match("#^[a-z0-9._-]{1,}@[a-z0-9._-]{2,}\.[a-z]{2,4}$#",$_POST['Email'])) // Si l'adresse Email est valide
{
$requete = "INSERT INTO Inscription_Site (Pseudo, Password, Confirmation_Password, Email) VALUES
('" . $_REQUEST["Pseudo"] . "' , '" . $_REQUEST["Password"] . "' ,
'" . $_REQUEST["Confirmation_Password"] . "' , '" . $_REQUEST["Email"] ."')"; // Ajout des valeurs contenues dans les champs du formulaire à la table Realisation

$resultat = mysql_query ($requete, $connexion); // Execution de la requête
if ($resultat)
{
echo "<span class='rouge'>Votre inscription a bien été prise en compte.<br /><br />
Un email va vous être envoyé à l'adresse que vous avez entré, afin de finaliser votre inscription.<br /><br />
Vous pouvez maintenant cliquer sur Retour.\n</span>"; // Si la requête a réussi
}

else
{
echo "<span class='rouge'>Exécution de la requête impossible !<br/>\n</span>"; // Si la requête a échoué
echo "<span class='rouge'>Message de MySQL : </span>", mysql_error($connexion); // Si la requête a échoué
}
mysql_close($connexion); // Fin de la connexion à la base
}
else
{
echo'<span class="rouge">Votre adresse Email n\'est pas valide !</span>'; // Message d'information
}
}
else
{
echo'<span class="rouge">Merci de vérifier que le mot de passe et la confirmation du mot de passe soient égaux !</span>'; // Message d'information
}
}
else
{
echo'<span class="rouge">Merci de remplir tous les champs !</span>'; // Message d'information
}
}
?>

-->Message édité par Crunkman le 30/12/2008 10:54:55<--
-------
Mon portfolio : http://rbelly.free.fr
Ma police de caractère : http://www.dafont.com/fr/rqf.font
Mon site sur les Supercars : http://passionsupercars.blogspot.com
Crunkman le 30 décembre 2008 à 12h28
J'aurais aussi besoin de conditions qui me vérifient les caractères de différents champs.

J'ai besoin de vérifier :

- qu'un champ est composé uniquement de lettres, éventuellement accentuées (il faut que je vérifie que mon champ "prénom" est remplis avec des caractères correspondant à un prénom. Pas de chiffres, caractères spéciaux...)
- qu'un champ est composé uniquement de lettres, éventuellement accentuées et d'apostrophe (il faut que je vérifie que mon champ "nom" est remplis avec des caractères correspondant à un nom. Pas de chiffres, caractères spéciaux sauf apostrophe...)
- qu'un champ est composé uniquement de chiffes et de slashes, (il faut que je vérifie que mon champ "date" est remplis avec des caractères correspondant à une date : jj/mm/aaaa. Pas de lettres, caractères spéciaux...)
- qu'un champ est composé uniquement de chiffes, (il faut que je vérifie que mon champ "téléphone" est remplis avec des caractères correspondant à un numéro de téléphone : 0123456789. Pas de lettres, caractères spéciaux...)
- qu'un champ est composé uniquement de chiffes, (il faut que je vérifie que mon champ "code postal" est remplis avec des caractères correspondant à un code postal : 11111. Pas de lettres, caractères spéciaux...)


Je pense qu'il faut utiliser une condition de type :
if(preg_match("#^[a-z0-9._-]{1,}@[a-z0-9._-]{2,}\.[a-z]{2,4}$#",$_POST['Email']))
{
}

-->Message édité par Crunkman le 30/12/2008 12:38:24<--
-------
Mon portfolio : http://rbelly.free.fr
Ma police de caractère : http://www.dafont.com/fr/rqf.font
Mon site sur les Supercars : http://passionsupercars.blogspot.com
hamster3553 le 30 décembre 2008 à 14h17
C'est exactement cette fonction preg_match ! a toi de l'ajuster pour tes besoins.


http://www.phpsources.org/function.preg_match.php
aideinfo le 30 décembre 2008 à 14h20
hamster3553 a écrit :
Salut !
Alors je vais repondre a certaine de tes questions.


Utilise la fonction mail(); dans lequel tu met le lien vers la page souhaité et un ID pour chaque personne inscrite.
ex: http://www.validationinscription.php?ID=154

sur cette page, tu verifies que tu recupère l' ID et qu'il est ok, et tu valides l'inscription.



Pas très sécurisé ! Il suffit de taper l'ID manuellement pour activer le compte, même si l'adresse e-mail est fausse.
Crunkman le 30 décembre 2008 à 15h23
Je ne parviens pas à mettre en œuvre ce que j'ai demandé plus haut... Quelqu'un aurait une documentation sur les assertions. Par cela j'entends des tutos, explications sur la syntaxe à utiliser, comme les ^, #, etc. Comment matérialiser les et, sans, sauf, etc, des caractères que que je veux exclure, inclure dans mes champs à vérifier ?
-->Message édité par Crunkman le 30/12/2008 15:25:43<--
-------
Mon portfolio : http://rbelly.free.fr
Ma police de caractère : http://www.dafont.com/fr/rqf.font
Mon site sur les Supercars : http://passionsupercars.blogspot.com
Crunkman le 30 décembre 2008 à 16h33
J'ai finalement trouvé un tuto, mais je n'arrive pas à faire ma condition pour la date de naissance. Je veux qu'elle soit de la forme 10/02/1989.

Pour cela j'ai écris le code suivant :

if(preg_match("#^[0-30-9]{1}/[0-10-9]{1}/[1-20-90-90-9]{1}$#",$_POST['Date_naissance'])) // Si le nom est valide
{

// Ajout des valeurs contenues dans les champs du formulaire à la table Inscription_AQCV_individuelle
$requete = "INSERT INTO Inscription_AQCV_individuelle (Nom, Prenom, Date_naissance, Adresse, Adresse_Email, Ville, Code_postal,
Telephone, Secteur, Sexe) VALUES
('" . $_REQUEST["Nom"] . "' , '" . $_REQUEST["Prenom"] . "' ,
'" . $_REQUEST["Date_naissance"] . "' , '" . $_REQUEST["Adresse"] ."' , '" . $_REQUEST["Adresse_Email"] . "' ,
'" . $_REQUEST["Ville"] ."' , '" . $_REQUEST["Code_postal"] . "' , '" . $_REQUEST["Telephone"] . "' ,
'" . $_REQUEST["Secteur"] . "' , '" . $_REQUEST["Sexe"] . "')";


$resultat = mysql_query ($requete, $connexion); // Execution de la requête
if ($resultat)
{
echo "<span class='rouge'>Votre inscription a bien été prise en compte.<br /><br />
Un email va vous être envoyé à l'adresse que vous avez entré, afin de finaliser votre inscription.<br /><br />
Vous pouvez maintenant cliquer sur Retour.\n</span>"; // Si la requête a réussi
}

else
{
echo "<span class='rouge'>Exécution de la requête impossible !<br/>\n</span>"; // Si la requête a échoué
echo "<span class='rouge'>Message de MySQL : </span>", mysql_error($connexion); // Si la requête a échoué
}
mysql_close($connexion); // Fin de la connexion à la base
}

else
{
echo'<span class="rouge">Vérifier la syntaxe de votre date de naissance !<br/>
Elle doit être de la forme : 10/02/1989 !</span>'; // Message d'information
}
-->Message édité par Crunkman le 30/12/2008 16:34:30<--
-------
Mon portfolio : http://rbelly.free.fr
Ma police de caractère : http://www.dafont.com/fr/rqf.font
Mon site sur les Supercars : http://passionsupercars.blogspot.com
hamster3553 le 30 décembre 2008 à 16h41
Pas très sécurisé ! Il suffit de taper l'ID manuellement pour activer le compte, même si l'adresse e-mail est fausse.

Et comment tu le récuperes cet ID puisqu'il n'est présent que dans le mail? Si l'adresse mail est incorrect il ne le recoit pas...Ou alors, j'ai pas tout compris ! lol

D'ailleurs, il n'y a même pas besoin d'ID, on peux passer en parametres le nom, prenom, email.
Une autre idée?

-->Message édité par hamster3553 le 30/12/2008 16:44:46<--
Crunkman le 30 décembre 2008 à 17h03
J'ai trouvé la solution à mon problème d'expression régulière :

if(preg_match("#^[0-3]{1}[0-9]{1}/[0-1]{1}[0-9]{1}/[1-2]{1}[0-9]{1}[0-9]{1}[0-9]{1}$#",$_POST['Date_naissance']))
-------
Mon portfolio : http://rbelly.free.fr
Ma police de caractère : http://www.dafont.com/fr/rqf.font
Mon site sur les Supercars : http://passionsupercars.blogspot.com
Crunkman le 30 décembre 2008 à 17h26
Par contre, je bloque maintenant pour la vérification d'un champ nom. :fou:
Je veux que le champ commence par un caractère majuscule ou minuscule, et que soient autorisés : des caractères, majuscules et minuscules, espaces, apostrophes ', tiret haut -.

J'ai écris ceci :

Code :

if(preg_match("#^[a-zA-Z]{1,}[a-zA-Z]{1,}[' -]{1,}[^0-9]{1,}$#",$_POST['Nom']))

Mais cela ne marche pas... :rale:
-->Message édité par Crunkman le 30/12/2008 17:26:38<--
-------
Mon portfolio : http://rbelly.free.fr
Ma police de caractère : http://www.dafont.com/fr/rqf.font
Mon site sur les Supercars : http://passionsupercars.blogspot.com
aideinfo le 30 décembre 2008 à 17h54
hamster3553 a écrit :


Et comment tu le récuperes cet ID puisqu'il n'est présent que dans le mail? Si l'adresse mail est incorrect il ne le recoit pas...Ou alors, j'ai pas tout compris ! lol

D'ailleurs, il n'y a même pas besoin d'ID, on peux passer en parametres le nom, prenom, email.
Une autre idée?


Il suffit de le taper, sans le connaître. C'est ce que faisait notamment les spammeurs pour créer des comptes de spam avant la généralisation des captchas.


Crunkman a écrit :
J'ai trouvé la solution à mon problème d'expression régulière :

if(preg_match("#^[0-3]{1}[0-9]{1}/[0-1]{1}[0-9]{1}/[1-2]{1}[0-9]{1}[0-9]{1}[0-9]{1}$#",$_POST['Date_naissance']))


Avec ce code, je m'inscris sans problème avec la date de naissance 35/15/1989, ce qui n'est pas le cas avec cette syntaxe.

"#^[01-31]{2}/[01-12]{2}/[1-2]{1}[0-9]{1}[0-9]{1}[0-9]{1}$#"


Pour aller plus loin, on peut tester aussi combien de jours compte le mois indiqué afin d'éviter de se retrouver avec un 31 novembre ou un 30 février.

Crunkman a écrit :
Par contre, je bloque maintenant pour la vérification d'un champ nom. :fou:
Je veux que le champ commence par un caractère majuscule ou minuscule, et que soient autorisés : des caractères, majuscules et minuscules, espaces, apostrophes ', tiret haut -.

J'ai écris ceci :

Code :

if(preg_match("#^[a-zA-Z]{1,}[a-zA-Z]{1,}[' -]{1,}[^0-9]{1,}$#",$_POST['Nom']))

Mais cela ne marche pas... :rale:



Tu peux utiliser la doc PHP.

ucfirst()
ereg_replace()
...
Crunkman le 30 décembre 2008 à 19h05
Je ne vois pas comment faire, même avec le manuel, pour mon champ nom...
-------
Mon portfolio : http://rbelly.free.fr
Ma police de caractère : http://www.dafont.com/fr/rqf.font
Mon site sur les Supercars : http://passionsupercars.blogspot.com
hamster3553 le 30 décembre 2008 à 20h56
aideinfo a ecrit
Il suffit de le taper, sans le connaître. C'est ce que faisait notamment les spammeurs pour créer des comptes de spam avant la généralisation des captchas.

et quelle méthode tu préconises pour contrer cette lacune?
aideinfo le 02 janvier 2009 à 13h00
hamster3553 a écrit :


et quelle méthode tu préconises pour contrer cette lacune?


Tout simplement un code aléatoire associé au compte.
hamster3553 le 02 janvier 2009 à 14h13
Euh, ca revient au même, non?
celui qui connait le code aléatoire peut le taper manuellement et valider son compte, non?
aideinfo le 05 janvier 2009 à 22h24
hamster3553 a écrit :
Euh, ca revient au même, non?
celui qui connait le code aléatoire peut le taper manuellement et valider son compte, non?


Il ne faut évidemment pas se limiter à un numéro d'un ou deux chiffres. Un ID auto-incrémenté, ça peut se trouver, mais un code aléatoire de plusieurs caractères, alphanumérique, ça ne se trouve pas comme ça.

Je ne vois pas comment faire, même avec le manuel, pour mon champ nom...


Je t'ai déjà indiqué la fonction ucfirst(), qui permet de mettre enj majuscule la première lettre d'un mot (ou d'un nom).
hamster3553 le 06 janvier 2009 à 09h58
Il ne faut évidemment pas se limiter à un numéro d'un ou deux chiffres. Un ID auto-incrémenté, ça peut se trouver, mais un code aléatoire de plusieurs caractères, alphanumérique, ça ne se trouve pas comme ça.


Je crois, en fait, que depuis le debut on parle de la même chose. Quand je parlais d'ID, je ne pensait pas a un nombre a deux chiffres évidemment ! je me suis surement bien mal exprimé ! :lol:
Crunkman le 06 janvier 2009 à 20h08
Voici le code qui fonctionne très bien, avec toutes les vérifications de champs !

<div id="div_formulaire">
<form action="inscriptions_page_inscription_individuelle.php" name='formulaire' method="post"/>
<input type="hidden" name="subject" value="formmail" />
<label>
Nom : <input type="text" name="Nom" size="40" value="<?php if (isset($_POST["Nom"])){ echo $_POST["Nom"];} ?>" />
</label><br/><br/><br/>
<label>
Prénom :
<input type="text" name="Prenom" size="37" value="<?php if (isset($_POST["Prenom"])){ echo $_POST["Prenom"];} ?>" />
</label><br/><br/><br/>
<label>
Secteur (dans quel secteur vous vous situez) :<br/><br/>
<select name="Secteur">
<option selected name="agriculteurs">Agriculteurs exploitants</option>
<option name="artisants">Artisans commerçants et chefs d’entreprises</option>
<option name="cadres">Cadres, professions intellectuelles supérieures</option>
<option name="intermediaires">Professions intermédiaires</option>
<option name="employes">Employés</option>
<option name="ouvriers">Ouvriers</option>
<option name="retraites">Retraités</option>
<option name="autres">Autres personnes sans activité professionnelle</option>
</select>
</label><br/><br/><br/>
<label>
Intitulé de votre profession (si vous êtes retraité ou autre personne sans activité professionnelle écrivez "Aucune") : <br/><br/>
<input type="text" name="Profession" size="46" value="<?php if (isset($_POST["Profession"])){ echo $_POST["Profession"];} ?>" />
</label><br/><br/><br/>
<label>
Date de naissance :
<input type="date" name="Date_naissance" size="26" value="<?php if (isset($_POST["Date_naissance"])){ echo $_POST["Date_naissance"];} ?>" />
</label><br/><br/><br/>
<label>
Adresse Email :
<input type="text" name="Adresse_Email" size="30" value="<?php if (isset($_POST["Adresse_Email"])){ echo $_POST["Adresse_Email"];} ?>"/>
</label><br/><br/><br/>
<label>
Téléphone :
<input type="text" name="Telephone" size="34" value="<?php if (isset($_POST["Telephone"])){ echo $_POST["Telephone"];} ?>"/>
</label><br/><br/><br/>
Sexe :
<input type="radio" name="Sexe" value="Masculin" checked> Masculin
<input type="radio" name="Sexe" value="Feminin"> Féminin
<br/><br/><br/>
<label>
Adresse :
<input type="text" name="Adresse" size="35" value="<?php if (isset($_POST["Adresse"])){ echo $_POST["Adresse"];} ?>"/>
</label><br/><br/><br/>
<label>
Ville :
<input type="text" name="Ville" size="39" value="<?php if (isset($_POST["Ville"])){ echo $_POST["Ville"];} ?>"/>
</label><br/><br/><br/>
<label>
Code postal :
<input type="text" name="Code_postal" size="32" value="<?php if (isset($_POST["Code_postal"])){ echo $_POST["Code_postal"];} ?>"/>
</label><br/><br/><br/>
<div id="div_boutons">
<input type="submit" value="Envoyer" name="envoyer" /> -
<input type="reset" value="Tout Effacer" />
</div>
</label><br/><br/>
</form>

<?php
// à ajouter au début du script au cas où magic_quotes soit à ON
if (get_magic_quotes_gpc())
{
$_POST = array_map('stripslashes', $_POST);
}

if (isset($_POST['envoyer'])) // Si on presse le bouton envoyer
{
if (!empty($_POST['Nom'])&&!empty($_POST['Prenom'])
&&!empty($_POST['Adresse_Email'])&&!empty($_POST['Telephone'])&&!empty($_POST['Date_naissance'])&&!empty($_POST['Adresse'])
&&!empty($_POST['Ville'])&&!empty($_POST['Code_postal'])&&!empty($_POST['Profession'])) // Si les champs ne sont pas vides
{
if(preg_match("#^[a-z0-9._-]{1,}@[a-z0-9._-]{2,}\.[a-z]{2,4}$#",$_POST['Adresse_Email'])) // Si l'adresse Email est valide
{
if(preg_match("#^0[1-68][0-9]{8}$#",$_POST['Telephone'])) // Si le téléphone est valide
{
if(preg_match("#^[0-3][0-9]/[0-1][0-9]/[1-2][0-9]{3}$#",$_POST['Date_naissance'])) // Si la date de naissance
{
if(preg_match("@^(\pL+[\' -]?)+\pL+$@D",$_POST['Nom'])) // Si le nom est valide
{
if(preg_match("#^[0-9][0-9]{4}$#",$_POST['Code_postal'])) // Si le code postal est valide
{
if(preg_match("@^(\pL+[\' -]?)+\pL+$@D",$_POST['Prenom'])) // Si le nom est valide
{
if(preg_match("@^(\pL+[\' -]?)+\pL+$@D",$_POST['Ville'])) // Si le nom est valide
{

// Ajout des valeurs contenues dans les champs du formulaire à la table Inscription_AQCV_individuelle
$_POST = array_map('mysql_real_escape_string', $_POST);
$requete = "INSERT INTO Inscription_AQCV_individuelle (Nom, Prenom, Date_naissance, Adresse, Adresse_Email,
Ville, Code_postal, Telephone, Secteur, Sexe, Profession) VALUES
('" . $_POST["Nom"] . "' , '" . $_POST["Prenom"] . "' ,
'" . $_POST["Date_naissance"] . "' , '" . $_POST["Adresse"] ."' , '" . $_POST["Adresse_Email"] . "' ,
'" . $_POST["Ville"] ."' , '" . $_POST["Code_postal"] . "' , '" . $_POST["Telephone"] . "' ,
'" . $_POST["Secteur"] . "' , '" . $_POST["Sexe"] . "' , '" . $_POST["Profession"] . "')";


$resultat = mysql_query ($requete, $connexion); // Execution de la requête
if ($resultat)
{
echo "<span class='rouge'>Votre inscription a bien été prise en compte.<br /><br />
Un email va vous être envoyé à l'adresse que vous avez entré, afin de finaliser votre inscription.<br /><br />
Vous pouvez maintenant cliquer sur Retour.\n</span>"; // Si la requête a réussi
}

else
{
echo "<span class='rouge'>Exécution de la requête impossible !<br/>\n</span>"; // Si la requête a échoué
echo "<span class='rouge'>Message de MySQL : </span>", mysql_error($connexion); // Si la requête a échoué
}
mysql_close($connexion); // Fin de la connexion à la base
}
else
{
echo'<span class="rouge">Vérifiez la syntaxe de la ville !<br />
Elle doit respecter les règles suivantes : seulement des caractères (majuscules ou minuscules),
espaces, tiret (-), et apostrophe (\').</span>'; // Message d'information
}
}
else
{
echo'<span class="rouge">Vérifiez la syntaxe de votre prénom !
Il doit respecter les règles suivantes : seulement des caractères (majuscules ou minuscules),
espaces, tiret (-), et apostrophe (\').</span>'; // Message d'information
}
}
else
{
echo'<span class="rouge">Vérifiez la syntaxe de votre code postal !<br/>
Il doit respecter les règles suivantes : 5 chiffes, aucun autre caractère.</span>'; // Message d'information
}
}
else
{
echo'<span class="rouge">Vérifiez la syntaxe de votre nom !<br/>
Il doit respecter les règles suivantes : seulement des caractères (majuscules ou minuscules),
espaces, tiret (-), et apostrophe (\').</span>'; // Message d'information
}
}
else
{
echo'<span class="rouge">Vérifiez la syntaxe de votre date de naissance !<br/>
Elle doit être de la forme : 10/02/1989 !</span>'; // Message d'information
}
}
else
{
echo'<span class="rouge">Vérifiez la syntaxe de votre numéro de téléphone !<br/>
Il doit respecter les règles suivantes : commencer par un 0, contenir 10 chiffres, pas d\'espaces, pas de lettres, pas de
caractères spéciaux !</span>'; // Message d'information
}
}
else
{
echo'<span class="rouge">Votre adresse Email n\'est pas valide !</span>'; // Message d'information
}
}
else
{
echo'<span class="rouge">Merci de remplir tous les champs !</span>'; // Message d'information
}
}
?>


</div>
-------
Mon portfolio : http://rbelly.free.fr
Ma police de caractère : http://www.dafont.com/fr/rqf.font
Mon site sur les Supercars : http://passionsupercars.blogspot.com


À PROPOS DU FORUM MICRO HEBDO

LES FORUMS THÉMATIQUES ET TECHNIQUES

LES FORUMS GÉNÉRAUX

ARCHIVES DU FORUM

publicité
01Informatique
01 INFORMATIQUE
L'hebdo de référence des décideurs informatiques.
Micro Hebdo
MICRO HEBDO
L'hebdo qui vous simplifie la micro
et Internet.
L'Ordinateur Individuel
L'ORDINATEUR INDIVIDUEL
Le mensuel informatique qui vous informe et vous conseille.
Nous contacter  |  Charte de confiance  |  Voir notice légale

01net.  -  01men  -  RMC  -  BFM Radio  -  BFM TV  -  TousLesPodcasts  -  01informatique.fr  -  Association RMC-BFM
Tous droits réservés © 1999 - 2009 Internext - 01net.