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.