Ježiš já su debil, teď jsem to pochopil...
Hmm, dá se z requestu zjistit, že žádáš o obrázek? Příponou to asi půjde, ale pokud nebude přípona?
asi jedině podle přípony vždyť ani browser, dokud nedostane hlavičku od serveru neví, o jaký typ souboru vlastně žádal
Tak pak jedině tak, jak psak Quinix. Akorát se to bude hledat víc přípon, ne?
<?php
if (strpos($_SERVER['REQUEST_URI'],".jpg"))
{
Header("Content-Type: image/jpg");
include 'nahradni.jpg';
}
if (strpos($_SERVER['REQUEST_URI'],".gif"))
{
Header("Content-Type: image/gif");
include 'nahradni.jpg';
}
if (strpos($_SERVER['REQUEST_URI'],".png"))
{
Header("Content-Type: image/png");
include 'nahradni.jpg';
}
else echo "Stranka nenalezena";
?>
Quinix, tak ne, tak ne, předtím jsi to měl dobře, jen to chtělo přidat do té podmínky, mime tape musíš posílat podle souboru, který nakonec pošleš, tedy image/jpeg
<?
if (strpos($_SERVER['REQUEST_URI'],".jpg") || strpos($_SERVER['REQUEST_URI'],".gif") || strpos($_SERVER['REQUEST_URI'],".png"))
{
Header("Content-Type: image/jpeg");
include 'nahradni.jpg';
}
else echo "Stranka nenalezena";
?>
no, ještě mě napadá, že by se hodilo to REQUEST_URI převést na malé písmena ;) ale tak není problém před to doplnit strtolower()
DA: Aha, to mě nějak ušlo :)
Asi by to chtělo vyzkoušet...
takze asi takto
<?php
$file = strtolower($_SERVER['REQUEST_URI']);
if (strpos($file, '.jpg') || strpos($file, '.jpeg') || strpos($file, '.png') || strpos($file, '.gif') || strpos($file, '.bmp') || strpos($file, '.tiff')) {
Header('Content-Type: image/jpeg');
readfile('404.jpg');
} else {
echo 'Vami pozadovana stranka nebola najdena...';
}
?>
prave som to vyskusal a funguje to :)
Tak vás asi zklamu, ale mě se to nepodařilo zprovoznit. Server náhradní obrázek sice asi pošle, ale FF mi ho odmítá zobrazit.
na locali, ale zatial som taky problem ze by to u man slo a na wz nie nemal ... pockaj, hodim to cez FTP sem
ide to
lacop.wz.cz/404/hocico.blabla -- text
lacop.wz.cz/404/hocico.jpg, .png ... -- obr (sorry, je to jemne na rychlo :) )
lacop.wz.cz/404/bla.html -- par obrazkov v roznich velkostiach, vsade sa zobrazi spravni obr
.htaccess
-----------
ErrorDocument 404 /404/404.php
404.php
----------
<?php
$file = strtolower($_SERVER['REQUEST_URI']);
if (strpos($file, '.jpg') || strpos($file, '.jpeg') || strpos($file, '.png') || strpos($file, '.gif') || strpos($file, '.bmp') || strpos($file, '.tiff')) {
Header('Content-Type: image/jpeg');
readfile('404.jpg');
} else {
echo 'Vami pozadovana stranka nebola najdena...';
}
?>
BTW: Mozilla/5.0 (Windows; U; Windows NT 5.1; cs-CZ; rv:1.7.10) Gecko/20050717 Firefox/1.0.6
lacop: A co třeba, když budeš mít někde na stránce <img src="neni.jpg"> a ten nebude existovat. Co to udělá pak?
viz lacop.wz.cz/404/bla.html
je tam test pre kazdu priponu, zobazi sa ten 404.jpg
Pročetl jsem to až do konce, lacop to vyřešil velice dobře (pěkný obrázek :D). Ale možná by to šlo i bez PHP scriptu, pouhým htaccessem, což by bylo nesmírně krásné a elegantní. Trošku jsem se prohrabal pár htaccessy a co byste řekli na toto?
<Files ~ "\.(gif|jpe?g|png)$">
# nastavení pro obrázky - gif, jpg, jpeg a png
ErrorDocument 404 "Obrázek nenalezen"
# zde se tedy skript ukončí, pokud nebyl nalezen obrázek
</Files>
# obecné nastavení
ErrorDocument 404 "Něco jiného než obrázek nenalezeno"
Musím vás však předem upozornit na toto, že se tento konfigurační soubor nedokáže vyrovnat s tím, když hledáte neex. obrázek v neex. adresáři. Možná to je tím, že ten Files hledá vždy jen v jedné úrovni, nebo co. Zkoušel jsem oddělat \. ale chování zůstalo beze změny.
Jako ErrorDocument 404 si samozřejmě můžete hodit co chcete :)
>>lacop to vyřešil velice dobře (pěkný obrázek :D)
dik :)
BTW: zmenil som obrazok, uz to vyzera lepsie :)
... tak co že z toho mám použít?