[PHP] erreur offset

digsaw_- Messages postés 537 Statut Membre -  
digsaw_- Messages postés 537 Statut Membre -
Bonjour,

Voici mon code

$d = dir("./");

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="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" name="mot">
<input type="submit" name="submit" value="Envoyer">
</form>

et voici l'erreur lors de la validation :

undefined offset : 1 on line 13

line 13 = $data = trim($new[1]);

Merci d'avance



--
Digsaw
'Avoir une section fumer dans un restaurant, c'est comme avoir une section pisseur dans une piscine !'

6 réponses

  1. jojo673 Messages postés 235 Statut Membre 44
     
    C'est parce que $new[1] n'existe pas, la clé numéro 1 est en dehors du tableau, essaye avec $new[0].
    Ou alors c'est la regex qui n'est pas juste et ne trouve rien ...
    0
  2. digsaw_- Messages postés 537 Statut Membre 58
     
    j'ai déjà essayer avec $new[0] mais sa me fait la même erreure.
    0
  3. Alain_42 Messages postés 5413 Statut Membre 904
     
    essayes:

    while($entry = $d->read()) { 
        if(preg_match("#($mot+?)#s", $entry, $new)){ 
        $data = trim($new[1]); 
        echo '<a href="'.$entry.'">'.$data.'</a><br />';
        } 
    } 
    
    0
  4. digsaw_- Messages postés 537 Statut Membre 58
     
    Merci.

    Du coup l'erreure ne s'affiche plus !

    Maintenant reste a voir pourquoi je n'arrive pas a avoir le résultat de ma recherche ^^ !

    Merxci pour votre aide !
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Alain_42 Messages postés 5413 Statut Membre 904
     
    mets des echo pour voir:

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


    et essayes aussi:

    $pattern="/#(".$mot."+?)#s/";
    preg_match($pattern, $entry, $new)
    
    0
  7. digsaw_- Messages postés 537 Statut Membre 58
     
    echo "<br />Entry= ".$entry." mot= ".$mot;

    Me montre bien que le entry marche puisqu'il me met la liste des fichier que je cherche.

    et le $mot récupère bien la valeur du INPUT.

    Mais si je rajoute pas de echo, toujours aucuns résultats...

    même en essayant avec ceci :

    $pattern="/#(".$mot."+?)#s/";
    preg_match($pattern, $entry, $new)
    0