Autor Zpráva
sefikail
Profil
Dobrý den, chtěl bych aby když někomu naskočí stránka e404 se mi automaticky vložila nesprávná URL do textu zprávy.

Např.

http://example.cz/petr

e404 
Dobrý den milý návštěvníku stránka kterou požadujete není k dispozici. Můžete nyní nahlásit nefunkční odkaz nebo se vrátit zpět


Předmět: (přednastavený mnou)
Text: PRAVE TEN NEFUNKCNI ODKAZ
Odesílatel: (nepovinné)

Nevíte si někdo rady? Díky
Senky
Profil
V php existuje
$_SERVER['REQUEST_URI']
co ti vrati example.cz/petr.
bohyn
Profil
sefikail
Můžete nyní nahlásit nefunkční odkaz
Neni lepsi to rovnou zalogovat to souboru nez "otravovat" navstevniky? Me se toto reseni celkem osvedcilo, velice rychle tim zjistis kde jsou nejake problemy.
sefikail
Profil
bohyn A nemáš řešení někde po ruce? :) Todle je dobrý nápad, ale nenapadá mě jak na to.
Senky Díky, pokud bohyn mi to dostatečně nevysvětlí, tak zkusím tvoje řešení.
Senky
Profil
Ide o to, ze si vytvoris bud subor, alebo nejaku tabulku v databaze, kde budes ukladat na akej strake je chyba. A ak ti funguje v e404 $_SERVER['REQUEST_URI'], preco by nefungovali aj ine skripty. Proste napis do e404.php (alebo ako to mas) toto:
<html>
blablabla...pre uzivatelov
</html>
<?php
$date = date("r");
$page = $_SERVER['REQUEST_URI'];
$connection = mysql_connect('localhost', 'root', '123abc');
if (!$connection){
  die('Nejaka sprava pre pouzivatela. Napr.: Chybu mame zapisanu, dakujem.');
}
mysql_select_db('database', $connection);
mysql_query("INSERT INTO Log (Page, Time) VALUES ('$page', '$date')");
mysql_close($conection);
?>
sefikail
Profil
Senky, dobrý nápad ... děkuji
bohyn
Profil
sefikail
A nemáš řešení někde po ruce? :) Todle je dobrý nápad, ale nenapadá mě jak na to.
# .htaccess
ErrorDocument 400 /error.php?err=400
ErrorDocument 403 /error.php?err=403
ErrorDocument 404 /error.php?err=404
ErrorDocument 503 /error.php?err=503

 // PHP script
$error = isset($_GET['err']) ? $_GET['err'] : "unknown";
$f = @fopen("log/error_{$error}.log", "a");
if($f) {
  $date = date("d.m.y H:i:s");
  $uri = $_SERVER['REQUEST_URI'];
  $ua = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : "";
  $ip = $_SERVER['REMOTE_ADDR'];
  $host = gethostbyaddr($ip);
  $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : "";

  fwrite($f, "'{$date}'\t'{$uri}'\t'{$ua}'\t'{$ip}'\t'{$host}'\t'{$referer}'\n");
  fclose($f);
}
sefikail
Profil
Nevím proč ale pořád mě to hází:
Parse error: syntax error, unexpected T_STRING in /home/www/sefikail.cz/subdomeny/www/e404.php on line 12


<html>
blablabla...pre uzivatelov
</html>
<?php
$date = date("r");
$page = $_SERVER['REQUEST_URI'];
$connection = mysql_connect('mysql5-2', 'jmeno.uzivatele', 'heslo');
if (!$connection){
  die('Nejaka sprava pre pouzivatela. Napr.: Chybu mame zapisanu, dakujem.');
}
mysql_select_db('jmeno_databaze', $connection);
mysql_query("INSERT INTO Log (Page, Time) VALUES ('$page', '$date')");
mysql_close($conection);
?>
Senky
Profil
Asi je chyba v "Log" a "Time", kedze su podciarknute. Vyskusaj tam dat nieco ine:
mysql_query("INSERT INTO Error_Log (Page, Time_Error) VALUES ('$page', '$date')");
blaaablaaa
Profil
sefikail
1.
mysql_query("INSERT INTO `Log `(`Page`, `Time`) VALUES ('".$page."', '".$date."')");

2. jinak chyba bude jinde, co mas ve skutecnosti na 12.radku?
sefikail
Profil
Nevím, zkoušel jsem vše a nic nejde. Já bych ale spíše potřeboval, aby mi ty chyby posílalo na email, protože pořád kontrovat log je celkem obtěžující :)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: