[php] 404 w php

0

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ą.

0

można jeszcze tak:

header("Status: 404 Not Found");
0

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>";
?>
0
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...

0
<?php
    header("HTTP/1.0 404 Not Found");
    print(file_get_contents('http://localhost/nonexistentpage/'.rand(0,100)));
?>
0
nav napisał(a)
<?php
    header("HTTP/1.0 404 Not Found");
    print(file_get_contents('http://localhost/nonexistentpage/'.rand(0,100)));
?>

niestety nie dziala :(

0

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

0
<?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 :)

0

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 ;]

0
header('HTTP/1.0 404 Not Found',1,404);
exit();

0 użytkowników online, w tym zalogowanych: 0, gości: 0