Hallo,
ich setze via php ein cookie. Das funktioniert soweit auch wunderbar. Allerdings möchte ich vorher gerne abfragen ob das cookie bereits existiert. Nun habe ich den nachfolgenden code, ich komme ganz frisch auf die page und habe noch kein cookie. In meinen testausgaben wird mir allerdings angezeigt, das ein cookie existiert, der Inhalt wird ausgegeben, und vor allem wird der cookie neu erstellt. Kann mir irgendwer erklären wieso beim ersten Laden der Page nicht zumindest einmal ausgegeben wird, dass mein cookie nicht existiert bzw. ein "Kesk neu erstellt" (s.u. code) ?
Ausgabe:
------------
_COOKIE[mycookie]: gvd7p75uk8ph7h2i3d0i1q5190
$_COOKIE != leer
$_COOKIE <> leer
isset($_COOKIE
Keks vorhanden, nicht neu erstellt
$newCookieSet falsetep_session_name() sCsid
$_GET[tep_session_name()] :gvd7p75uk8ph7h2i3d0i1q5190
tep_session_id($_GET[tep_session_name()]): gvd7p75uk8ph7h2i3d0i1q5190
ich setze via php ein cookie. Das funktioniert soweit auch wunderbar. Allerdings möchte ich vorher gerne abfragen ob das cookie bereits existiert. Nun habe ich den nachfolgenden code, ich komme ganz frisch auf die page und habe noch kein cookie. In meinen testausgaben wird mir allerdings angezeigt, das ein cookie existiert, der Inhalt wird ausgegeben, und vor allem wird der cookie neu erstellt. Kann mir irgendwer erklären wieso beim ersten Laden der Page nicht zumindest einmal ausgegeben wird, dass mein cookie nicht existiert bzw. ein "Kesk neu erstellt" (s.u. code) ?
Code:
echo '$_COOKIE[mycookie]: '.$_COOKIE['mycookie'].'<br>';
if ($_COOKIE['mycookie'] != '') {
echo '$_COOKIE != leer<br>';
}
if ($_COOKIE['mycookie'] <> '') {
echo '$_COOKIE <> leer<br>';
}
if ($_COOKIE['mycookie'] == ' ') {
echo '$_COOKIE = leerzeichen<br>';
}
if (isset($_COOKIE['mycookie'])) {
echo 'isset($_COOKIE<br>';
}
if (!isset($_COOKIE['mycookie'])) {
echo '<b>!</b>isset($_COOKIE<br>';
}
$newCookieSet = false;
// kein cookie vorhanden, Cookie setzen
if ($_COOKIE['mycookie'] == '') {
echo 'Keks erstellt';
$newCookieSet = true;
setcookie('mycookie', tep_session_id($_GET[tep_session_name()]), 0);
$newsetcookie = tep_session_id($_GET[tep_session_name()]);
} else {
echo 'Keks vorhanden, nicht neu erstellt';
echo '<br>';
}
if ($newCookieSet == false) {
echo '$newCookieSet false';
} else {
echo '$newCookieSet true';
}
echo 'tep_session_name() :'.tep_session_name();
echo '<br>';
echo '$_GET[tep_session_name()] :'.$_GET[tep_session_name()];
echo '<br>';
echo 'tep_session_id($_GET[tep_session_name()]): '.tep_session_id($_GET[tep_session_name()]);
echo '<br><br>';
echo '<br><br>Wert im Cookie myCookie:'.$_COOKIE['mycookie'];
// cookie wurde neu gesetzt
if ($newCookieSet == true ) {
if ($_GET[tep_session_name()] <> $newsetcookie) {
tep_redirect(tep_href_link_withoutOscId('index.php?osCsid='.tep_session_id($_GET[tep_session_name()])));
}
} else {
// kein neuer cookie gesetzt -> hat schon existiert
if ($_GET[tep_session_name()] <> $_COOKIE['mycookie']) {
echo 'kein keks erstellt, ergo injection';
tep_redirect(tep_href_link_withoutOscId('index.php?osCsid='.tep_session_id($_GET[tep_session_name()])));
}
}
Ausgabe:
------------
_COOKIE[mycookie]: gvd7p75uk8ph7h2i3d0i1q5190
$_COOKIE != leer
$_COOKIE <> leer
isset($_COOKIE
Keks vorhanden, nicht neu erstellt
$newCookieSet falsetep_session_name() sCsid
$_GET[tep_session_name()] :gvd7p75uk8ph7h2i3d0i1q5190
tep_session_id($_GET[tep_session_name()]): gvd7p75uk8ph7h2i3d0i1q5190