/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Fejl hos én hoteludbyder, men ikke hos en ~
Fra : Bertel Lund Hansen


Dato : 02-07-08 13:37

Hej alle

En snu ræv har mere end én indgang, så jeg har lejet et webhotel
hos Needhost selv om Gigahost er min primære udbyder og fungerer
okay.

Jeg har lavet et spilprogram i PHP. Det fungerer som ønsket hos
Gigahost.

Tager jeg alle filerne og lægger over hos Needhost, får jeg efter
et par valg denne fejl:

Warning: Cannot use a scalar value as an array in
<sti til min serverplads>\wwwroot\index.php on line 288

Den pågældende linje er her:


$_SESSION['moves'][]=array($_POST['carnr'],$_POST['steps'],$_POST['direc'],$result);

Jeg vil ikke linke til apillet som er ophavsretsligt beskyttet,
og desuden er der næppe brug for at detaljefejlfinde i noget kode
der rent faktisk virker.

Er problemet at man ikke kan bruge sessions på grund af at et
eller andet ikke er sat op?

--
Bertel
http://bertel.lundhansen.dk/      FIDUSO: http://fiduso.dk/

 
 
Henrik Stidsen (02-07-2008)
Kommentar
Fra : Henrik Stidsen


Dato : 02-07-08 17:33

Bertel Lund Hansen <unospamo@lundhansen.dk> wrote in
news:o9tm64ptmjml25b5mgm3p25pkpshrbg830@news.stofanet.dk:

> Er problemet at man ikke kan bruge sessions på grund af at et
> eller andet ikke er sat op?

Er det samme version af PHP på begge hoteller?

--
Henrik Stidsen - http://henrikstidsen.dk/
http://fuglemarkedet.dk/ - Danmarks online fuglemarked!

Martin (02-07-2008)
Kommentar
Fra : Martin


Dato : 02-07-08 18:11

Bertel Lund Hansen wrote:
> Hej alle
>
> En snu ræv har mere end én indgang, så jeg har lejet et webhotel
> hos Needhost selv om Gigahost er min primære udbyder og fungerer
> okay.
>
> Jeg har lavet et spilprogram i PHP. Det fungerer som ønsket hos
> Gigahost.
>
> Tager jeg alle filerne og lægger over hos Needhost, får jeg efter
> et par valg denne fejl:
>
> Warning: Cannot use a scalar value as an array in
> <sti til min serverplads>\wwwroot\index.php on line 288
>
> Den pågældende linje er her:
>
>
> $_SESSION['moves'][]=array($_POST['carnr'],$_POST['steps'],$_POST['direc'],$result);

Der er ikke et andet sted hvor du har sat
$_SESSION['moves'] = etellerandet

For så for man nemlig den warning

> Er problemet at man ikke kan bruge sessions på grund af at et
> eller andet ikke er sat op?

Nej, grunden er at du prøver at sætte et array ind hvor der er noget
tekst i forvejen

Hvis du vil hurtigt af med den warning så kan du sætte et @ foran

@$_SESSION['moves'][]=array(........

Et bud på hvad ændringen er på de 2 forskellige servere er at på den ene
er error_reporting sat til
E_ERROR (viser KUN errors og altså IKKE warnings, så sandsynligt har du
altid haft den warning, hvis du kigger i den error log fx.)
mens den på den anden er sat til
E_ALL & ~E_NOTICE (viser alle fejl, pånær notices og er standard på en
php installation)

Dette kan ses i phpinfo

Bertel Lund Hansen (04-07-2008)
Kommentar
Fra : Bertel Lund Hansen


Dato : 04-07-08 08:10

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/

Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409083
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste