AirMax: URL-Schönheitsfehler: Session-Cookie & erster Request

Beitrag lesen

Hi ChrisB

hier mal ein bisschen was handfestes:

'login.php'

  
<?php  
session_start();  
if (  
   isset($_SESSION['userid'])  
   ) {  
   include 'logged.inc.php';  
     }  
else {  
   include 'loginform.inc.php';  
     }  
?>

'loginform.php'

  
<form id="login" action="<?php if (isset($_COOKIE['login'])) {echo $_SERVER['PHP_SELF'];} else {echo $_SERVER['PHP_SELF'] . '?' . SID;} ?>" method="post">

Beim ersten Aufruf des Formulars wird die SID an die URL gehängt. Also: action="/php/login.php?login=blablub"
Deshalb, weil das Cookie noch nicht an den Server geschickt wurde. Beim nächsten Request (z.B. falls falsche Zugangsdaten eingegeben wurde) wird das Formular ohne SID verschickt. Also: action="/php/login.php" Und zwar unabhängig davon, ob der Client Cookies akzeptiert oder nicht.