Suchmaske in den Banner

Bitte Beitrag vom 25.08.09 beachten!

Guten Abend,

ich habe mir bei http://www.planetc.de/download/planetsearch/planetsearch.html ein Suchskript besorgt. Aber irgendwie hat es mit dem Include-Befehl im Title-Tag stellenweise Probleme und zeigt Warnungen an.
Sucht mal unter Link entfernt nach Helena. Dort sehr ihr es.
Kann mir jemand erklären, warum bei einigen Ergebnisse Warnungen angezeigt werden und bei anderen nicht? Ich komme einfach nicht dahinter. Wenn ich include wegnehme, geht alles wie gewollt. Vielen Dank.

Gruß elsner

PS: Für was steht eigentlich “./”. Ich habe auf die Schnelle nichts gefunden. Ich kenne nur “/” und “…/”.

Bei welchen kommen denn keine?

. steht für das aktuelle Verzeichnis.

Dein Script heisst
/users/volner-reisel/www/_bausteine/suche/planetsearch.php
also befindest du dich im Verzeichnis
/users/volner-reisel/www/_bausteine/suche/

Wenn du dort jetzt …/_bausteine/title.php einbinden willst, dann gehst du also mit …/ erst mal ein Verzeichnis nach oben, bist also dann in
/users/volner-reisel/www/_bausteine/

Und darin müsste es jetzt noch mal ein Verzeichnis namens _bausteine geben, in dem dann die Datei title.php liegt - das ist wohl aber nicht der Fall, oder?

Was noch wundert, wieso da was von “eval()'d code” steht - welche Veranlassung gibt’s, bei so einer Funktionalität eval zu nutzen?

Entschuldige, ich weiß nicht ganz, wie das mit dem Zitieren geht. Deshalb alles der Reihe nach.

Wenn ich nach Helena suche, wird das erste und die letzten vier Ergebnisse mit Warnung angezeigt. Bei den anderen Ergebnissen erscheint der Titel der Zielseite, so wie es sein soll.

Danke wegen dem “./”. Gut zu wissen.

Ja, das Suchskript nennt sich “planetsearch.php” und liegt unter dem angegebenen Pfad (_bausteine/suche/). Aber was das Seltsame ist, ich gehe immer ein bis drei Ebenen höher.
Wenn ich include absolute eingebe (/_bausteine/title.php) werden irgendwelche Style-Daten statt dem Titel angezeigt.

Was mir eben aufgefallen ist: Wenn ich zwei Ebenen höher gehe, funktioniert es. Bei einem Sprung von einer oder drei Ebenen nicht. Mag das Suchskript keine ungerade Anzahl?

Warum im Skript “eval()'d code” benutzt wird, kann ich dir nicht erklären. Das habe ich so übernommen.

Danke für deine bisherige Hilfe. Vielleicht kannst du mir noch etwas weiter helfen.

Entweder quote-Tags manuell einfügen, oder Text markieren und den Button über dem Eingabefeld nutzen …

Seltsam daran ist nur, dass du hier nach dem Rateprinzip vorgehst, anstatt logisch.

Hurra - das deckt sich ja dann mit dem, was ich dir gerade eben erklärt habe …

Nein, das Script mag vermutlich einfach nicht “belogen” werden, sondern will schlicht und einfach eine korrekte Pfadangabe haben!

Es sollte doch eigentlich nicht so schwer sein, mal kurz logisch nachzudenken, sich zu überlegen, wie die richtige Pfadangabe lauten muss, und die dann anzugeben - anstatt wild herumzuraten …?

Ja, ich verstehe was du meinst, kann es aber in meinem Fall nicht umsetzen.

Wenn ich mir mal meine Seite unabhängig vom Suchskript betrachte, benutze ich überall im Title-Tag include. Dort habe ich je nach Ebene ein- bis dreimal …/ benutzt, um zu der Datei zu kommen, die includet werden soll. Das funktioniert auch überall.

Wenn ich mir jetzt noch zusätzlich das Suchskript betrachte, macht das include Probleme. Nach meinen derzeitigen Kenntnissen könnte ich das nur durch eine absolute Angabe umgehen.

Also würde ich …/…/…/_bausteine/title.php zu /_bausteine/title.php abändern. Aber dadurch erscheint nicht mehr der Titel, sondern CSS-Befehle. Leider kann ich momentan keine Beispielseite hochladen, da ich mich bei Filezilla nicht anmelden kann.

Also wie gesagt, ich versehe was du meinst. Aber wenn ich meine Seite komplett betrachte, kann ich es mit meinem Wissen nicht umsetzen.

Warum eigentlich? Es reicht doch eigentlich, dort den Inhalt einer Variablen auszugeben, die vorher irgendwo angelegt wurde (das dann meinetwegen auch per include eines umfangreicheren Scriptes). Aber include, um nur einen winzigen Textwert einzubinden? Hat ein bisschen was von Kanone und Spatzen …

