Dennis: HTTP_REFERER

Beitrag lesen

Hi Richie,

<?

if(!eregi("http://itchy.uttx.net/login.php",$HTTP_REFERER))
header("Location:http://itchy.uttx.net/login.php")
?>

  
Du greifst auf die falsche Variable zurück! Der HTTP\_REFERER steht in `$_SERVER['HTTP_REFERER'];`{:.language-php}.  
  
Lasse dir zur Information auch mal das ganze $\_SERVER Array ausgeben:  
~~~php
<?php  
echo "<pre>";  
print_r($_SESSION);  
echo "</pre>";  
?>

In Anbetracht der Tatsache, dass manche Firewalls den Referer löschen oder man die Übermittlung des Referers in machen Browsern auch abstellen kann, solltest du die Abfrage so gestalten:

<?php  
if(!eregi("http://itchy.uttx.net/login.php", $_SERVER['HTTP_REFERER')  
   AND !empty($_SERVER['HTTP_REFERER']))  
{  
   header("Location: http://itchy.uttx.net/login.php");  
}  
?>

Beachte allerdings, dass dies immer noch nicht "schummelsicher" ist. Man kann dir auch einen falschen Referer unterschieben - dann ist dein ganzer Schutz zunichte ;-)

MfG, Dennis.

--
Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:( mo:} zu:|
Wissen ist gut, Können ist besser, aber das Beste und Interessanteste ist der Weg dahin! (Detlef G.)