Martin skrev:
> Der er ikke et andet sted hvor du har sat
> $_SESSION['moves'] = etellerandet
Nej. Den initieres med
$_SESSION['moves']=array();
inden i en lille blok der er underlagt en betingelse:
if (isset($_POST['opgavevalg'])) ...
Arrayet skal initialiseres og nulstilles hver gang man har valgt
en opgave.
> Hvis du vil hurtigt af med den warning så kan du sætte et @ foran
Ja, men der er endnu en fejl senere hen der udløses af at
$_SESSION['moves'] ikke er et array.
Jeg prøvede at lægge dels en udskrift og dels en test ind.
Udskriften lige før linje 288 giver 0 første gang og ellers 8000:
echo '<p>=>'.$_SESSION['moves'].'<=</p>';
Testen er her:
if (!is_array ($_SESSION['moves']))
$_SESSION['moves']=array();
Den resulterer bare i at $_SESSION['moves'] bliver sat til et
tomt array hver gang så det kun er det sidste træk der huskes.
Jeg har kikket på phpinfo() og det er forskellige versioner der
kører, men jeg mener ikke at jeg har brugt versionsspecifikke
elementer (har dog ikke tjekket).
Den der virker, er PHP Version 5.2.6. error_reporting 6135 (0 ved
E_NOTICE og E_STRICT)
Den der fejler, er PHP Version 4.4.7 error_reporting 2039 (0 ved
E_NOTICE og E_RECOVERABLE_ERROR)
Den eneste sessionindstilling der er forskellig i de to
info-filer, er session.gc_probability som er sat til 0 på den
server hvor scriptet virker.
Jeg har yderligere kørt nogle forsøg hvor jeg satte
error_reporting manuelt til 0x1fff der skulle koble alle lamper
til, og derefter rettede jeg koden til fejlene forsvandt. Det
løser ikke problemet på den fejlende server.
Den håndterer åbenbart initialiseringen af
$_SESSION['moves']=array();
forkert. Den kommer hver gang som en almindelig variabel (med en
tilfældig værdi), og så kan den ikke behandles som et array.
Jeg er interesseret i at komme til bunds i problemet, men det
drejer sig mest om hvordan den anden server er sat op. Jeg er
sådan set tilfreds med at koden kører på den oprindelige server.
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO:
http://fiduso.dk/