Christoph Schnauß: Error 500

Beitrag lesen

hallo,

hier die HP zu dem Script: http://www.planetc.de

Ich empfehle dir nochmals dringlich, dir die Forums-FAQ anzuschauen, um zu erfahren, wie du hier Links schreiben solltest. Diese Lektüre erklärt dir auch, was, wie und wieviel du aus einem vorangegangenen posting zitieren solltest.

Dieses "walk_dir" ist möglicherweise eine Funktion, die noch irgendwoanders in deinem Script definiert worden sein müßte.
Hier ist nochmal das walk_dir enthalten.

Erscheint mir als etwas umständlich, mag aber so angehen.

Und der Wert von $root_dir ist in dem von dir jetzt angegebenen Scriptausschnitt ebenfalls nicht enthalten.
Das root_dir ist in der Datei config.inc.php enthalten.

Und welchen Wert hast du dort eingetragen?

Kennst Du ein Script, das läuft und für einen Deppen wie mich besser zu verstehen ist?

Es gibt jede Menge PHP-Suchscripts im Internet. Such dir eins aus. Besser ist es allerdings, wenn du PHP lernst und dir selber eins schreibst.

Das ganze besteht aus vielen Dateien

Nein. Es sind lediglich zwei Dateien bzw. Scripts, die die gesamte "Arbeit" machen.

Schau dir nochmal diesen Teil deines Scrips an:

if (empty($cont_part)) {
    $tmpl = preg_replace("=[NO_MATCH]=", $no_match, $tmpl);
} else {
    $tmpl = preg_replace("=[NO_MATCH]=", "", $tmpl);
}

Der erste Teil legt fest, was das Script ausgeben soll, wenn bei der Auswertung der Eingabe kein Suchergebnis zustandekam oder die Eingabe nicht erlaubt (leer oder zuwenig Buchstaben) war. Dann soll der Wert der Variablen $no_match gemeinsam mit der eingelesenen Vorlage ausgegeben werden  -  und das passiert auch teilweise. $no_match wird in deiner config.inc.php mit dem Wert "keine Treffer" vorbelegt, das heißt, wenn ein "falsches" Suchwort eingegeben wird, das es auf deinen Seiten nicht gibt, soll eigentlich diese Anzeige "keine Treffer" kommen, aber stattdessen kommt Error 500. $tmpl kann bei leerem Formular oder zuwenig Buchstaben außer der eingelesenen Vorlage unterschiedliche Werte erhalten. Dann ist $no_match nicht vorhanden und es erscheint das, was du "Fehlermeldung" genannt hattest - und das passiert auch, es gibt keinen Error 500.
Der zweite Teil, nach dem "else", legt fest, was angezeigt werden soll, wenn es für den Suchbegriff irgendeine Entsprechung in deinem Webangebot gibt. Dafür wird keine Variable $no_match benötigt, aber der Inhalt der Variablen $tmpl muß die gefundenen Stellen enthalten.
Schlußfolgerung: Dort, wo deine Variable $tmpl mit dem (verarbeiteten) Wert von $search_exp gefüllt wird, muß irgendetwas "kaputt" sein. Also suche dir alle diese Stellen und schau nach, was da passieren soll. Du mußt verstehen lernen, wie dein Script arbeitet, es macht keinen Sinn, dir irgendein "funktionierendes" anderes Script anzubieten.

Grüße aus Berlin

Christoph S.