An die PHP Cracks: Bräuchte eine If Abfrage

mankra

www.krama.at
Registriert
26. Mai 2001
Reaktionspunkte
16
Ort
in der Steiermark
Brauche Hilfe für meinen Onlineshop, um die Ladezeiten zu verkürzen:

Da alle Thumb Erweiterungen bei mir nicht funktionieren, warum auch immer, hätte ich folgende Idee:

Folgende orig. Zeile:

echo tep_image(DIR_WS_IMAGES . $products['products_image'], $products['products_name']);

umgebaut auf die folgende Abfrage:

If DIR_WS_IMAGES /BigImage/xxx.jpg existiert, dieses anzeigen
Wenn nicht DIR_WS_IMAGES /xxx.jpg anzeigen.

Brings aber net zum laufen. Irgendeinen Syntaxfehler hab ich immer drinnen...........
 
Hatte es nimmer, aber so ähnlich sah es aus:

if (DIR_WS_IMAGES . $products['products_image'] > 0) {
echo tep_image(DIR_WS_IMAGES . '/BigImage' . $products['products_image'], $products['products_name']);

} else {
echo tep_image(DIR_WS_IMAGES . $products['products_image'], $products['products_name']);
 
PHP:
if (DIR_WS_IMAGES . $products['products_image'] > 0) {
echo tep_image(DIR_WS_IMAGES . '/BigImage' . $products['products_image'], $products['products_name']);

} else {
echo tep_image(DIR_WS_IMAGES . $products['products_image'], $products['products_name']);

Da fehlt hinten eine geschweifte Klammer:

PHP:
if (DIR_WS_IMAGES . $products['products_image'] > 0) {
    echo tep_image(DIR_WS_IMAGES . '/BigImage' . $products['products_image'], $products['products_name']);
} else {
    echo tep_image(DIR_WS_IMAGES . $products['products_image'], $products['products_name']);
}

Desweiteren, pruefe, ob der Pfad tatsaechlich "BigImage" heisst, oder nicht vielleicht doch "bigimage" oder "BIGIMAGE". Das macht in den meisten Serverumgebungen (Apache zumindest) in den allermeisten Faellen einen Unterschied.

Pruefe, ob $products['products_image'] mit einem Slash "/" beginnt, oder anders gesagt: ergibt der zusammengesetzte String wirklich einen gueltigen Dateinamen?

Letztlich solltest du auch die Dateiberechtigungen pruefen, sprich ist der Webserver in der Lage, die benoetigten Dateien zu lesen?

Kannst du dich an die Fehlermeldung erinnern, oder gab es gar keine?
 
Stimmt, die Klammer hab ich gestern nimmer gesehen...........

Ja, ist ein Linuxserver, der Groß und Kleinbuchstaben unterscheidet.
Das stimmt schon.

Wie gesagt, ich hab die Zeile nun nochmal geschrieben, weil ich die andere nicht gespeichert hatte.
Vielleicht hatte ich da etwas anders geschrieben.
Bin jetzt in der Fa., am Abend probier ichs nochmal.

Schlimme dran war, daß es ohne Fehlermeldung nicht funktionierte und meine PHP Kenntnisse sich darauf beschränken, fertige Skripte einzubasteln, bzw. nichtgebrauchtes auszudokumentieren.
 
Leider funkt es noch net:

Es waren noch 2 Fehler drinnen:

1 Logischer: Ich muß ja überprüfen, ob das BigImage vorhanden ist (klar, das könnt Ihr nicht wissen, ohne den ganzen Quelltext).

2. glaub ich, gehört das Slash hinter dem BigImage geschrieben so wie hier:


if (DIR_WS_IMAGES . 'BigImage/' . $products['products_image'] > 0) {
echo tep_image(DIR_WS_IMAGES . 'BigImage/' . $products['products_image'], $products['products_name']);
} else {
echo tep_image(DIR_WS_IMAGES . $products['products_image'], $products['products_name']);
}

Wie auch immer, das soll das kleinste Prob sein (gibts ja nur 2 Möglichkeiten zum probieren.

Was mich eher verzweifeln läßt ist, daß der Shop noch immer die Bilder aus dem normalem Image Ordner läd und nicht aus dem BigImage, obwohl die Bilder dort liegen..........

Stimmt die If Abfrage nicht und er erhält immer den Wert 0??

Wie könnt man sonst abfragen, ob ein Bild vorhanden ist, oder nicht?
 
Nennt mich PHP Gott :lol: :lol: :lol:

Jetzt funkts:

$vorhanden = file_exists(DIR_WS_IMAGES . "BigImage/".$products['products_image']);
if($vorhanden){
echo tep_image(DIR_WS_IMAGES . "BigImage/".$products['products_image'], $products['products_name']);
} else {
echo tep_image(DIR_WS_IMAGES . $products['products_image'], $products['products_name']);
};

Irgendwo hab ich so eine Bildabfrage im Quelltext gefunden und für mich angepaßt.

Nun gehts.
 
falls hier nix rauskommt:
http://forums.oscommerce.de/

>wie könnt man sonst abfragen, ob ein Bild vorhanden ist, oder nicht?
if (is_file(filename))
bei bedarf weitere funktionen wie
boolean is_readable(),..

das >0 kann man auch weglassen,da =0 false und !=0 true ist

muss vielleicht hinter DIR_WS_IMAGES bzw. vor das BigImage auch noch ein '/' hin?
lass dir doch am besten mal den img-pfad als echo ausgeben...
 
jetzt funktionierts, trotzdem Danke.

In der DIR_WS_IMAGES Variable ist schon der Slash drinnen.

Das Forum kenne ich natürlich.

Ist aber absolut unbrauchbar: Zu 90% PHP Newbies wie ich, die keine Antworten bekommen.
Der Rest sind Cracks, die bei jedem Posting einen 1 Zeiler posten, daß nach dem Moto: Ich weiß wie es geht.
Aber nie eine Antwort, mit der man etwas anfangen kann (als nicht PHP Könner).
Man wird so lange im Regen stehen gelassen, bis man die Brieftasche zückt.

Übersetzt auf ein MTB Forum:

Anfängerfrage:

Wie stelle ich die Dämpfung ein:

Dann kommt ne Anwort: Daß sie Dir paßt.
Der nächste: Benutzt die SuFu (wenn man die benutzt, bekommt man 100 Threads nach dem gleichen Muster, aber kaum brauchbare Tips)
Und dann läßt man den armen Wicht warten, bis er entweder was springen läßt, oder durch Try&Error entweder abgestürzt ist, oder es aufgegeben hat.

Mit viel Glück kommt ne Antwort, wie von unserem Rahmendesign Thread mit Raderhebungskurve, Kettenstrebenverlängerung etc...........

Langer Rede kurzer Sinn:

Es macht keinen Spaß dort.
 
Zurück