Livesearch von Bitflux und Fileoperationen
SteBu
- php
0 Sven Rautenberg0 SteBu0 Sven Rautenberg0 SteBu0 Sven Rautenberg0 SteBu
Ich spiele gerade mit der LiveSearch http://blog4.bitflux.ch/wiki/LiveSearch von Bitflux rum. Klappt soweit auch ganze prima. Doch eines will mir nicht gelingen. Wenn ich im suchendem PHP-Script (dieses holt relevante Treffer aus einer DB) mit Fileoperationen arbeiten will, bekomme ich immer wieder den Fehler "failed to open stream".
100%ig sicher bin ich mir, daß sowohl die Pfade stimmen, als auch die Files da sind.
Ein Bsp. ich bekomme den Pfad zu einem Bild. Dieser wird als Parameter an eine Fkt. übergeben, welche am Anfang mittels getimagesize() die Größe ermittelt und mir ein Thumb erstellen soll. Leider bekomme ich oben genannten Fehler.
Der Pfad zu diesem Bild wird dann aber in der Ausgabe benutzt umd die große Variante anzuzeigen, das wiederum klappt, ergo ist der Pfad richtig.
Auch ein prüfen ob die Datei existiert mittels $fh = fopen($row->bild,"r")
if(fh) schlägt fehl.
Kann es an dem XMLHttpRequest liegen, das dort zetlich was kollidiert?
Danke für eure Mühen
SteBu
Moin!
Wenn ich im suchendem PHP-Script (dieses holt relevante Treffer aus einer DB) mit Fileoperationen arbeiten will, bekomme ich immer wieder den Fehler "failed to open stream".
100%ig sicher bin ich mir, daß sowohl die Pfade stimmen, als auch die Files da sind.
Zeile 127 ist falsch. Da fehlt ein Semikolon.
Kann es an dem XMLHttpRequest liegen, das dort zetlich was kollidiert?
Kann auch an </faq/#Q-07c> liegen, dass hier glaskugelmäßig was kollidiert.
Moin,
Zeile 127 ist falsch. Da fehlt ein Semikolon.
126 fehlte eines ;)
</faq/#Q-07c>
Wenns dir was hilft, gerne.
$sql = "SELECT d_fobjekt.d_fo_bild1 AS bild,... FROM d_fobjekt WHERE ... ";//Ein gültiger Query, glaube es mir
$res = mysql_query($sql,$con);
if(mysql_num_rows($res) >0)
{
//echo "<ul class="LSRes">";
while($line = mysql_fetch_object($res))
{
if($line->bild != 'NULL')//Gibt es ein Bild?
{
$x = substr($line->bild,11, strlen($line->bild));
$fh = fopen("thumbs/".$x,"r");//hier kommt der Fehler
//Jedoch gelingt ein
echo "<img src="thumbs/".$x."" />\n";
}
}
}
Überflüssigen Code habe ich mal weggelassen, das die Livesuche ohne Fileoperationen fehlerfrei läuft.
Gruß
SteBu
Moin!
$x = substr($line->bild,11, strlen($line->bild));
$fh = fopen("thumbs/".$x,"r");//hier kommt der Fehler
Das bedeutet erstmal zwingend, dass $x irgendetwas enthält, was hier einen Fehler erzeugt.
Lass dir den Wert für $x ausgeben (Frage nebenbei: Warum das substr()?).
Benutze testweise realpath(), um aus dem relativen Pfad einen absoluten zu machen, und vergleiche mit dem erwarteten Resultat.
//Jedoch gelingt ein
echo "<img src="thumbs/".$x."" />\n";
Das kann eigentlich nur sein, wenn das relative Verzeichnis in HTML ein anderes ist, als das in PHP. Kann durchaus möglich sein, wenn CGI-Versionen von PHP zum Einsatz kommen.
Lass dir den Wert für $x ausgeben
Das habe ich schon vor meiner Frage gemacht. Der Wert ist völlig OK.
»»(Frage nebenbei: Warum das substr()?).
Weil ich z.Zt. am "basteln" bin und erstmal eine Lösung für das Problem suche bervor ich "schönen" Code baue.
//Jedoch gelingt ein
echo "<img src="thumbs/".$x."" />\n";Das kann eigentlich nur sein, wenn das relative Verzeichnis in HTML ein anderes ist, als das in PHP.
Nö, eigentlich nicht.
Die Struktur ist folgende
-index.php(beinhaltet die Livesuche.js)
--/scripts/query.php(ist das Suchscript)
--/thumbs/bilder.jpg(hier die Bilder)
Kann durchaus möglich sein, wenn CGI-Versionen von PHP zum Einsatz kommen.
PHP läuft als Modul.
SteBu
Moin!
Die Struktur ist folgende
-index.php(beinhaltet die Livesuche.js)
--/scripts/query.php(ist das Suchscript)
--/thumbs/bilder.jpg(hier die Bilder)
Dann ist doch alles klar. Das "Arbeitsverzeichnis" von deinem PHP-Skript ist /scripts/. Zusammen mit der relativen Pfadangabe "thumbs/irgendwas.bild" wird das Bild in "/scripts/thumbs/irgendwas.bild" gesucht.
Wie du es hinkriegst, stattdessen in "/thumbs/irgendwas.bild" zu suchen, sollte dir vermutlich jetzt wie Schuppen aus den Haaren fallen.
Moin,
sollte dir vermutlich jetzt wie Schuppen aus den Haaren fallen.
Ich sage nur: Wald, Bäume und irgendwas mit sehen.
Thx
SteBu