Vérifier code postal php

bizerte77 Messages postés 22 Date d'inscription samedi 22 avril 2006 Statut Membre Dernière intervention 13 septembre 2010 - 21 mai 2009 à 15:58
bizerte77 Messages postés 22 Date d'inscription samedi 22 avril 2006 Statut Membre Dernière intervention 13 septembre 2010 - 21 mai 2009 à 16:25
Bonjour,

J'aimerai vérifier la saisie du code postal (4chiffres minimum (Belgique) et 5 chiffres maximum (France)), j'ai écris ce code:
 if (!eregi("^([0-9]{4,5})$", $postal )) {
echo "le code postal est erroné";
}

Et j'ai ce message d'erreur: Notice: Undefined variable: postal in D:\wamp\www\gratuit\pages\inscription.php on line 48

le code postal est erroné

J'ai donc un problème avec ma variable postal... Mais comment faire? Je suis débutante, j'ai pas encore les bon réflexes!

Je vous remercie

Bonne journée

4 réponses

nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
21 mai 2009 à 16:10
D'où sort ta variable$postal ? Est-ce qu'elle est initialisée avant d'appeler l'expression rationnelle ?

Un message "undefined variable" signifie en général qu'on appelle une varaible avant d el'avoir définie et initialisée.
0
bizerte77 Messages postés 22 Date d'inscription samedi 22 avril 2006 Statut Membre Dernière intervention 13 septembre 2010
21 mai 2009 à 16:16
Bonjour,

Je crois que mon erreur vient de là, elle n'est pas initialisé avant... Je débute et donc je ne sais pas comment mettre tout ça en place...
Voici mon code <?php?> en entier, le code postal est à la ligne 47.

<?php
function connectgratuit(){
    $base= mysql_connect ('localhost','root','');
    mysql_select_db ('gratuit',$base);
}

if(isset($_POST['valider'])){
    $champs_vide=array();
       
    if (empty($_POST['prenom'])){
         $champs_vide[]='"prenom"';
    }
   
    if (empty ($_POST['pseudo'])){
         $champs_vide[]='"pseudo"';
    }
           
    if (empty ($_POST['postal'])){
         $champs_vide[]='"code postal"';   
    }
   
                       
    if (empty($_POST['email']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {      
           $champs_vide[] = '"Email"';
          echo 'Email invalide';
          $champs_mail[] = array();
          $champs_mail[] = "invalie";                       
    }
   
    if (empty ($_POST['pass'])){
         $champs_vide[]='"mot de passe"';   
    }
   
    if (empty ($_POST['confirm_pass'])){
         $champs_vide[]='"confirmer mot de passe"';
    }
   

   if ( $_POST['confirm_pass'] != $_POST['pass'] ) {
   
      echo 'Les 2 mots de passe sont différents! ';
      $champs_double = array();
      $champs_double[] = "doublons";
}

//VERIFIER LE CODE POSTAL
if (!eregi("^([0-9]{4,5})$", $postal )) {
echo "le code postal est erroné";
}
//FIN DE VERIFICATION

connectgratuit();

//VERIFIER LE PSEUDO
$pseudo = $_POST['pseudo'];
$verif_pseudo = mysql_query("SELECT pseudo FROM inscription WHERE pseudo='$pseudo'");
if (mysql_num_rows($verif_pseudo) != 0)
{
    echo 'Le pseudo existe déjà';
}
//FIN DE VERIFICATION

   if (empty ($champs_vide) && empty($champs_double) && empty($champs_mail)){       
       
      $prenom=$_POST['prenom'];
      $pseudo=$_POST['pseudo'];
      $postal=$_POST['postal'];
      $email=$_POST['email'];
      $pass=$_POST['pass'];
      $confirm_pass=$_POST['confirm_pass'];   
   
    echo '
Votre inscription a bien été pris en compte.
';
   
   
   
   
       $sql='INSERT INTO inscription VALUES("","'.$prenom.'","'.$pseudo.'", "'.$postal.'", "'.$email.'","'.$pass.'", "'.$confirm_pass.'",NOW())';
   
       mysql_query($sql) or die('Erreur SQL!'.$sql. '
' .mysql_error());
   
       mysql_close();
                           } //champs_vide
   
  else {
      if (!empty($champs_vide)){
        echo '
Merci de remplir le champs suivant:
' .implode($champs_vide). '
';   
       }
  }
      
} //valider

   
?>
0
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
21 mai 2009 à 16:21
et
if (!eregi("^([0-9]{4,5})$", $_POST['postal'] )) {
0
bizerte77 Messages postés 22 Date d'inscription samedi 22 avril 2006 Statut Membre Dernière intervention 13 septembre 2010
21 mai 2009 à 16:25
Et bien merci ça fonctionne

j'avais testé cette manière mais au lieu de l'écrire $_POST['postal'] ce qui est tout à fait logique, je l'ai écris $_POST['$postal'] ce qui est beaucoup moins logique...

Merci mille fois

Bonne journée
0
Rejoignez-nous