Das ist auch falsch, weil das / zur Dateisystemwurzel des Servers zeigt.
Da liegen deine Dateien aber nicht, weil du nicht der einzige Benutzer auf dem Server bist.

Wo deine Dateien liegen, verrät dir die Ausgabe von $_SERVER[‘DOCUMENT_ROOT’].
Und den Inhalt dieser Variablen kannst du auch als Präfix benutzen, an das du dann die Ordnerstruktur entsprechend der innerhalb deines Nutzerverzeichnisses anhängst - damit erreichst du dann von “überall” aus den gleichen Ort, egal wo sich dein Script nun befindet.

Warum eigentlich? Es reicht doch eigentlich, dort den Inhalt einer Variablen auszugeben, die vorher irgendwo angelegt wurde (das dann meinetwegen auch per include eines umfangreicheren Scriptes). Aber include, um nur einen winzigen Textwert einzubinden? Hat ein bisschen was von Kanone und Spatzen …[/quote]
Ich habe include beim Title benutzt, da ich demnächst eine eigene Domain beziehen möchte und der Name noch nicht ganz klar ist. Auf diesen Beitrag hast du, glaube ich, auch reagiert.
Wie würde dein oben genannter Vorschlag denn in meinem Fall konkret aussehen? Es wäre sehr nett, wenn du mir das noch verraten könntest.

Das ist auch falsch, weil das / zur Dateisystemwurzel des Servers zeigt.
Da liegen deine Dateien aber nicht, weil du nicht der einzige Benutzer auf dem Server bist.

Wo deine Dateien liegen, verrät dir die Ausgabe von $_SERVER[‘DOCUMENT_ROOT’].
Und den Inhalt dieser Variablen kannst du auch als Präfix benutzen, an das du dann die Ordnerstruktur entsprechend der innerhalb deines Nutzerverzeichnisses anhängst - damit erreichst du dann von “überall” aus den gleichen Ort, egal wo sich dein Script nun befindet.[/quote]
OK, das erklärt dann auch die CSS-Angaben.

Das oben genannte Problem weiß ich zu umgehen. Ich werde den Titel wieder textlich eintragen. Jedoch ist ein neues, ähnliches Problem aufgetaucht.

Ich möchte das Suchfeld im Banner mit Include unterbringen. Der Banner wird ebenfalls mit Include eingefügt. Wenn man eine Seite aus dem Root-Verzeichnis aufruft, funktioniert die Suche einwandfrei. Wenn man jedoch auf einer Seite in einem Unterordner die Suche durchführen will, wird die auszuführende Daten (suchen.php) nicht mehr gefunden.

Include des Banners:

[code]


<?php include ("suche/suche.php"); ?>
[/code]

suche.php schickt die Anfrage wie folgt:

Mir ist klar, dass es so nicht mit den Unterordnern funktioniert. Aber wie kann ich dieses Problem umgehen? Ich werde doch nicht der einzige sein, der eine Suche auf allen Seiten einbaut.

Vielen Dank im Voraus.

Edit: Meine Seite: http://www.volner-reisel.bplaced.net

Bei einem User hier aus dem Forum habe ich eine nette Idee entdeckt.

Er verweist auf die Datei durch die komplette URL.
Ist das eine pasable Lösung oder ist davon eher abzuraten?

de.selfhtml.org/html/allgemein/referenzieren.htm
Lesen - Verstehen - Gut is’, für jetzt und in Zukunft.

Gelesen- Verstanden - Und nicht’s ist gut.

Was da steht ist mir bereits bekannt. Mein Problem besteht beim Referenzieren eines Include-Befehls inerhalb eines Include-Befehls bei diversen Ordnerebenen.

Ich möchte wissen, ob es bei PHP dazu einen “Trick” gibt oder wie es andere umgesetzt haben.

Dann bezweifle ich den “verstanden”-Teil.

Dann verstehe ich nicht, wieso du die Frage aus deinem vorletzten Posting überhaupt noch stellen musstest. (Darauf bezog sich meine Antwort auch hauptsächlich.)

Auch dazu hast du bereits einen Hinweis erhalten - orientiere dich am DOCUMENT_ROOT.

Jedes Script kann selbst ermitteln, wo es liegt (bspw. über die magische Konstante FILE).
Damit dann die Pfade anderer Dateien, die per include eingebunden werden sollen, dynamisch zusammen zu setzen, ist auch problemlos möglich - selbst wenn man das komplette Projekt mal an eine andere Stelle im Verzeichnisbaum verschieben sollte, kann man das ganze damit so flexibel gestalten, dass man (serverseitig) nicht eine Pfadangabe manuell anpassen muss.