suchmaschinenscript --> was ist falsch???
André
- php
Hallo,
ich benutze eine Suchmaschine auf meiner Seite, die eigentlich alle php seiten auf dem server durchsuchen sollte und die Treffer anzeigt. Allerdings geht da was nicht. Es wird kein Ergebnis angezeigt. Auch keine Fehlermeldung! Es kommt gar nichts. Wäre nett wenn ihr euch das mal anschaut. Hier das Script:
<?php
echo "<HTML><BODY>";
echo "<FORM ACTION=$PHP_SELF METHOD=POST> ";
echo "<INPUT TYPE=TEXT NAME=wort VALUE=$wort>";
echo "<INPUT TYPE=SUBMIT VALUE=Durchsuchen></FORM>";
$wort = strtolower(trim($wort));
if($wort) {
// Funktion zum Auslesen des Verzeichnisses
function read_dir($dir=".",$endung=".php") {
settype($dateinamen,"array");
if(!is_dir($dir)) return false;
$verzeichnis = dir($dir);
while($datei = $verzeichnis -> read()) {
if($datei[0] != "." && substr($datei,strlen($endung)*(-1)) == $endung) {
$dateinamen[] = $datei;
}
}
$verzeichnis->close();
sort($dateinamen);
return $dateinamen;
}
// Das Hauptprogramm
$dateinamen = read_dir(".");
for($i=0;$i<count($dateinamen);$i++) {
$name = $dateinamen[$i];
$datei = "$name";
$start = 0;
$fp = fopen($datei,"r");
while(!feof($fp)) {
$zeile = strtolower(trim(fgetss($fp,1024)));
if(strstr($zeile,$wort)) {
$name = substr($name,0,strlen($name)-4);
if (!$ergebnis) echo "Folgende Dateien enthalten Ihren Suchbegriff:<P>";
echo "<A HREF="$datei">$name()</A><BR>";
$ergebnis++;
break;
}
}
fclose($fp);
}
if(!$ergebnis) echo "Keine passenden Dateien gefunden";
}
echo "</BODY></HTML>";
?>
Die Suche ist auch eingebaut funktioniert nur leider nicht. Ihr könnts ja mal ausprobieren unter: www.movie-bar.de
Danke
Gruß
André
Hallo.
Welche PHP-Version benutzt Du? Neuere Versionen übernehmen nicht einfach Formular-Feldwerte als Variable. das Feld "wort" findest Du jetzt als $_POST['wort'] (bzw. bei GET in $_GET['wort']). Ebenso solltest Du $_SERVER['PHP_SELF'] verwenden statt $PHP_SELF
Grüße aus Würzburg
Julian
Hallo,
Danke für die antwort. Ich benutze php4. also hab das eben mal geändert, aber dann zeigt er mir eine Fehlermeldung an. Es musste doch nur der obere Teil verändert werden, wenn ich die richig verstanden habe. Die variable $wort bleibt doch vorhanden?!
Das sah dann so aus:
<?php
echo "<HTML><BODY>";
echo "<FORM ACTION=$_SERVER['PHP_SELF'] METHOD=POST> ";
echo "<INPUT TYPE=TEXT NAME=$_POST['wort'] VALUE=$wort>";
echo "<INPUT TYPE=SUBMIT VALUE=Durchsuchen></FORM>";
$wort = strtolower(trim($wort));
if($wort) {
// Funktion zum Auslesen des Verzeichnisses
......
Tut mir Leid aber ich weiß nicht genau was du meinst bzw. was alles verändert werden muss. Wäre nett wenn du mir das mal an einem Beispiel im Script zeigen könntest.
Gruß
André
Hallo.
Die variable $wort bleibt doch vorhanden?!
Nein, genau das nicht.
Müsste etwas so sein:
...
echo "<FORM ACTION="",$_SERVER['PHP_SELF'],"" METHOD="POST"> ";
echo "<INPUT TYPE="TEXT" NAME="wort" VALUE="",$_POST['wort'],"">";
...
// Wir erleichtern uns das umschreiben und setzen die Variable $wort
$wort = $_POST['wort'];
$wort = strtolower(trim($wort));
if(!empty($wort)) {
...
Grüße aus Würzburg
Julian