[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





6 réponses

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
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
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention  
 
essayes:

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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention  
 
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
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