Tutorial Suchen

Tutorials von Thomas Frei-Herrmann

Tutorial Dateien im Verzeichnis suchen mittels Formular-Eingabe

Für eine weitere Möglichkeit der Datei-Anzeige, guckt bitte auch hier.

Zunächst erstellt Ihr Euch mit den Formular-Werkzeugen von NOF ein ganz normales Formular, hier mit 1 Eingabefeld zur Suche in einem Verzeichnis, aus dem dann die gefundenen Dateien angezeigt werden sollen.

Zieht Euch das Eingabefeld auf und gebt diesen den Namen “Suche”.
Um zunächst alle Dateien in meinem Verzeichnis zu sehen, könnt Ihr lediglich einen Punkt in das Eingabefeld eintragen.

... markiert die Schaltfläche und tragt bei “Aktion” die Seite, auf der das Ergebnis der Suche angezeigt werden soll, ein. Hier ist das meine Seite “ergebnis”, die auf die Dateierweiterung .php umgestellt sein muss, damit mein PHP-Skript (unten) auch verarbeitet werden kann und Euer Webspace muss natürlich auch die PHP-Skriptsprache beinhalten. Achtet dabei auf die korrekte relative Pfadangabe zu dieser Seite.

Bei “Methode” wählt Ihr “Verschicken”, nämlich an die Seite “ergebnis.php

... außerdem erstellt Ihr noch ein verdecktes Feld, das ich hier “action” genannt und mit dem Wert “send” versehen habe. Dazu klickt Ihr unten links auf das “+” Zeichen. Dieses Feld benötigen wir, um im Skript zu prüfen, ob das Formular überhaupt gesendet wurde.

Auf der Seite “ergebnis.php” zieht Ihr Euch eine Textfeld auf und fügt das Skript unten in den HTML-Code Editor des Textfeldes ein.

<?php
   
    $SuchVerzeichnis = '../assets/fotos';
   
    error_reporting(0);
   
    if (isset($_POST['action']) && ($_POST['action']=='send') && isset($_POST['Suche'])){
      
       $Suche = $_POST['Suche'];
       // Bei Eingabe nur einen Punkt, kleine Buchstaben a bis z, große Buchstaben A bis Z sowie Zahlen 0 bis 9 zulassen
       $gueltiger_Such_Name = '/^[.a-zA-Z0-9]+$/';
      
       if (preg_match($gueltiger_Such_Name, $Suche)){
         
          // Verzeichnis öffnen
          $verzeichnis  = opendir($SuchVerzeichnis);
         
          // Verzeichnis lesen
          while (false !== ($file = readdir($verzeichnis))) {
            // Höhere Verzeichnisse nicht anzeigen!
            if ($file != "." && $file != ".." && (substr_count($file, $Suche) >= 1)) {
               // zum DateiNamenArray zufügen, um die Ausgabe alphabetisch zu sortieren
               $DateiNamenArray[] = $file;
            }
          }
         
          // Dateien alphabetisch sortieren
          sort($DateiNamenArray);
         
          // Ausgabe der Anzeige-Schleife
          foreach ($DateiNamenArray as $Index => $DateiName) {
            // Link erstellen und Anzeige
            echo "<a href=\"$SuchVerzeichnis/$DateiName\">$DateiName</a><br>\n";
          }
         
          if ($DateiName == ""){
            
             echo "<span style='color : #FF0000'><b>keine Fundstellen</b></span>";
            
          }
         
          // Verzeichnis schließen
          closedir($verzeichnis);
         
          } else {
            
             echo "<span style='color : #FF0000'><b>Du hast unzulässige Zeichen eingegeben</b></span>";
            
       }
      
       } else {
         
          echo "<span style='color : #FF0000'><b>keine Fundstellen</b></span>";
         
    }
   
?>

... natürlich muss das Verzeichnis, in dem gesucht werden soll, auch so auf Eurem Server existieren bzw. von Euch im Skript oben angepasst werden. Ihr müsst also diesen Pfad anpassen.

Mit der gelb markierten IF-Bedingung wird mittels des verdeckten Feldes geprüft, ob das Formular überhaupt gesendet wurde.

Die fett markierten POST-Variable entspricht dem “Namen” des Eingabefeldes.

nach oben

Für eine weitere Möglichkeit der Datei-Anzeige, guckt bitte auch hier.

Viel Erfolg!

diese Seite weiter empfehlen



Counter Statistik