Hm… in dem Code kommt eigentlich gar kein * vor… Was steht denn in Zeile 13 der entsprechenden Datei?
Im Anhang sind definitiv funktionierende PHP-Dateien mit dem Code 1:1 kopiert. Du müsstest nur noch den Pfad jeweils korrigieren (falls es mit dem Windows-Editor nicht klappt, nehme z.B. notepad++; Variante 2 ist etwas zickig und will „UTF ohne BOM“ oder halt „ANSI“ als Codierung).
Download (ein einem ZIP-Archiv verpackt, am besten doppelklicken und die beiden Dateien erst einmal woanders hin kopieren):
Hier kommt das aktuelle Bild (als direkter, relativer Link). Diese Datei muss daher im gleichen Ordner sein, wie das Bild oder der Code in der letzten Zeile muss entsprechend ergänzt werden.
<br/ >
<br />
<img src=„variante1.php“>
</body>
</html>
Ich denke die IMG SRC stimmt noch nicht…
Was mache ich falsch?
Hallo,
da ihr mir schon vor 1,5 Jahren sehr geholfen habt, wollte ich euch nocheinmal um Hilfe bitten
Es handelt sich um das gleiche Vorhaben bzw. Code.
Der Code wäre folgender:
<html>
<head>
</head>
<body>
<?php
$pfad = ‚/var/www/virtual/meine-domain.at/htdocs/webcam‘; // definiert die Variable $pfad, die wird verwendet, um PHP zu sagen, wo es die Bilder suchen soll
$bild = ‚‘; // eine leere Variable mit dem Namen bild wird angelegt
$dir = opendir ($pfad); // PHP wird der Ordner aus $pfad vorgesetzt
while (false !== ($file = readdir($dir))) { // PHP soll den ganzen Ordner durchackern (neu: Fehlerberücksichtigung)
if (!$bild || filemtime($bild)<filemtime("$pfad/$file")) // wenn die gerade abgearbeitete Datei jünger ist, als die zuletzt gemerkte …
$bild = „$pfad/$file“; } // … dann merke sie dir (diesmal mit $pfad davor) in $bild
// kein echo
if (!is_file($bild) || !is_readable($bild)) { // wenn Datei nicht existiert oder nicht lesbar ist
die(„File not found“); // breche ab, mit Fehlermeldung „File not found“
}
header(„Content-type: image/jpg“); // nun sagen wir dem Browser, dass er eine JPG-Datei gefunden hat
readfile($bild); // und nun gibt PHP einfach statt HTML oder so die JPG aus
?>
</body>
</html>
Leider bekomme ich jetzt diese Fehlermeldung:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/virtual/meine-domain.at/htdocs/webcam/aktuell1.php:5) in /var/www/virtual/meine-domain.at/htdocs/webcam/aktuell1.php on line 16
Die Informationen, die du mit header() sendest, können nicht in den Header gelegt werden, da der Header bereits gesendet wurde.
Wenn du den ganzen HTML Teil oben und unten einfach weg lässt, sollte es funktionieren. Wichtig: der PHP-Tag <?php muss wirklich als allererstes in der Datei stehen, kein Leerzeichen und eine Leerzeile.
Anmerkung: es macht wenig sinn, die Ausgabe so gestalten, wie du es getan hast. Wenn du den Header setzt, mach der HTML Teil überhaupt keinen Sinn mehr, weil der Browser ein Bild erwartet und kein HTML.
Guten Tag,
bis vor kurzem hat alles funktioniert. Also knapp 2 Jahre
Leider funktioniert der php Code seit einiger Zeit nicht mehr… --> File not found
Den Code habe ich nicht verändert.
<?php
$pfad = ‚/var/www/virtual/meine-domain.at/htdocs/webcam‘; // definiert die Variable $pfad, die wird verwendet, um PHP zu sagen, wo es die Bilder suchen soll
$bild = ‚‘; // eine leere Variable mit dem Namen bild wird angelegt
$dir = opendir ($pfad); // PHP wird der Ordner aus $pfad vorgesetzt
while (false !== ($file = readdir($dir))) { // PHP soll den ganzen Ordner durchackern (neu: Fehlerberücksichtigung)
if (!$bild || filemtime($bild)<filemtime("$pfad/$file")) // wenn die gerade abgearbeitete Datei jünger ist, als die zuletzt gemerkte …
$bild = „$pfad/$file“; } // … dann merke sie dir (diesmal mit $pfad davor) in $bild
// kein echo
if (!is_file($bild) || !is_readable($bild)) { // wenn Datei nicht existiert oder nicht lesbar ist
die(„File not found“); // breche ab, mit Fehlermeldung „File not found“
}
header(„Content-type: image/jpg“); // nun sagen wir dem Browser, dass er eine JPG-Datei gefunden hat
readfile($bild); // und nun gibt PHP einfach statt HTML oder so die JPG aus
?>
Könnt ihr mir ev. wieder helfen an was es liegen könnte?
Die Fehlermeldung kommt aus der Zeile mit if (!is_file und !is_readable). Also vermute ich, dass entweder der durchsuchte Ordner leer ist und daher keine Bilder gefunden werden können, oder die Berechtigungen nicht stimmen und daher der Dateiinhalt nicht abgerufen werden kann.
Hast du per FTP oder so mal in den Ordner geguckt? Dateiberechtigungen der jpgs sollten 744 sein (oder 755;777 ist nicht zu empfehlen).
Sollte das nicht das Problem erklären, würde ich mal die Zeile // kein echo ersetzen durch: die($bild);
Das bricht den Code ab und schreibt dafür den Pfad von $bild hin. Den kann man sich mal im Hinblick auf Plausibilität angucken.
Ich habe jetzt die Berechtigungen im FTP Ordner kontrolliert. Die neue Bilder werden automatisch mit der Berechtigung 0640 vergeben.
Wie kann ich es einstellen das die Berechtigung automatisch auf 755 gesetzt wird?
Via Filezilla funktioniert es nur auf die Bestehenden Bilder… bei einem neuen Bild wird es automatisch auf 0640 gesetzt.
Ändern auf 755 hilft? Oder 644? (zur Erklärung: Die Zahl setzt sich jeweils aus der Summe zusammen von 4 Lesen, 2 Schreiben, 1 Ausführen; also 6=read+write, ist hier quasi äquivalent zu 7, weil man die jpgs nicht ausführen muss; genau genommen sogar besser, weil sicherer; 755 war nur ein Reflex meinerseits; erste Zahl steht für den Besitzer der Datei, zweite für Gruppenmitglieder und dritte für andere)
Ändern könnte man das mit umask, glaube ich. Eher FTP-Server spezifisch…