Recherche de fichier *.pdf sur répertoire serveur

Fermé
chcchc Messages postés 2 Date d'inscription jeudi 23 août 2018 Statut Membre Dernière intervention 4 septembre 2018 - Modifié le 23 août 2018 à 15:25
 Utilisateur anonyme - 23 août 2018 à 17:37
J'ai passé de php 4.4.4 à php 7.2.7 et mon script de recherche de fichier pdf sur un répertoire du serveur ne fonctionne plus.

En cliquant sur la flèche "descendre avec la fleche....." , la variable chercher contient "*.pdf" donc il liste tous les fichiers pdf du répertoire qualite et cela fonctionne.

mais ensuite dans la case "recherche" je veux qu'il me liste uniquement tous les fichiers qui commence par "qua002" donc j'écrit qua002 et c'est là que le problème surgit. La variable provenant du formulaire est toujours à blank. Donc il n'est plus possible de recherche des documents spécifiques.

En cliquant sur la flèche "Descendre avec la flèche...", la recherche est vide car la variable cherche est blank.

Merci de votre aide. Je vous montre le script qui a été modifié plusieurs fois sans succès.

<?php
global $cherche;
// si variable=0
//if(! $HTTP_POST_VARS) $cherche=".pdf";
if(empty($_POST)) $cherche=".pdf";
// la variable $cherche revient à blank
?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
 <p><span class="Style3"><span class="Style4">IT salon de coiffure</span><span class="Style5"> :</span><br> 
  je noterai <span class="Style1">coif </span>ou <span class="Style1">0046</span> (si no QUALITE connu) sous recherche</span><br>
  <br>
      <span class="Style2"><span class="Style3"><span class="Style4">Obervation significatives de la vie du résidant</span><span class="Style6"> :</span> <br>
      je noterai <span class="Style1">obs </span></span></span><span class="Style3">ou <span class="Style1">0002</span> sous recherche</span></p>
 <p>Recherche<br>
   <input name="cherche" type="text" value=""/>
   <select name="fichier" onChange="openDoc(this)">
     <option value=".">DESCENDRE AVEC LA FLECHE ET CLIQUER SUR LE FICHIER.</option> 
     
     <?php
 
 //stripos($file,$cherche)
 //strtoupper convertir en majusqule 
 if ($handle =opendir('qualite/'))
 {
  while (false !== ($file = readdir($handle)))
  {
   if ($file != "." && $file != ".." && strstr(strtoupper($file),strtoupper($cherche))==true )
   {
    ?>
     <option value="qualite/<?php echo $file; ?>"><?php echo $file;?></option>
     <?php
   }
  }
  closedir($handle);
 }
 ?>
        </select>
      <input type="submit" class="Style1" value="Rechercher" />
    </p>
</form>

                     <?php echo $cherche;?>
              </span>
 
                    <br/>


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

1 réponse

Utilisateur anonyme
23 août 2018 à 17:37
Bonjour

De 4.4.4 à 7.2.7, c'est le grand écart !
Dans les vieilles versions de PHP, il y avait une option par défaut qui créait automatiquement $cherche si $_POST['cherche'] existait. C'était une gros trou de sécurité.
Depuis la version 5, les variables ne sont plus créées par défaut. À toi de le faire :

if (isset($_POST['cherche']) $cherche=$_POST['cherche']; else $cherche='.pdf';

ou, si tu comprends l'opérateur ternaire :
$cherche = isset($_POST['cherche']) ? $_POST['cherche'] :'.pdf';
0