Fonction de validation du format d'une @IP

cs_faty86 Messages postés 20 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 5 juin 2008 - 4 juin 2008 à 18:12
winwarrior Messages postés 654 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 10 février 2009 - 4 juin 2008 à 19:54
Salut tout le monde !!
J'ai integré une fonction( ki retourne true si une adresse IP passée en parametre est valide et False sinon) dans un code PHP ki permet de modifier des adresses IP. = =>Le but c'est de verifier  que les valeurs saisies sont correctes avant de les modifier.
 Lors de l'execution je n'ai aucune erreur mais j'ai une partie du code qui ne s'execute pas!
voici le code :

 <?php
function validerIP($ip)
     {
       
     if(substr_count($ip,'.')!=0)
       {
        $tab =array();
        $tab=explode(".",$ip);// mettre les parties de la chaines dans un tab("." est le separateur)
        if(sizeof($tab)==4)  // verification ke le tableau a 4 champs
           {
                $k=0;
      
                while(($k<sizeof($tab)) && (is_numeric($tab[$k])) )
                   {  $k++;
                   }
      
                if($k==3) // si tous les champs st numeric
                      {   
      
                          $k=0;
                          while( ($k<4) && (intval($tab[$k])<=254) ) // on parcoure si les champs sont inf ou = a 254
                            {  $k++;
                            }
                          if($k==3 ) // si ts les champs st <= a 254
                                { return true;}
                          else
                                 {return false ;}
                        }
                 else
                            {return false;}
            }


         else
 
                  {return false;}
       }
       else
          {return false;}
    
     }
    if(!session_is_registered("priv"))
 {
    session_register("priv");
 }             
    
                $link = mysql_connect("localhost","root","");
  mysql_select_db('administration equip1');
$err="L adresse ";
$c=0;
echo'<html>';
echo'<head>';


             
                echo'<link rel="stylesheet" href="style.css" media="screen" type="text/css" />';
              echo'</head>';




               if (strcmp($_POST["zone3"],"")==0 ||strcmp($_POST["zone4"],"")==0 || strcmp($_POST["zone5"],"")==0 )
                 {
                        $x=1;
                        echo "<SCRIPT LANGUAGE="JavaScript">\n";
           
                        echo 'alert("Vos données sont invalides: veuillez remplir tous les champs");';
 
                  echo "</SCRIPT>\n";                //cette erreur est affichée c bon si je ne rempli pas un ou des  champ.
                 }


              else // A partir de la rien est executé apparemment car quelque soi les données que j'insère j'ai le bouton "retour a la  page d'acceuil".
                  {
                    if(!validerIP($_POST["zone3"]))
                         {$c++;
                          $err=$err."IP_CNX";
                         }
                    else
                       { if(!validerIP($_POST["zone4"]))
                         {$c++;
                          $err=$err.",IP_Planet";
                         }
                         else
                              { if( !validerIP($_POST["zone5"]))
                                   {$c++;
                                    $err=$err."et IP_LAN_CNX";
                                   }
                                else


                                   {
                                     if($c!=0)
                                        {if($c==1)
                                              {  
                                                echo "<SCRIPT LANGUAGE="JavaScript">\n";
           
                                                echo 'alert($err."est invalide");';
 
                                                echo "</SCRIPT>\n";
                                              }
                                         else
                                              {  
                                                echo "<SCRIPT LANGUAGE="JavaScript">\n";
                   
                                                echo 'alert($err."sont invalides");';
 
                                                echo "</SCRIPT>\n";
                                              }
                          
                                        }




                                     else
                                       {
                                         $res=mysql_query("select * from Connexion where ID_CNX='".$_POST["zone1"]."'") or die("requete res non executee");


                                         $lig=mysql_fetch_array($res);
                                  mysql_query("UPDATE connexion SET Type_CNX='".$_POST["typ_cnx"]."' WHERE ID_cnx='".$_POST["zone1"]."'") or ("requete update nom non executee");


                                         mysql_query("UPDATE client SET IP_CNX='".$_POST["zone3"]."' WHERE ID_CNX='".$lig['ID_CNX']."'") or ("requete update nom non executee");
                                         mysql_query("UPDATE client SET IP_Planet='".$_POST["zone4"]."' WHERE ID_CNX='".$lig['ID_CNX']."'") or ("requete update nom non executee");
                                         mysql_query("UPDATE client SET LAN_CNX='".$_POST["zone5"]."' WHERE ID_CNX='".$lig['ID_CNX']."'") or ("requete update nom non executee");
                     
                   
                                         echo'<center> MODIFICATIONS DE LA CONNEXION EFFECTUEES AVEC SUCCES
</center>';
                                         echo'

';


  
                                         echo'';
                                    echo'
';
                                       }
                                   }
                             }
                     }
              }
 
 if(strcmp($_SESSION['priv'],"admin") ==0) ===>  executé
 {
  echo'<form name="ad" action="admin.php">';
  echo'<center></center>';
  echo'</form>';
 }
 else
 {
  echo'<form name="tech" action="tech.php">';
  echo'<center></center>';
  echo'</form>';
 }
 
 echo'';
 echo'</html>';
                       
mysql_close($link);
?>

Merci de m'aider car vraiment je ne vois pas l'origine de l'erreur!!!

1 réponse

winwarrior Messages postés 654 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 10 février 2009 1
4 juin 2008 à 19:54
Salut,

if (ip2long('3232.423432') === false) echo 'Adresse ip incorrecte';

Rapide et efficace =)

win
0
Rejoignez-nous