Avatar billede danco Nybegynder
31. marts 2011 - 22:51 Der er 9 kommentarer og
2 løsninger

Sjov fejlbesked

Hej med jer herinde.

Jeg stødte på en lidt sjov fejlbesked da jeg sad og opdaterede min captcha på min ene hjemmeside.  Beskeden lyder:

Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively in Unknown on line 0

Jeg har min side hostet hos gigahost så gik naturligvis ind for at se PHP.ini om jeg havde register_globals aktiveret eller der var noget andet galt. Men intet kunne jeg finde.

Er der nogen herinde der kan give mig en nogenlunde fornuftig forklaring.
Avatar billede intenz Novice
31. marts 2011 - 23:11 #1
Man bør referere til session variabler med:
$_SESSION['variabel_navn'];

Førhen blev de automatisk registreret som en variabel, så du kunne referere til samme session variabel som:
$variabel_navn;

Du har sikkert et sted i din gamle kode som refererer efter den 'gamle' metode, hvilket har et hav af ulember og sikkerhedsproblemer (hvis register_globals er 'on').
Avatar billede danco Nybegynder
31. marts 2011 - 23:23 #2
intenz ;
Jeg tilgår alle mine sessions på den måde som beskriver. Og register_globals er desuden sat til 'off' på hele domænet.
Avatar billede alphabits Nybegynder
01. april 2011 - 01:06 #3
En hurtig søgning gav dette svar på stackoverflow:
http://stackoverflow.com/questions/3575180/what-are-session-bug-compat-42-and-session-bug-compat-warn#3575513

Har ikke lige selv mulighed for at teste det, men måske kan du bruge det...
Avatar billede danco Nybegynder
04. april 2011 - 09:40 #4
jeg har brugt weekenden på at undersøge problemet og min eneste tanke skal være fordi jeg bruger:

$_SESSION['cap'] = null;

men jeg kan ikke umiddelbart finde andre brugbare løsninger der opnår samme resultat.
Avatar billede siphon Nybegynder
04. april 2011 - 15:30 #5
prøvet $_SESSION['cap'] = 0; ? hvis det fordi den skal return NULL til et senere if statement er det lige godt.. :P
Avatar billede danco Nybegynder
04. april 2011 - 17:36 #6
At sætte den til nul er desværre ikke godt nok jeg bruger nemlig denne session til at holde den rigtige kombination til et captcha billede, og derfor har jeg behov for den bliver nulstillet hver gang billedet loades..
Avatar billede siphon Nybegynder
05. april 2011 - 12:59 #7
#6 hmm.. dette kan vel også opnåes ved at sætte den til 0 ? - Ellers kan du benytte false ? - Jeg har engang på en meget mærkelig server oplevet problem med at skrive null da den kun godkendte NULL (i store bogstaver) - Men det var et meget unikt og specielt tilfælde så ved ikke om det har nogen reference til dit problem. :)
Avatar billede alphabits Nybegynder
05. april 2011 - 13:28 #8
Er den nemmeste løsning ikke bare at sætte session.bug_compat_42 og session.bug_compat_warn til 0 i din php.ini-fil? Hvis du ikke har adgang til php.ini, kan du prøve at bruge

unset($_SESSION['cap']);

men jeg er langt fra sikker på at det løser problemet...
Avatar billede danco Nybegynder
07. april 2011 - 21:27 #9
det må efterhånden være tid til at lukke her.

hvis alle i tråden vil smide et svar så deler i :)
Avatar billede siphon Nybegynder
14. april 2011 - 08:28 #10
YELLOW ?
Avatar billede danco Nybegynder
17. april 2011 - 17:11 #11
Jeg lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester