IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Vérifier la fonction eregi


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Par défaut Vérifier la fonction eregi
    Bonjour,

    Je fait une recherche dans un répertoire pour voir si les fichiers contient le mot clé mais si il n'existe pas j'affiche un message. J' ai chercher par tout dans le script pour afficher else mais ça ne marche pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    $searchfin = "maison";
     
    $dir2 = opendir('../region/'.$_GET['region'].'/'.$_GET['categorie'].'/annonce/');
    $tableau = array();
    $i=0;
    while (false !== ($File = readdir($dir2))) {
     
    if(eregi($searchfin,$File))
      {
       $tableau[] =  '../region/'.$_GET['region'].'/'.$_GET['categorie'].'/annonce/'.$File.'';
                                      }
     
     $i++;
     
                                       }
    closedir($dir2);
    rsort($tableau);
    Merci pour votre aide .

  2. #2
    FoxLeRenard
    Invité(e)
    Par défaut
    Bonjour,

    tu écris
    Je fait une recherche dans un répertoire pour voir si les fichiers contient le mot clé mais si il n'existe pas j'affiche un message
    Tu utilise eregi, mais ce n'est pas la meilleur fonction pour cela,
    donc prenons ton mot clé et faison du strpos ...
    par ailleur prends comme régle d'or pour pas te faire hacker de ne jamais utiliser _GET ou POST dans le corp de tes scripts

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
     
    <html><body><p align="center">
    <?PHP
    if (isset($_GET["region"])) $region=trim($_GET["region"]);
        else $region="";
    if (isset($_GET["categorie"])) $categorie=trim($_GET["categorie"]);
        else $categorie="";
     
    $searchfin = "maison";
     
    if ($categorie!="" && $region!="")
      {
        $dir2 = "../region/".$region."/".$categorie."/annonce/*.*";
        //============lire un repertoire================
        $data = glob($dir2); 
        foreach( $data as $filename)
          {
              if ( is_file($filename) )     
                        { 
     if (strpos($filename, $searchfin)  !== FALSE )
                              echo (" = ".$filename."<br />");     
                         }
          }
         echo ("============TERMINE====================<br />");
      }
    ?>
      <br /></p>
    </body>
    </html>
    le double !== est normal pour le cas ou le mot est en ^position =0 !!!

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Par défaut
    Merci pour cette réponse, j'ai ajouter ça $getpages++; :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    if(eregi($searchfin,$File))
      { $getpages++;
       $tableau[] =  '../region/'.$_GET['region'].'/'.$_GET['categorie'].'/annonce/'.$File.'';
                                      }
     
                       $i++;
     
                                       }
    if ($getpages == 0) {
    echo("Pas de résultats...");
    }

  4. #4
    FoxLeRenard
    Invité(e)
    Par défaut
    Super,


    juste un regret pour mon conseil


    par ailleur prends comme régle d'or pour pas te faire hacker de ne jamais utiliser _GET ou POST dans le corp de tes scripts

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if (isset($_GET["region"])) $region=trim($_GET["region"]);
        else $region="";
    Ce n'est pas que tu ne sois pas libre, mais comprend bien que comme tu écris, nimporte qui peut t'injecter un javascript ou des ordres mysql !!

  5. #5
    Membre éprouvé
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2008
    Messages : 106
    Par défaut
    ne pas oublier qu'il faut privilégier les fonctions natives de manipulation de chaîne plutôt que les expressions régulières et préférer les PCRE aux POSIX (tout cela pour des raisons de rapidité).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Qu'utiliser à la place de la fonction eregi ?
    Par Alexandrebox dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 06/04/2012, 12h18
  2. erreur fonction eregi
    Par ideal23 dans le forum Langage
    Réponses: 2
    Dernier message: 28/02/2010, 20h27
  3. [RegEx] Récupérer résultat fonction eregi
    Par dev197 dans le forum Langage
    Réponses: 4
    Dernier message: 30/09/2009, 15h51
  4. [RegEx] Fonctions eregi ou ereg
    Par highvalue.fr dans le forum Langage
    Réponses: 9
    Dernier message: 21/08/2009, 15h48
  5. Vérifier existence fonction dans une classe
    Par zoparg dans le forum Langage
    Réponses: 2
    Dernier message: 17/02/2007, 13h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo