Hallo beisammen,
jetzt mach ich heut schon fast den halben Tag daran rum.
Es geht um folgendes meine Seite ist mehrsprachig. Die Sprachauswahl erfolgt über eine Session, die kann an die URL oder als Cookie gespeichert werden.
Jetzt kommt das große Problem.
Die Seite hat auch ein Login, dieser soll nur mit Cookies gestattet werden.
Hab mir folgedes Kozept ausgedacht:
Sobald jemand den Button des Loginformulars drückt wird eine $_SESSION['loginVersuch'] = true gespeichert.
Dann wird mittels ini_set('session.use_only_cookies', '1'); die Sessionvarablen nur noch in Cookies erlaubt.
Jetzt wird $_SESSION['cokkiesNichtErlaubt'] = true; versucht diese Varable als Cookie zu speichern.
Dann wird mit $_SESSION['loginVersuche'] und $_SESSION['cokkiesNichtErlaubt'] = true geprüft ob Cookie erlaubt wurden, wenn ja wird $_SESSION['login'] = true erzeugt, andernfalls eine Fehlermeldung rausgegeben.
Wenn dann $_SESSION['login'] == true ist wird ein anderes Menu includet, andere Startseite, so stell ich mir das vor. unset wird gemacht, weil $_SESSION['loginVersuche'] nur für login.php zuständig ist.
Was mache ich falsch, bzw. ist mein Denkfehler?
Hoffe ihr könnt mir weiterhelfen.
PHP-Code:
if ( !empty($_POST['senden_login']) && !empty($_POST['login_gesendet']) && empty($meldung) )
{
$_SESSION['loginVersuch'] = true;
ini_set('session.use_only_cookies', '1');
$_SESSION['cokkiesNichtErlaubt'] = true;
$_SESSION['email'] = $passwortEmailAusDB['email'];
header('Location: '.$urlUnternehmen.'1/'.2.'/Login/');
}
/*echo $_SESSION['email'];
echo $_SESSION['login'];*/
// Prüfen ob Cookies nicht aktzeptiert worden
if ( isset($_SESSION['loginVersuch']) && $_SESSION['loginVersuch'] && !$_SESSION['cokkiesNichtErlaubt'] )
{
//<!-- Sprache müssen aktzeptiert werden. -->
$rowSpracheFromSprachen = readSpracheFromSprachen($variable = 'wurdenNichtAktzeptiert', $sprache = $ermittelteSpracheInjectionfree);
$sprache = $rowSpracheFromSprachen[$ermittelteSpracheInjectionfree];
if ( !empty($sprache) ){ $wurdenNichtAktzeptiert = $sprache; }
$cookiesWurdenNichtAkzeptiert = 'Cookies '.$wurdenNichtAktzeptiert;
}
if ( isset($_SESSION['loginVersuch']) && $_SESSION['loginVersuch'] && $_SESSION['cokkiesNichtErlaubt'])
{
//Cookies akzeptiert
$_SESSION['login'] = true;
echo 'COOKIES ERLAUBT';
echo $_SESSION['cokkiesNichtErlaubt'];
}
unset($_SESSION['loginVersuch']);
if ( !empty($cookiesWurdenNichtAkzeptiert) )
{
echo '
<div style="background-color: #ebf2ff; margin-bottom: 15px; padding: 5px; border: 1px #B2CDFF solid;">
<ul type="square">'.$cookiesWurdenNichtAkzeptiert.'</ul>
</div>';
}
HTML-Code:
<form action="http://www.url.de/1/2/Login/" method="POST">
<!--HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHh -->
<table cellspacing="0" cellpadding="0" style="padding: 10px;" class="form_HintergrundBorder">
<tr><td align="right">
<label for="email"><strong>E-Mail-Adresse</strong></label>
</td>
<td width="2"></td>
<td><input type="text" name="email_1" size="22" value=""
class="" /></td></tr>
<tr><td align="right">
<label for="password"><strong>Passwort</strong></label>
</td>
<td width="2"></td>
<td><input type="password" name="passwort_1" size="22" value=""
class="" /></td></tr>
<tr><td align="right" colspan="3">
<!--Überprüfen ob Formular zum erstenmal aufgerufen wird -->
Cookies müssen aktzeptiert werden.<br />
<input name="login_gesendet" type="hidden" value="1" />
<input class="button_login" type="submit" name="senden_login" value="Login" style="margin: 10px 0 0 0;" />
</td></tr>
</table>
</form>