Jak má vypadat chyba 404 - nenalezeno Mozektevidi.net - Píše Olda Šálek.

Jak má vypadat chyba 404 - nenalezeno

Základní chyby při tvorbě čtyřista čtyřky. Chyba 404 (not found) a jejích chyby či nedostatky. PHP skript na zaznamenání logů. Nenalezeno!

Chyba 404 - nenalezeno

Přemýšlel jsem, jak by měla vypadat správná chyba. No, měla by se objevovat co nejméně, tak proč by na ní mělo záležet? Záleží na maličkostech.

  • Oznámení chyby: Není nic horšího, než v případě špatně zadané adresy se celá adresa smaže z důvodu přesměrování na hlavní stránku. I já to měl takto dříve stvořeno.
  • Jaká chyba nastala? Nejčastější chyba je chyba 404 - nenalezeno. Nestačí napsat not found. Nejlépe česky, anglicky a číselné označení do titulku
  • Proč se tak stalo?: Chudák návštěvník je vyděšen. Co když zničel server? Napsal bych něco jako stránka byla smazána, přesunuta nebo prostě neexistuje.
  • Co dál dělat? Pokračujte na hlavní stránku, zkuste článek vyhledat zadáním klíčových slov nebo zkuste mapu webu. Vše s odkazy. Nejlepší by bylo rovnou vyhledat nejpravděpodobnější články. Ale odlišit od normálního výpisu a dát najevo chybu 404.
  • Kontaktujte administrátora CHYBA. Proč by měl někdo sdělovat chyby? Předložíte chybnou stránku a ještě chcete informovat? Na to se každý vykašle. Lepší je použít tento pěti minutový skript, který vše zaznamená do databáze.

Pětiminutkový skript na zaznamenání chyb 404

Vložit do souboru, který se zobrazuje v případě chyby 404. Nutné ještě přiložit html výstup na oznámení chyby, jak má vypadat je popsáno výše

require "databaze.php"; // databáze

$kdy_prisel = time(); // čas v unixovém formátu
$prohlizec = $_SERVER['HTTP_USER_AGENT']; // jde o robota?
$ip_navstevnika = $_SERVER['REMOTE_ADDR']; // ip adresa
$odkud_prisel = $_SERVER['HTTP_REFERER']; // odkud chodí, kde je chyba?
$co_pozadoval = $_SERVER['REQUEST_URI']; // co chce zobrazit?

$vlozeni_dat = MySQL_Query(
"INSERT INTO 404 VALUES ('', '$co_pozadoval', '$odkud_prisel', '$ip_navstevnika',
'$kdy_prisel', '$prohlizec')"
)
or die (
mysql_error());

tabulka v databázi

Vytvoří se pomocí SQL dotazu v phpmyadminovi

CREATE TABLE `404` (
`id` int(3) NOT NULL auto_increment,
`co_pozadoval` varchar(100) character set utf8 collate utf8_czech_ci NOT NULL,
`odkud_prisel` varchar(100) character set utf8 collate utf8_czech_ci NOT NULL,
`ip` varchar(100) character set utf8 collate utf8_czech_ci NOT NULL,
`datum` varchar(100) character set utf8 collate utf8_czech_ci NOT NULL,
`prohlizec` varchar(100) character set utf8 collate utf8_czech_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2 ;

hm, zajímavé

A pak stačí jenom kontrolovat logy a zkoumat, jestli není nějaká chyba na webu a tu opravit, např já tím zjištuji kde jsem zadal img src="neco" a zapomenul nahrál neco na ftp.


autor článku Oldřich Šálek | datum publikování 13.únor.2007 21:34 | Názory na cokoliv Názory |

Kometáře


Komentáře a diskuze ke článku tady
diskuze ke článku