Cookies verändern sich ungewollt

judos

Mitglied
hallo zusammen,


ich habe ein kleines Problem. Programmiere im moment ein kleines Onlinegame.
Dort kann man Raumschiffe auswählen.
1.man wählt Anzahl Raumschiffe jedes Typen in einem Formular aus.
2.Via post-Befehl werden die Daten abgerufen und als Cookies gespeichert. ( verwende den Befehl setcookie(cookie-name,cookie-wert) ) hier kann man das Ziel anwählen, zu welchem die Raumschiffe fliegen sollen.
3.Nun kann noch Aktion ausgewählt werden, die die Schiffe ausführen sollen.

Nun das Problem:
Wenn man bei 3. auf zurück klickt um das Ziel zu ändern, wird mit einem GET abgerufen, ob man von 3. oder 1. herkommt. Wenn also GET befehl sagt, man kommt von 3. dann werden die Cookies anstatt die POST-Daten abgerufen.
Nun ist es aber so, dass die Cookies ihren Wert verändert haben. Sie weisen immer einen Wert zwischen 1 und 2 auf.

Kann mir hier jemand helfen?

mfg judos

p.s. liegt es eventuell daran, dass ich von 3. mit einem link zurück gehe, anstatt wie vorher von 2 zu 3 mit einer "form..." ?
 
Zuletzt bearbeitet:
Code oder sowas haste nicht -.-

Zu dem Thema deine Cookies werden verändert -.- setzt du irgendwo einen neuen Cookie und ersetzt somit den einen?
P.S.: wieso nimmste keine SESSION-Cookies her?
 
Code meines kleinen Onlinegames, ist leider relativ gross =(

habe die normalen Cookies genommen, weil die Session-cookie nicht sehr lange gültig sind und plötzlich verloren gehen...

hmm schaue mal nach ob ich cookies überschreibe...

danke schonmal für die antwort

mfg judos


/edit:

Habe inzwischen folgendes herausgefunden:
die Anzahl angewählter Schiffe wird richtig übergeben, aber dieser Befehl ändert die Anzahl nochmals:
if ($ship_ange[$id]>$ships[$id]) $ship_ange[$id]=$ships[$id];

$id = schiff id
$ship_ange = anzahl angewählter schiffe
$ships = anzahl schiffe auf dem planeten vorhanden

Die logische Folgerung daraus ist, dass die Variable ships falsch berechnet ist. Hier der Code wo die Anzahl Schiffe auf dem Planeten aus der Datenbank gelesen wird:

//Schiffe auf Planeten finden
$sql="SELECT * FROM `ff_planet_ships` WHERE `planet_id`='$akt_planet' AND `user_id`='$user_id';";
$result=mysql_query($sql);
$anzahl=0;
if (mysql_num_rows($result)>0)
{
for ($i=1;$i<=mysql_num_rows($result);$i++)
{
$data=mysql_fetch_array($result);
$id=$data['planet_ship_id'];
$ships[$id]=$data['planet_ship_anzahl'];
if ($ships[$id]>0) $anzahl=1;
}
}
else
$anzahl=0;


die Variable $anzahl diehnt hier nur zum herausfinden, ob überhaupt irgendwelche Schiffe auf dem Planeten sind oder nicht. Wesshalb spinnt nun diese Berechnung?
Werde daraus nicht wirklich schlau...

mfg judos


/edit2:

scheine den Fehler gefunden zu haben. das Link von 3 nach 2 schickt eine per GET eine Variable, die den gleichen Namen trägt und damit einen Konflikt auslöst...

die GET-Variable hat definitiv die andere Variable gestört... -> Problem gelöst.
 
Zuletzt bearbeitet:
Zurück