Pas de crochets dans un foreach :
foreach ( $_POST as $cle = $val) { }
tu avait oublié le > il me semble
de toute façon j'ai été submergé d'erreur et apres moulte modif, j'ai laiser tomber cette methode qui ne me plaisait pas vraiment
j'ai encore tout refais pour essayer de faire ça avec une boucle
voila ce que ça donne (je remet tout le code au cas où, mais commenter pour mieux sibler la boucle):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<title>:: Formulaire d'inscription ::</title>
<style type="text/css">
/* <![CDATA[ */
body {
text-align: center;
background-color: white;
}
#page {
width : 525px;
margin-left: auto;
margin-right: auto;
color: black;
background-color: gray;
border: 1px solid black;
text-align: center;
padding: 10px;
}
.titre {
font-family: verdana, helvetica, sans-serif;
font-size: 1.4em;
font-weight: bold;
text-decoration: underline;
text-align: center;
margin: 0;
padding: 0;
color: red;
}
p {
font-family: verdana, helvetica, sans-serif;
font-size: 10pt;
font-weight: bold;
text-align: left;
color: black;
}
label {
float: left;
font-family: verdana, helvetica, sans-serif;
font-size: 10pt;
font-weight: bold;
}
fieldset {
width: 500px;
padding: 10px;
text-align: right;
border: 3px double #FF8C00;
margin: 0;
clear: left;
background-color: navy;
}
input {
border: 1px solid #066;
background-color: #ff9;
color: black;
}
input.cases {
width: 200px;
margin-top: 3px;
}
input.verif {
width: 150px;
height: 30px;
background-color: blue;
font-weight : bold;
padding: 0;
margin: 0;
border: 0;
cursor: pointer;
}
input.verif:hover {
background-color: cyan;
}
div.c3 {
text-align:center;
margin-top: 1em;
}
.etoile {
color: red;
font-size: 1.3em;
font-weight: normal;
vertical-align: middle;
margin-right: 5px;
}
.legend {
background-color: red;
border: 3px double #FF8C00;
margin-top: 10px;
margin-bottom: 5px;
float: left;
}
.error {
text-align: left;
color: red !important;
}
.info {
font-family: verdana, helvetica, sans-serif;
font-size: 14pt;
font-style: italic;
font-weight: normal;
text-decoration: none;
cursor: help;
color: black ;
}
.info:hover {
color: gray;
}
/* ]]> */
</style>
</head>
<body>
<div id="page">
<?php
/**
* On commence par vérifier si le bouton soumettant le formulaire a été
* cliqué, "envoi" étant l'attribut "name" du bouton "submit"
* Sinon, on saute à la ligne 220 de ce code.
*/
if(isset($_POST['envoi']))
{
/* Récupération des données du formulaire */
$pseudo = isset($_POST['pseudo']) ? trim($_POST['pseudo']) : "";
$pass = isset($_POST['pass']) ? trim($_POST['pass']) : "";
$passverif = isset($_POST['passverif']) ? trim($_POST['passverif']) : "";
$prenom = isset($_POST['prenom']) ? trim($_POST['prenom']) : "";
$nom = isset($_POST['nom']) ? trim($_POST['nom']) : "";
$phone = isset($_POST['phone']) ? trim($_POST['phone']) : "";
$email = isset($_POST['email']) ? trim($_POST['email']) : "";
$adresse = isset($_POST['adresse']) ? trim($_POST['adresse']) : "";
$postal = isset($_POST['postal']) ? trim($_POST['postal']) : "";
$ville = isset($_POST['ville']) ? trim($_POST['ville']) : "";
$datenaiss = isset($_POST['datenaiss']) ? trim($_POST['datenaiss']) : "";
/**
* Définition des variables servant au traitement de l'adresse électronique et du numéro de
* téléphone: on utilise ici des expressions régulières.
*/
$valid_mail = "#^[^-_\.][a-z0-9-_\.]+[^-_\.]@[^-_\.][a-z0-9-_\.]+[^-_\.]\.[a-z]{2,4}$#";
$valid_phone = "#^\d{10}$#";
$valid_postal = "#^\d{5}$#";
$valid_format_datenaiss = "#(\d{2})/(\d{2})/(\d{4})$#";
/* Définition des variables de verification de la validité de la date */
$jour = substr($datenaiss, 0, 2);
$mois = substr($datenaiss, 3, 2);
$annee = substr($datenaiss, 6, 4);
/*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx*/
/*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX MA BOUCLE EST ICI XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx*/
/* boucle de filtrage */
$cle = 1;
while ( $cle <= 7 ) /* car je ne filtre que 7 champs */
{
$tableau = array(1 => "$pseudo", "$pass", "$passverif", "$prenom", "$nom", "$adresse", "$ville");
$invalid_insert_security = "!([<>#$%&])|(SELECT)|(UPDATE)|(INSERT)|(DELETE)|(REVOKE)|(GRANT)|(UNION)|(CREATE)|(ALTER)|(DROP)|((" {1,}")|(""{1,})|(""))|((\' {1,}\')|(\'\'{1,})|(\'\')|("\')|(\'"))!";
$string = $tableau[$cle];
if ((preg_match($invalid_insert_security, $string)))
{
$tableau_result[$cle] = true;
}else
{
$tableau_result[$cle] = false;
}
$cle++;
}
return $tableau_result;
/*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/ /*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/
/**
* Traitement de vérification des champs vides ou invalides (phone, date, postal et/ou email)
* Conditions de mauvaises réponses (champ vide par exemple)
*/
if (in_array (true, $tableau_result)||$pseudo == '' || $pass == '' || $passverif == '' || $prenom == '' || $nom == '' || $email == '' || $phone == '' || $adresse == '' || $postal == '' || $ville == '' || $datenaiss == '' || !(preg_match($valid_phone,$phone)) || $email == '' || !(preg_match($valid_mail, $email)) || !(preg_match($valid_postal, $postal)) || !(preg_match($valid_format_datenaiss,$datenaiss)) || (($datenaiss) && (preg_match($valid_format_datenaiss,$datenaiss)) && (checkdate($mois, $jour, $annee) == false)))
{
/* Action à adopter */
?>
<p class="titre">Informations incomplètes</p>
<p>Un (ou plusieurs) champ(s) obligatoire(s) n'a(ont) pas été correctement rempli(s).</p>
<?php
if (in_array (true, $tableau_result))
{
/* si caractere invalide */
print "<p class='error'>ALERTE DE SECURITE:<br />Vous avez utilisés des caractères interdits</p>\n";
}
if ($pseudo == '')
{
/* Si le champ pseudo est vide, */
print "<p class='error'>Vous n'avez pas précisé votre pseudo</p>\n";
}
if ($pass == '')
{
/* Si le champ pass est vide, */
print "<p class='error'>Vous n'avez pas précisé votre mot de pass</p>\n";
}
if ($passverif == '')
{
/* Si le champ pass est vide, */
print "<p class='error'>Vous n'avez pas reprécisé votre mot de pass</p>\n";
}
if ($passverif != $pass)
{
/* Si le champ pass et passverif sont different */
print "<p class='error'>Veuillez repréciser votre mot de pass !</p>\n";
}
if ($prenom == '')
{
/* Si le champ prenom est vide, */
print "<p class='error'>Vous n'avez pas précisé votre prénom</p>\n";
}
if ($nom == '')
{
/* Si le champ nom est vide, */
print "<p class='error'>Vous n'avez pas précisé votre nom</p>\n";
}
if ($phone == '')
{
/* Si le champ phone est vide, */
print "<p class='error'>Vous n'avez pas précisé votre numéro de téléphone</p>\n";
}
if (($phone) && !(preg_match($valid_phone,$phone)))
{
print "<p class='error'>Le numéro de téléphone doit comporter seulement des chiffres, de 6 à 10 chiffres sans espaces ni tirets !</p>\n";
}
if(!$email)
{
/* Si le champ email est vide, */
print "<p class='error'>Vous avez omis de mentionner une adresse électronique</p>\n";
}
if(($email) && !(preg_match($valid_mail, $email))) /* Si il y a une adresse inscrite mais invalide */
{
/* On vérifie LES DEUX conditions réunies (avec le sugne "&&"): si on ne vérifie que la validité, en ne
mettant pas d'adresse dans le formulaire, on obtient l'affichage des deux messages, or l'adresse à
ce moment là n'est pas invalide, elle est absente: le message d'invalidité ne s'applique donc pas. */
print "<p class='error'>L'adresse électronique saisie est invalide !</p>\n";
}
if(!$adresse)
{
/* Si le champ adresse est vide, */
print "<p class='error'>Vous avez omis de mentionner votre adresse</p>\n";
}
if(!$postal)
{
/* Si le champ code postal est vide, */
print "<p class='error'>Vous avez omis de mentionner votre code postal</p>\n";
}
if(($postal) && !(preg_match($valid_postal, $postal)))
{
/* Si il y a un code postal inscrit mais invalide */
print "<p class='error'>Le code postal saisie est invalide !</p>\n";
}
if ($ville == '')
{
/* Si le champ ville est vide, */
print "<p class='error'>Vous n'avez pas précisé votre ville</p>\n";
}
if(!$datenaiss)
{
/* Si le champ datenaiss est vide, */
print "<p class='error'>Vous avez omis de mentionner votre date de naissance</p>\n";
}
if(($datenaiss) && !(preg_match($valid_format_datenaiss, $datenaiss)))
{
/* Si il y a une date inscrite mais invalide */
print "<p class='error'>Le format de la date de naissance saisie est invalide !</p>\n";
}
/* Si il y a une date inscrite, au bon format, mais invalide */
if (($datenaiss) && (preg_match($valid_format_datenaiss,$datenaiss)) && (checkdate($mois, $jour, $annee) == false))
{
print "<p class='error'>La date de naissance saisie est invalide !</p>\n";
}
/**
* Si les vérifications ont généré des erreurs, affichage du formulaire
* contenant les données déjà saisies.
*/
?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post">
<p class="legend"><b> Données de connexion </b></p>
<fieldset>
<label for="label_pseudo">Votre pseudo :</label><span class="etoile">*</span><input type="text" id="label_pseudo" name="pseudo" maxlength="20" class="cases" value="<?php echo $pseudo ?>" /><a href="#" class="info" title="Chiffres et lettre uniquement !">?</a><br />
<label for="label_pass">Votre mot de pass :</label><span class="etoile">*</span><input type="password" id="label_pass" name="pass" maxlength="20" class="cases" value="" /><a href="#" class="info" title="Chiffres et lettre uniquement !">?</a><br />
<label for="label_passverif">Confirmation mot de pass :</label><span class="etoile">*</span><input type="password" id="label_passverif" name="passverif" maxlength="20" class="cases" value="" /><a href="#" class="info" title="Chiffres et lettre uniquement !">?</a><br />
</fieldset>
<p class="legend"><b> Données personnelles </b></p>
<fieldset>
<label for="label_prenom">Votre prénom :</label><span class="etoile">*</span><input type="text" id="label_prenom" name="prenom" maxlength="40" class="cases" value="<?php echo $prenom ?>" /><a href="#" class="info" title="Lettres uniquement !">?</a><br />
<label for="label_nom">Votre Nom de famille :</label><span class="etoile">*</span><input type="text" id="label_nom" name="nom" maxlength="40" class="cases" value="<?php echo $nom ?>" /><a href="#" class="info" title="Lettres uniquement !">?</a><br />
<label for="label_phone">Votre numéro de téléphone :</span></label><span class="etoile">*</span><input type="text" id="label_phone" name="phone" maxlength="10" class="cases" value="<?php echo $phone ?>" /><a href="#" class="info" title="10 chiffres uniquement !">?</a><br />
<label for="label_email">Votre adresse électronique :</span></label><span class="etoile">*</span><input type="text" id="label_email" name="email" maxlength="40" class="cases" value="<?php echo $email ?>" /><a href="#" class="info" title="Protection contre le spam assurer">?</a><br />
<label for="label_adresse">Votre adresse :</label><input type="text" id="label_adresse" name="adresse" maxlength="40" class="cases" value="<?php echo $adresse ?>" /><a href="#" class="info" title="Les caractères spéciaux sont interdits (sauf − et ’ ) !">?</a><br />
<label for="label_postal">Votre code postal :</span></label><input type="text" id="label_postal" name="postal" maxlength="5" class="cases" value="<?php echo $postal ?>" /><a href="#" class="info" title="Chiffres uniquement !">?</a><br />
<label for="label_ville">Votre ville :</label><input type="text" id="label_ville" name="ville" maxlength="40" class="cases" value="<?php echo $ville ?>" /><a href="#" class="info" title="Les caractères spéciaux sont interdits (sauf − et ’ )!">?</a><br />
<label for="label_datenaiss">Votre date de naissance :</label><input type="text" id="label_datenaiss" name="datenaiss" maxlength="10" class="cases" value="<?php echo $datenaiss ?>" /><a href="#" class="info" title="Format JJ/MM/AAAA !">?</a><br />
<div class="c3">
<input type="submit" class="verif" name="envoi" value="Envoyer" /> <input type="reset" class="verif" value="Recommencer" />
</div>
</fieldset>
</form>
<?php
}
else
{
/**
* Si aucun des champs obligatoire n'est vide et les données sont valides:
* Traitement des données
*/
print "TOUT DOIT ETRE CORRECT DANS LES ENTREE DU FORMULAIRE, MERCI DU COUP DE MAIN\n";
print("<p>Retour vers le formulaire de base, cliquez <a href="". $_SERVER['PHP_SELF'] ."" title="Retour vers le formulaire">ICI</a></p>");
}
}
/**
* Si cette page s'ouvre pour la première fois sans que le bouton soumettant le formulaire n'ait
* été cliqué, alors on affiche le formulaire normalement
*/
else
{
?>
<p class="titre">Complétez les informations pour ajouter votre nom à la liste des membres</p>
<p>Notez que les champs précédés d'une <span class="etoile">*</span>doivent obligatoirement être remplis.</p>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post">
<p class="legend"><b> Données de connexion </b></p><br /><br />
<fieldset>
<label for="label_pseudo">Votre pseudo :</label><span class="etoile">*</span><input type="text" id="label_pseudo" name="pseudo" maxlength="20" class="cases" tabindex="1" value="" /><a href="#" class="info" title="Chiffres et lettre uniquement !">?</a><br />
<label for="label_pass">Votre mot de pass :</label><span class="etoile">*</span><input type="password" id="label_pass" name="pass" maxlength="20" class="cases" tabindex="2" value="" /><a href="#" class="info" title="Chiffres et lettre uniquement !">?</a><br />
<label for="label_passverif">Confirmation mot de pass :</label><span class="etoile">*</span><input type="password" id="label_passverif" name="passverif" maxlength="20" class="cases" tabindex="3" value="" /><a href="#" class="info" title="Chiffres et lettre uniquement !">?</a><br />
</fieldset>
<p class="legend"><b> Données personnelles </b></p>
<fieldset>
<label for="label_prenom">Votre prénom :</label><span class="etoile">*</span><input type="text" id="label_prenom" name="prenom" maxlength="40" class="cases" tabindex="4" value="" /><a href="#" class="info" title="Lettres uniquement !">?</a><br />
<label for="label_nom">Votre Nom de famille :</label><span class="etoile">*</span><input type="text" id="label_nom" name="nom" maxlength="40" class="cases" tabindex="5" value="" /><a href="#" class="info" title="Lettres uniquement !">?</a><br />
<label for="label_phone">Votre numéro de téléphone :</span></label><span class="etoile">*</span><input type="text" id="label_phone" name="phone" maxlength="10" class="cases" tabindex="6" value="" /><a href="#" class="info" title="10 chiffres uniquement !">?</a><br />
<label for="label_email">Votre adresse électronique :</span></label><span class="etoile">*</span><input type="text" id="label_email" name="email" maxlength="40" class="cases" tabindex="7" value="" /><a href="#" class="info" title="Protection contre le spam assurer">?</a><br />
<label for="label_adresse">Votre adresse :</label><input type="text" id="label_adresse" name="adresse" maxlength="40" class="cases" tabindex="8" value="" /><a href="#" class="info" title="Les caractères spéciaux sont interdits (sauf − et ’ ) !">?</a><br />
<label for="label_postal">Votre code postal :</span></label><input type="text" id="label_postal" name="postal" maxlength="5" class="cases" tabindex="9" value="" /><a href="#" class="info" title="Chiffres uniquement !">?</a><br />
<label for="label_ville">Votre ville :</label><input type="text" id="label_ville" name="ville" maxlength="40" class="cases" tabindex="10" value="" /><a href="#" class="info" title="Les caractères spéciaux sont interdits (sauf − et ’ )!">?</a><br />
<label for="label_datenaiss">Votre date de naissance :</label><input type="text" id="label_datenaiss" name="datenaiss" maxlength="10" class="cases" tabindex="11" value="" /><a href="#" class="info" title="Format JJ/MM/AAAA !">?</a><br />
<div class="c3">
<input type="submit" class="verif" name="envoi" tabindex="12" value="Envoyer" /> <input type="reset" class="verif" tabindex="13" value="Recommencer" />
</div>
</fieldset>
</form>
<?php
}
?>
</div>
</body>
</html>
je n'est aucun message d'erreur mais le script ne se poursuit pas apparament
quelqu'un voit il pourquoi ça bug?