Autor | Zpráva | ||
---|---|---|---|
sefikail Profil |
#1 · Zasláno: 4. 5. 2009, 19:06:16 · Upravil/a: sefikail
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 |
#2 · Zasláno: 4. 5. 2009, 19:20:29 · Upravil/a: Senky
V php existuje
$_SERVER['REQUEST_URI'] |
||
bohyn Profil |
#3 · Zasláno: 4. 5. 2009, 19:52:27
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 |
#5 · Zasláno: 4. 5. 2009, 23:16:02 · Upravil/a: Senky
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 |
#6 · Zasláno: 4. 5. 2009, 23:17:22
Senky, dobrý nápad ... děkuji
|
||
bohyn Profil |
#7 · Zasláno: 5. 5. 2009, 00:45:41
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 |
#8 · Zasláno: 5. 5. 2009, 15:01:49
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 |
#9 · Zasláno: 5. 5. 2009, 20:21:34
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 |
#10 · Zasláno: 6. 5. 2009, 08:29:49
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 |
#11 · Zasláno: 6. 5. 2009, 13:39:52 · Upravil/a: sefikail
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í :)
|
||
Časová prodleva: 16 let
|
0