Moteur de recherche de fichier

sofiane3993 Messages postés 68 Statut Membre -  
sofiane3993 Messages postés 68 Statut Membre -
Bonjour,

jai trouve ce code qui correspond a ce que je souhaite mais voila j'ai une erreur que je ne comprend pas tellement

voici le code si quelq'un peut m'aider il est le bienvenue

$d = dir("uploads/");

if(isset($_POST['submit']) AND !empty($_POST['mot'])){
$mot = trim($_POST['mot']);

while($entry = $d->read()) { 
    preg_match("#($mot+?)#s", $entry, $new);
    $data = trim($new[1]);
    if (!empty($data)) echo '<a href="'.$entry.'">'.$data.'</a><br />';
} 
$d->close();
}


<form action="recherche.php" method="post">
<input type="text" name="mot">
<input type="submit" name="submit" value="Envoyer">
</form>


ah et le code d'erreur est le suivant :

Notice: Undefined offset: 1 in C:\wamp\www\final\recherche.php on line 8

Dans un monde ou plus personne ne fais attention aux autres il est bon de voir que l'entraide existe encore.
(\ _ /)
(='.'=) Voici Lapinou. Aidez le à conquérir le monde
(")-(") en le reproduisant.

2 réponses

  1. sofiane3993 Messages postés 68 Statut Membre 2
     
    Bon je me suis repondu tout seul maintenant je n'ai plus de message d'erreur
    while($entry = $d->read()) { 
        if(preg_match("#($mot+?)#s", $entry, $new)){ 
        $data = trim($new[1]); 
        echo '<a href="'.$entry.'">'.$data.'</a><br />';
        } 
    }  
     
    1
  2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Tu peux déjà ajouter quelques vérifications avant de lancer le traitement ainsi qu'un peu de debug...

    du genre:
    $erreur = array();
    $d = dir("uploads/");
    
    if(isset($_POST['submit']) AND !empty($_POST['mot'])){
    $mot = trim($_POST['mot']);
    
    while($entry = $d->read()) { 
        preg_match("#($mot+?)#s", $entry, $new);
        if(is_array($news) && count($news)>0){
          $data = trim($new[1]);
          if (!empty($data)) echo '<a href="'.$entry.'">'.$data.'</a><br />';
        }else{
           $erreur[]['txt'] = $entry;
           $erreur[]['is_array'] = 'Not array ';
           $erreur[]['new']=$new;
        }
    } 
    $d->close();
    
    //affichage des erreurs....
    if(count($erreur)>0){
      print_r($erreur);
    }
    }
    
    


    Et/ou tu peux utiliser un IF sur preg_match...

     if(preg_match("#($mot+?)#s", $entry, $new)){
        $data = trim($new[1]);
        if (!empty($data)) echo '<a href="'.$entry.'">'.$data.'</a><br />';
    // ça retourne un résultat...
    }else{
     //aucun resultat trouvé
     $erreur[]['txt'] = $entry;
     $erreur[]['erreur']='aucun resultat';
    }
    


    Cordialement,
    Jordane
    1
    1. sofiane3993 Messages postés 68 Statut Membre 2
       
      oui tu a raison je devrais faire un peu de debug :) je vais essayer cela de suite
      0