raffiSSL
Lt. Junior Grade
- Registriert
- Feb. 2006
- Beiträge
- 289
Hallo Community.
Ich habe wie aus der Überschrift zu lesen ein Problem mit dem Ändern von Cookies, welche beim ersten Aufruf der Webseite korrekt gesetzt werden.
Ich habe das ganze derzeit folgendermaßen gelöst in der index.php:
Soweit so gut, das klappt. Cookies sind laut Cookiemanager im FireFox korrekt gesetzt.
Nun folgt der Teil wo es klemmt:
Wenn ich nun einen Content aufrufe und in dieser PHP-Datei das Cookie ändern möchte passiert dies einfach nicht (klingt salopp ist aber eben so).
Änderung geschieht bspw. in der basket.php folgendermaßen, nach Aufruf im case von:
Allerdings nimmt er immer nur einen Wert auf, setzt diesen aber beim nächsten Klick wieder komplett auf "0". Also kurz: Bei jedem Klick wird $_COOKIE["itemids"] = "0" gesetzt.
Mir will sich nicht ganz erschließen warum.
Getestet habe ich das ganze mit dem Apache2 unter Ubuntu 10.04.
Ich hofe das reicht an Infos.
Danke
Ich habe wie aus der Überschrift zu lesen ein Problem mit dem Ändern von Cookies, welche beim ersten Aufruf der Webseite korrekt gesetzt werden.
Ich habe das ganze derzeit folgendermaßen gelöst in der index.php:
PHP:
<?php
if (!isset($_COOKIE["userid"])) {
setcookie("userid", "Gast");
}
if (!isset($_COOKIE["sid"])) {
setcookie("sid", "test"); // Session ID
}
if (!isset($_COOKIE["itemids"])) {
setcookie("itemids", "0"); // String mit Produktnummern durch Komma getrennt
}
?>
<html>
...
<div id="wrapper">
<div id="navi">
<?php include("categories.php"); ?> // dynamisch erzeugte Navi aus Baumstruktur
</div>
<div id="content"> //Inhalt beim Klick auf Navi-Link
<?php
if (isset($_GET["go"])) {
switch ($_GET["go"]) {
//Navilinks
case 'basket': include ("basket.php");
break;
case 'myprofile': include ("myprofile.php");
break;
case 'shop': include ("overview.php");
break;
case 'food': $_GET["cid"] = "food";
include ("overview.php");
break;
.......
}
}
else {
include("overview.php");
}
?>
</div>
</div>
</html>
Nun folgt der Teil wo es klemmt:
Wenn ich nun einen Content aufrufe und in dieser PHP-Datei das Cookie ändern möchte passiert dies einfach nicht (klingt salopp ist aber eben so).
Änderung geschieht bspw. in der basket.php folgendermaßen, nach Aufruf im case von:
PHP:
...
// Dieser case steht nicht oben aber in meiner index.php
case xxx: $_GET["pid"] = "1";
include("basket.php");
break;
...
PHP:
<?php
$productID = $_GET["pid"];
if ($_COOKIE["itemids"] == "0") {
$_COOKIE["itemids"] = $productID;
}
else {
$itemids = $_COOKIE["itemids"];
$_COOKIE["itemids"] = $itemids.",".$productID; // anfügen und durch Komma separieren
...
}
?>
Allerdings nimmt er immer nur einen Wert auf, setzt diesen aber beim nächsten Klick wieder komplett auf "0". Also kurz: Bei jedem Klick wird $_COOKIE["itemids"] = "0" gesetzt.
Mir will sich nicht ganz erschließen warum.
Getestet habe ich das ganze mit dem Apache2 unter Ubuntu 10.04.
Ich hofe das reicht an Infos.
Danke