cześć,
znacie w jaki sposób zrobić 404 z php? Próbowałem tak jak jest w manualu:
<?php
header("HTTP/1.0 404 Not Found");
?>
ale mam czystą stroną.
cześć,
znacie w jaki sposób zrobić 404 z php? Próbowałem tak jak jest w manualu:
<?php
header("HTTP/1.0 404 Not Found");
?>
ale mam czystą stroną.
można jeszcze tak:
header("Status: 404 Not Found");
Bo oprócz wysłania nagłówka wypadałoby wysłać jescze jakiś tekst czy coś.
<?php
header("HTTP/1.0 404 Not Found");
echo "<h1>Błąd 404</h1><p>Strona, której szukasz, nie została znaleziona na tym serwerze</p>";
?>
prgtw napisał(a)
można jeszcze tak:
header("Status: 404 Not Found");
niestety tak samo
Ktos napisał(a)
Bo oprócz wysłania nagłówka wypadałoby wysłać jescze jakiś tekst czy coś.
<?php
header("HTTP/1.0 404 Not Found");
echo "<h1>Błąd 404</h1><p>Strona, której szukasz, nie została znaleziona na tym serwerze</p>";
?>
ja chce domyslna strone 404 a nie wlasna...
<?php
header("HTTP/1.0 404 Not Found");
print(file_get_contents('http://localhost/nonexistentpage/'.rand(0,100)));
?>
nav napisał(a)
<?php
header("HTTP/1.0 404 Not Found");
print(file_get_contents('http://localhost/nonexistentpage/'.rand(0,100)));
?>
niestety nie dziala :(
no a co się pojawia ? biała strona ? to zależy od przeglądarki a IE czasem wyświetla blanka zamiast 404
a oczywiście po header musisz dać Die jeśli nie chcesz żeby reszta strony trafiła jako własna 404
ja tak mam przy admin.php:
<?php
require('common.php');
if(!is_logged() || privil() < SR_ADMIN ){
Header('Status: 404 Not Found');
Die();
}
?>
tutaj treść panelu admina
i nikt nawet nie jest pewny w 100% czy admin.php w ogóle istnieje
nav - czy to nie głupie pobierać stronę której nie ma tylko po to żeby przekazać taką userowi ? poza tym to już na pewno nie będzie defaultowa przeglądarki tylko 404 serwera np apache
<?php
$f=fsockopen('localhost', 80);
$adres = '/nonexistent/'.md5(rand());
fputs($f, 'GET ' . $adres . " HTTP/1.0\n\n");
while (!feof($f))
{
$s .= fread($f, 1024);
}
fclose($f);
$s = substr($s, strpos($s, "\r\n\r\n")+4);
$s = str_replace($adres, $_SERVER['REQUEST_URI'], $s);
echo $s;
?>
$adres można podać dowolny. Ważne, aby nie istniał na serwerze :)
a tutaj mam mój speciał na strony z błędami. Zapisuje wszystkie błędy do logów :D
<?
$querry=explode('|||||',$_SERVER[QUERY_STRING]);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title><?="Wystąpił błąd ".$querry[0] ?></title>
</head><?php
$querystr=$querry[0];
$querytxt=$bodytag = str_replace("_", " ", $querry[1]);
echo "Błąd $querystr: ".$querytxt;
$xae = $_SERVER[REQUEST_URI];
$baza = "errorlogs/log".$querystr.".txt";
$plik = fopen($baza, "a");
fputs($plik , date(r)."\t".$xae."\n");
fclose($plik);?></html>
Używa się go prosto, do pliku httpd.conf wpisujemy
ErrorDocument 404 /error.php?404|||||Brak_pliku_na_serwerze.
Dla błędu 403:
ErrorDocument 403 /error.php?403|||||Dostęp_zabroniony.
Może komuś się przyda ;]
header('HTTP/1.0 404 Not Found',1,404);
exit();