/ 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
Glemmer cookies efter reinstallation
Fra : Rune


Dato : 14-04-04 12:30

Min computer (Mac, OSX-10.2) crashede så jeg blev nød til at geninstallere
alt fra bunden. Men efter at have installeret først OS-X, så PHP og så
mySQL, er de PHP sider jeg arbejdede med pludselig begyndt at opføre sig
lidt underligt. Først bliver PHP sider jeg viderefører til ved hjælp af "
header" (e.g. header('Location: index.php'); ): vist som almindelige
text-filer, altså PHP'en bliver ikke parset. Dernæst syntes cookies ikke
længere at fungere som før. Cookies bliver registreret ok med
session_register, men ligsåsnart jeg prøver at hente værdien tilbage jeg
indsatte i småkagen returnere den null.



e.g.

1) define('COOKIE', 'test');

2) session_register(COOKIE);

3) ${COOKIE} = 42;



Ved næste refresh viser is_registered true, men ${COOKIE]} er ikke sat - det
var den før reinstall.



Både PHP og Apache (og mySQL) er installeret i nye versioner. Måske har, i
hvert fald første problem, noget med httpd.conf filen at gøre. Den fik jeg
ikke taget backup af og jeg roder lidt hjælpeløst rundt i den.

/Rune



 
 
Emil Rasmussen (14-04-2004)
Kommentar
Fra : Emil Rasmussen


Dato : 14-04-04 13:39

Rune wrote:

> Min computer (Mac, OSX-10.2) crashede så jeg blev nød til at geninstallere
> alt fra bunden. Men efter at have installeret først OS-X, så PHP og så
> mySQL, er de PHP sider jeg arbejdede med pludselig begyndt at opføre sig
> lidt underligt. Først bliver PHP sider jeg viderefører til ved hjælp af "
> header" (e.g. header('Location: index.php'); ): vist som almindelige
> text-filer, altså PHP'en bliver ikke parset.

Du har husket at sætte "exit", ind efter header()?

Det er også en god ide, at skrive den komplette URI, f. eks.:

header('Location: http://example.net/index.php');
exit;

> Dernæst syntes cookies ikke
> længere at fungere som før. Cookies bliver registreret ok med
> session_register, men ligsåsnart jeg prøver at hente værdien tilbage jeg
> indsatte i småkagen returnere den null.
> Ved næste refresh viser is_registered true, men ${COOKIE]} er ikke sat - det
> var den før reinstall.

I nyere PHP-versioner er register_globals = off, og du skal tilgå
GPC-variablerne via $_REQUEST eller de tilhørende $_GET, $_POST og
$_COOKIE arrays.

F. eks.: $_COOKIE['COOKIE'];

Læs evt. mere:
<http://dk.php.net/manual/en/language.variables.predefined.php>

Mvh Emil
--
Emil Rasmussen
http://noget.net

Rune (15-04-2004)
Kommentar
Fra : Rune


Dato : 15-04-04 08:05

> Du har husket at sætte "exit", ind efter header()?
>
> Det er også en god ide, at skrive den komplette URI, f. eks.:
>
> header('Location: http://example.net/index.php');
> exit;

Problemet gik væk af sig selv, nu bliver siderne parset ok.

Ja, jeg har exit(); efter header kaldet. Men i øvrigt syntes denne exit ikke
at gøre nogen forskel. header fungere på sammen måde med eller uden exit();

> I nyere PHP-versioner er register_globals = off, og du skal tilgå
> GPC-variablerne via $_REQUEST eller de tilhørende $_GET, $_POST og
> $_COOKIE arrays.
>
> F. eks.: $_COOKIE['COOKIE'];

Super! Det må have været noget med register_globals. Efter jeg gik over til
at bruge $_SESSION[] begyndte det at virke.

Tak for svaret.
/Rune



Emil Rasmussen (15-04-2004)
Kommentar
Fra : Emil Rasmussen


Dato : 15-04-04 12:57

Rune wrote:

> Problemet gik væk af sig selv, nu bliver siderne parset ok.

Sådan går det en gang i mellem

> Ja, jeg har exit(); efter header kaldet. Men i øvrigt syntes denne exit ikke
> at gøre nogen forskel. header fungere på sammen måde med eller uden exit();

Ja, men dog med den vigtige forskel, at scriptet efter header() kaldet
stadig bliver eksekveret.

Mvh Emil
--
Emil Rasmussen
http://noget.net

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste