![]() |
[PHP] Problem mit Header
Hallo,
in einem PHP Skript nutze ich
Code:
aus um auf eine andere Seite rsp. in meinem Fall Datei weiterzuleiten. Dies klappt auch wunderbar. Wenns die Datei oder Seite jedoch nicht gibt, so krieg ich den klassischen
header("Location: $URL") ;
Not Found The requested URL ![]() Apache/2.0.46 (Win32) PHP/4.3.3RC1 Server at ojca Port 80 Fehler Gibt es eine Möglichkeit, nur in diesem Fall eine eigene Seite anzuzeigen, oder geht das nur indem ich den Apache entsprechend konfigurier. Muss ich eventuell vor Aufruf durch header("Location: $URL") obs die Datei gibt, dann könnt ich entsprechend reagieren. Kann man das überhaupt in PHP prüfen? Irgendwie komm ich mit diesem Ganzen nicht mehr wirklich klar. Vielleicht weiss ja von euch einer mehr. Gruß |
Re: [PHP] Problem mit Header
Also, entweder machst Du es mit
![]()
Code:
oder du prüfst vorher mit file_exists() in PHP, ob die Datei existiert.
ErrorDocument 404 deine_fehlerseite.htm
Edit: Zitat:
mfG mirage228 |
Re: [PHP] Problem mit Header
Zitat:
![]() Zitat:
![]() |
Re: [PHP] Problem mit Header
Zitat:
Zitat:
Naja, wenns lokal läuft, sollte es kein Problem sein, solange Du keine Fremden Leute auf Deinem PC Skripte ausführen bzw. öffnen lässt :) aber Updaten schadet trotzdem nicht ;) mfG mirage228 |
Re: [PHP] Problem mit Header
Hi!
Auch für diese ![]() Ciao Frederic |
Re: [PHP] Problem mit Header
Zitat:
Ich werds wohl nicht wirklich lösen können wie ichs wollt. Muss halt eben sicherstellen, daß der Link klappt. Falls nicht, muss ich ihn wohl manuell entfernen. Aber vielen Dank für die Vorschläge Tom |
Re: [PHP] Problem mit Header
du kannst ja vorher die fremde datei (mittels PHP) runterladen und dadurch schauen, ob sie da ist.
|
Re: [PHP] Problem mit Header
was hälst du von:
$file = @fopen ("http://www.url.de/datei.ext";, "r") or die("Datei nicht gefunden!"); nur eine idee... |
Re: [PHP] Problem mit Header
@f4lcon: Super, das scheint zu klappen... Werd ich also noch einbauen... Vielen Dank
|
Re: [PHP] Problem mit Header
Ich weiß ja nicht, ob es bei PHP auch möglich ist
nur den Dateiheader dieser Datei runterzuladen, aber dieses würde 'ne Menge "sinnlosen" Traffik einsparren. Dort bräuchte mann ja nur den Statuscode prüfen. |
Re: [PHP] Problem mit Header
Hi!
Mit fopen() lädst du doch - soweit ich mir das vorstelle - noch gar nichts herunter, sondern öffnest die Datei nur zum Lesen. Das eigentliche Lesen geschieht dann mit fread / fget. Mamphil |
Re: [PHP] Problem mit Header
Also ich habs jetzt mal genau so gemacht, und es klappt einwandfrei:
Code:
Klappt einwandfrei!
$file = @fopen ($URL, "r") ;
if ($file) { header("Location: $URL") ; } else { header("Location: index.php?T=rema&P=filenotfound") ; } ?> |
Re: [PHP] Problem mit Header
@Mamphil:
Da könntest du Recht haben, aber ich bin mir nicht ganz sicher, ob das auch so ist, wenn man auf die Datei, eines fremden Servers, per HTTP zugreift. Aber wie wäre es, wenn man die Datei wenigstens wieder ordnungsgemäß schließt :zwinker:
Code:
$file = @fopen ($URL, "r") ;
if ($file) { [color=red]fclose($file);[/color] header("Location: $URL") ; } else { header("Location: index.php?T=rema&P=filenotfound"); } ?> |
Re: [PHP] Problem mit Header
Zitat:
Auch wenn die Datei auf einem fremden Server liegt wird sie lediglich geöffnet, es wird noch nichts übertragen. Das weiss ich deshalb weil ich nur ISDN besitze an meinem lokalem Apache Server, und die Datei auf einem entfernten Server liegt. Es handelt sich um eine 3MB große Datei, die ja dann erst mal kopiert werden müsste, was dann 10 Minuten dauern würd. Es dauert aber lediglich einen Bruchteil einer Sekunde. Somit wird einfach nur geprüft, ob die Datei existiert, und wenn ja, zum Lesen geöffnet. Gruß |
Re: [PHP] Problem mit Header
Zitat:
Man solle sich das saubere Programmieren aber grundsätzlich angewöhnen :warn: :mrgreen: Mamphil |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz