PHP Fehlerhafte Dateien werden in HTML-Site eingebunden

Dsimon24

Lieutenant
Registriert
Aug. 2016
Beiträge
595
Hallo,

ich kämpfe gerade mit einem kleinen (oder größeren) Problem, finde
aber den Fehler nicht. Vielleicht kann mir einer weiterhelfen...

Seit ich eine kleine WebApp von einem VPS auf einen IONOS-Web-
space umgezogen habe, ergibt sich das folgende Fehlerbild:

Ich habe eine Liste, die ich mittels einer foreach-Schleife ausgebe.
In jeder Liste gibt es ein Bild und die entsprechende ID des Datensatzes.
Die ID wird korrekt wiedergegeben, mittels $id - das funktioniert bestens.

Das Bild gebe ich innerhalb der Tabelle so aus:
HTML:
<img src="/upload/<?= $id ?>.jpg">

Jetzt kommt´s zum Problem.
Ist das Foto im Ordner vorhanden, wird es ausgegeben. Ist die Datei nicht vorhanden,
nimmt das System irgendein anderes Foto. Mir ist aufgefallen: Ist die ID bspw. 11177
und dieses Foto gibt es nicht. Nimmt das System das Foto mit der ID 1117
(bspw. 1117.jpg).

Habt ihr eine Idee, woran das liegen könnte?

Grüße.
 
Die PHP-Version auf deinem alten VPS passt mit der neuen auf IONOS zusammen?
 
Wie kommen die IDs den zustande?
Du solltest eigentlich schon im Code dafür sorge tragen, das er nur IDs anzeigt zu denen es auch wirklich Bilder gibt.

Der kleine Schnipsel Code bringt uns garnichts da nicht klar ist wie $id befüllt wird.
 
Eigentlich müsste man hier mit einer IF-Schleife arbeiten. Wenn ein Bild vorhanden, dann und nur dann wird überhaupt ein <img>-Tag gesetzt.
 
Dsimon24 schrieb:
Habt ihr eine Idee, woran das liegen könnte?
Ich hätt hier den Webserver in Verdacht dass der irgendwie versucht "Schreibfehler" in URLs zu korrigieren und deshalb andere Dateien ausliefert. Würd mal in die Richtung in der Config des Webservers suchen.

Alternativ der Vorschlag mit dem IF (was übrigens keine Schleife ist ^^) und prüfen ob das Bild existiert und nur dann das IMG ausgeben.
 
  • Gefällt mir
Reaktionen: Lawnmower
Ich hatte ursprünglich eine If-Anweisung im Einsatz um damit zu prüfen,
gibt es ein Bild oder nicht. Ich hatte dazu die PHP-Funktion file_exists genutzt.
Da das Ergebnis aber zwischengespeichert wird, hatte ich damit Probleme
und es deshalb entfernt.

PHP-Version von alt und neu sind identisch.

Ich habe jetzt mal $id gegen eine feste ID ersetzt:
HTML:
<img src="/upload/11177.jpg">

Dieses File gibt´s nicht, daher nimmt er in jedem Datensatz in der Tabelle das Bild
mit der ID 1117. Nutze ich aber die ID 11176 (das File gibt es) funktioniert es.

Ich glaube, es geht wohl tatsächlich in die Richtung, dass PHP irgendwie versucht,
die URL zu korrigieren. Nach was müsste ich denn da schauen? Wusste gar nicht,
dass es sowas gibt.
 
Erstelle Dir am besten eine .htaccess Datei mit folgendem Eintrag:
Code:
CheckSpelling off
 
  • Gefällt mir
Reaktionen: N00bn00b
Das scheint das Problem zu beheben. Danke!
Ich werde es mal die nächsten Tage noch ein
wenig beobachten :)
 
Zurück
Oben