Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: virhesivuista raportointi

Sivun loppuun

Lazu [25.03.2005 19:06:05]

#

Ohjaan .htaccessilla virhesivulle error.php?error=<tähän numero>. Nyt tarvitsisi saada tietoon url joka laukaisi virheen. Minulla on tähän tyyliin:

<?php
$referer = $_SERVER["HTTP_REFERER"];
$request = $_SERVER["REQUEST_URI"];
?>

Mutta tuo request_uri palauttaa sen error.php sivun ja referer sivun jolta tultiin virheen laukaisevalle sivulle, joten miten saisin tietoon sivun joka käynnisti virheen. esim. www.sivu.com/tätäeilöydy.html

ajv [25.03.2005 19:13:42]

#

#Sulla on .htaccess-tiedostossa ilmeisesti jotakin tyyliin:
ErrorDocument 401 http://om.dom.com/error.php
#koitappa muuttaa se muotoon:
ErrorDocument 401 /~tunnus/error.php
#tai
ErrorDocument 401 /home/tunnus/www/error.php
#niin pitäisi noiden muuttujien palauttaa haluamasi arvot
#näin toimii ainakin itsellä

Lazu [25.03.2005 19:23:18]

#

eipä toimi tuo minulla

ajv [25.03.2005 19:26:51]

#

Ai nuo PHP:n ympäristömuuttujat palauttaa edelleen väärät arvot?

Lazu [25.03.2005 19:28:12]

#

ei vaan .htaccess ohjaa sivulle jota ei löydy

ajv [25.03.2005 19:31:13]

#

No silloin sinulla on nuo polut väärin. Kokeile muutella niitä erilailla, itse tappelin aikoinani jokusen aikaa, ennen kuin tajusin kuinka nuo polut tulee laittaa :)

Edit:
Google osaa kertoa moniakin erilaisia polkuvaihtoehtoja

Lazu [25.03.2005 20:17:31]

#

Nyt siis yritän hakea sivun urlia joka laukaisee virheen. Esim. 404 tapauksessa miten saan tuon www.sivu.com/tätäsivuaeiole.html php:llä haettua.

http://www.cl0.net/test.html

Tuolla sivulla on linkki jonka kohdesivua ei ole olemassa, jolloin .htaccess määrää menemään sivulle error.php?error=404. error.php lähettää sähköpostiini kaikennäköistä tietoa, mutta ei sitä urlia jota ei löytynyt. Nyt siis ongelmana on saada selville tuo url jota ei löytynyt.

ajv [26.03.2005 17:29:17]

#

No väännetään nyt sitten rautalangasta:

On kaksi erilaista tapaa ohjata käyttäjä omalla error-sivulle. Ohjaukseen voi käyttää joko absoluuttista urlia, jolloin käyttäjä "heitetään" ko. osoitteeseen ja tällöin virheen laukaissutta sivua EI voi saada selville. Toinen ja paljon parempi tapa on käyttää palvelimen sisäistä, ns. suhteellista polkua ja tällöin käyttäjää ei tavallaan ohjata error-sivulle, vaan error-sivun sisältö ohjataan siihen dokumenttiin, jota ei löytynyt. Tällöin myös tuo hukassa olevan dokumentin osoite jää osoiteriville lukemaan ja näin ollen se voidaan esim. PHP:n avulla saada selville:

http://hommat.hanskassa.com/error/index.php

ja esimerkissä käytetyt tiedostot:

### /foo/.htaccess
ErrorDocument 404 http://hommat.hanskassa.com/error/error.php
### /bar/.htaccess
ErrorDocument 404 /~ajv/error/error.php
*** error.php
<?php
   echo $_SERVER["HTTP_REFERER"]."<br />";
   echo $_SERVER["REQUEST_URI"];
?>

Toivottavasti selvensi asiaa.

Lazu [26.03.2005 18:29:35]

#

Ahaa aivan :)

Kiitosta, koitan säätää.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta