Problem gelöst, es lag an der value bezeichnung einer foreach schleife
z. B. foreach($_SESSION['TEST']) as $TEST){};
nach änderung des Values Variable funktionierte alles einwandfrei
ich interpretiere das Bezeichnung key Value nicht gleich sein darf in dem fall TEST
richtig also
z. B. foreach($_SESSION['TEST']) as $TEST_anderst){};
ich habe Debian lampp Standard istallation PHP Version 5.2.6
Zitat:
Zitat von DokuLeseHemmung
das solltest du abschalten dann wird es klappen.
und magic_quotes_gpc=On wohl auch abschalten
Beide fliegen mit PHP6 sowieso ersatzlos raus....
|
alles i.o. nach der anweisung.
Hallo Leute,
ich habe folgendes problem:
wenn ich array in eine Session Speichere vergisst die Session das Array, woran liegt das?
vorweg:
Ich hatte ein kleines Spiel gemacht was auf ein Server funste, jetzt kam es zum Server wechsel und dann kam ein Fehler, die Fehlermeldung weis ich nicht mehr aber es war quasi das ein ähnliches problem in bezug array Session und hatte mein Script komplett umgeschrieben.
jetzt habe ich wieder ein problem was Session und Array betrifft und will wissen was das ist.
man Drückt Generrieren über POST wird eine if(){}; angesprochen die lößt eine function(){}; die genneriert Karten array(Incremental => array(0 => x, 1 => x)) das wird einer SESSION angehängt
$_SESSION[Name] = array() // vor meiner schleife
// schleife
array_push($_SESSION[name], oben generiertes array)
unten lese ich es mit foreach aus
verhalten:
1. öffnen der seite --> foreach fehler --- logisch es gibt kein array
1.1. drücke generrieren
2. seite wird geladen, foreach gibt korreckt die gerade generierten Zahlen für die Karten aus.
3. Lade die Seite neu (kein reload) Wir haben ja eine SESSION aber --> foreach gibt nur das erste array in array aus und das zweite array in array mit leeren werten
4. Lade nochmal neu nun gibt es garnichts mehr. -->bei print_r steht nur 12 <-- zumindest jetzt
mein Script:
/EDIT:
habe mal den Script gekürzt
Auf Seite 2 ist eine starke zusammenfassung des Scripts
PHP-Code:
<?PHP
function Zufallskarten ()
{
unset($_SESSION[Zieh_Karten_Spieler]);
unset($_SESSION[Zieh_Karten_Marco]);
// Genneriere fuer Player $Spieler 16 Karten
$_SESSION[Zieh_Karten_Spieler] = array();
for($x=0; $x<16; $x++)
{
unset($Stop);
while(empty($Stop))
{
unset($weiter);
srand((double)microtime() * 1000000);
$ZufallsZahl_Karte = rand (7, 14);
srand((double)microtime() * 1000000);
$ZufallsZahl_Farbe = rand (1, 4);
foreach($_SESSION[Zieh_Karten_Spieler] as $Zieh_Karten)
{
if($Zieh_Karten[0] == $ZufallsZahl_Karte and $Zieh_Karten[1] == $ZufallsZahl_Farbe)
{
$weiter = True;
};
};
if(empty($weiter))
{
array_push($_SESSION[Zieh_Karten_Spieler], array($ZufallsZahl_Karte, $ZufallsZahl_Farbe));
$Stop = True;
};
};
};
// Genneriere fuer Player Marco 16 Karten
$_SESSION[Zieh_Karten_Marco] = array();
for($x=0; $x<16; $x++)
{
unset($Stop);
while(empty($Stop))
{
unset($weiter);
srand((double)microtime() * 1000000);
$ZufallsZahl_Karte = rand (7, 14);
srand((double)microtime() * 1000000);
$ZufallsZahl_Farbe = rand (1, 4);
foreach($_SESSION[Zieh_Karten_Marco] as $Zieh_Karten_Marco)
{
if($Zieh_Karten_Marco[0] == $ZufallsZahl_Karte and $Zieh_Karten_Marco[1] == $ZufallsZahl_Farbe)
{
$weiter = True;
}
else
{
foreach($_SESSION[Zieh_Karten_Spieler] as $Zieh_Karten_Spieler)
{
if($Zieh_Karten_Spieler[0] == $ZufallsZahl_Karte and $Zieh_Karten_Spieler[1] == $ZufallsZahl_Farbe)
{
$weiter = True;
};
};
};
};
if(empty($weiter))
{
array_push($_SESSION[Zieh_Karten_Marco], array($ZufallsZahl_Karte, $ZufallsZahl_Farbe));
$Stop = True;
};
};
};
};
if(isset($_POST[Gen]))
{Zufallskarten();echo "if PIST Gen";};
echo "<form method=\"POST\">
<input type=\"submit\" name=\"Gen\" value=\"Gennerieren\" />
</form>";
echo "<form method=\"POST\">
ist nur leerer post:
<input type=\"submit\" value=\"Refresh\" />
</form>";
////////////////
// TEST
echo "<BR><BR><BR>";
print_r($_SESSION[Zieh_Karten_Spieler]);
echo "<br><br><br>";
error_reporting(E_ALL);
?>