/ 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
Gemme objekter i sessionsvariabler..?
Fra : Kasper Birk Rasmusse~


Dato : 29-07-04 18:41

Hejsa..
Jeg har nu brugt flere timer på at få et objekt gemt i en sessions variabel,
men uden held..
Jeg har prøvet 1000 ting, men intet har virket..
Nedenfor ses min kode som den ser ud nu..

<? session_start();

if(! session_is_registered("AConfig")){
session_register("AConfig");
echo "session er registreret..!<br>";
}

/*
if($test > 10 || $test < 1){
$test = 10;
}
$test = $test - 1;
echo $test;
*/


// * * * * Include Classes * * * *
include "php/classes.php";

// * * * * Include Functions * * * *
include "php/functions.php";

// * * * * Hvis ikke $pageID findes i urlen, skal $pageID sættes til 1 * * *
*
if($_GET["pageID"]){
$pageID = $_GET["pageID"];
}else{
$pageID = 1;
}

// * * * * Create TConfig Class * * * *
if(! $AConfig){
$AConfig = new TConfig("config.ini");
echo "Objekt er oprettet.. <br>";
} Echo $AConfig


/*
// * * * * unserialize Object * * * *
$AConfig = unserialize($_SESSION['AConfig']);
echo "--> ".$_SESSION['AConfig'] -> DB_adr;
*/
?>

Jeg har selv installeret php på en apache server.. Hvad gør jeg galt..?

Hilsen Kasper Birk



 
 
Jacob Atzen (29-07-2004)
Kommentar
Fra : Jacob Atzen


Dato : 29-07-04 18:59

"Kasper Birk Rasmussen" <hotmail@hotmail.com> writes:

> Jeg har selv installeret php på en apache server.. Hvad gør jeg
> galt..?

For det første har du ikke fundet den mindste instans du kan af dit
problem. Et råd jeg selv følger når jeg ikke kan gennemskue, hvorfor
en teknikalitet ikke virker, er at fjerne alt unødvendigt udenoms
fnidder for at demonstrere problemet.

Følgende virker hos mig:

<?php

class Foo {
var $bar;
}

session_start();
if(!isset($_SESSION['foo'])) {
$_SESSION['foo'] = new Foo;
$_SESSION['foo']->bar = 0;
}

$_SESSION['foo']->bar++;
print $_SESSION['foo']->bar."\n";

?>

For yderligere information så står der en del om forskellige problemer
med sessions og objekter i manualen:

<http://dk2.php.net/session>

--
Med venlig hilsen
- Jacob Atzen

Kasper Birk Rasmusse~ (29-07-2004)
Kommentar
Fra : Kasper Birk Rasmusse~


Dato : 29-07-04 19:29

> For det første har du ikke fundet den mindste instans du kan af dit
> problem. Et råd jeg selv følger når jeg ikke kan gennemskue, hvorfor
> en teknikalitet ikke virker, er at fjerne alt unødvendigt udenoms
> fnidder for at demonstrere problemet.
Har rodet med det i mange timer og ja det er blevet meget rodet
efterhånden..

> Følgende virker hos mig:
>
> <?php
>
> class Foo {
> var $bar;
> }
>
> session_start();
> if(!isset($_SESSION['foo'])) {
> $_SESSION['foo'] = new Foo;
> $_SESSION['foo']->bar = 0;
> }
>
> $_SESSION['foo']->bar++;
> print $_SESSION['foo']->bar."\n";
>
> ?>
Jeg må lige prøve at lave et lille eksempel så.. Er nemlig itvivl om jeg har
lavet / mangler at lave noget på serveren..


> For yderligere information så står der en del om forskellige problemer
> med sessions og objekter i manualen:
>
> <http://dk2.php.net/session>
Tror jeg har læst det meste.. Men kigger lige en ekstra gang..

Tak for hjælpen..



Kasper Birk Rasmusse~ (29-07-2004)
Kommentar
Fra : Kasper Birk Rasmusse~


Dato : 29-07-04 19:51

> > Følgende virker hos mig:
> >
> > <?php
> >
> > class Foo {
> > var $bar;
> > }
> >
> > session_start();
> > if(!isset($_SESSION['foo'])) {
> > $_SESSION['foo'] = new Foo;
> > $_SESSION['foo']->bar = 0;
> > }
> >
> > $_SESSION['foo']->bar++;
> > print $_SESSION['foo']->bar."\n";
> >
> > ?>
> Jeg må lige prøve at lave et lille eksempel så.. Er nemlig itvivl om jeg
har
> lavet / mangler at lave noget på serveren..
>
>
> > For yderligere information så står der en del om forskellige problemer
> > med sessions og objekter i manualen:
> >
> > <http://dk2.php.net/session>
> Tror jeg har læst det meste.. Men kigger lige en ekstra gang..
>
> Tak for hjælpen..

Har lige lavet næsten det samme eks..
<?php

class Foo {
var $bar;
}

session_start();
if(!isset($_SESSION['foo'])) {
$_SESSION['foo'] = new Foo;
$_SESSION['foo']->bar = 120;
echo "objekt oprettes";
}else{
echo "objekt er allerede oprettet";
}

echo $_SESSION['foo'] -> bar;

?>
Men det virker ikke rigtigt..
Til at starte med skriver den rigtigt nok ar objektet er oprettet og værdien
er 120, men når jeg trykker på reload, skriver den kun at objektet allerede
er oprettet, men det er som om den ikke har adgang til atributten..
Hvad går der galt..? Er det serveren den er galt med..?



Jacob Atzen (29-07-2004)
Kommentar
Fra : Jacob Atzen


Dato : 29-07-04 20:28

"Kasper Birk Rasmussen" <hotmail@hotmail.com> writes:

[snip]
> Men det virker ikke rigtigt..
> Til at starte med skriver den rigtigt nok ar objektet er oprettet og
> værdien er 120, men når jeg trykker på reload, skriver den kun at
> objektet allerede er oprettet, men det er som om den ikke har adgang
> til atributten.. Hvad går der galt..? Er det serveren den er galt
> med..?

Din kode virker fint hos mig i alt fald. Kan ikke rigtig gennemskue,
hvad der kan være galt hos dig. Kan du lave en
var_dump($_SESSION['foo'])?

--
Med venlig hilsen
- Jacob Atzen

Kasper Birk Rasmusse~ (29-07-2004)
Kommentar
Fra : Kasper Birk Rasmusse~


Dato : 29-07-04 20:31

> Din kode virker fint hos mig i alt fald. Kan ikke rigtig gennemskue,
> hvad der kan være galt hos dig. Kan du lave en
> var_dump($_SESSION['foo'])?

Ja.. Den giver:
object(__PHP_Incomplete_Class)(2) { ["__PHP_Incomplete_Class_Name"]=>
string(3) "foo" ["bar"]=> int(120) }

Kan ses på http://www.webconstructor.dk/otest/



Jacob Atzen (29-07-2004)
Kommentar
Fra : Jacob Atzen


Dato : 29-07-04 20:41

"Kasper Birk Rasmussen" <hotmail@hotmail.com> writes:

> > Din kode virker fint hos mig i alt fald. Kan ikke rigtig gennemskue,
> > hvad der kan være galt hos dig. Kan du lave en
> > var_dump($_SESSION['foo'])?
>
> Ja.. Den giver:
> object(__PHP_Incomplete_Class)(2) { ["__PHP_Incomplete_Class_Name"]=>
> string(3) "foo" ["bar"]=> int(120) }

Det ser ud som om problemet er, at PHP ikke kender klassen når den
loader objektet fra sessionen. Men det giver ikke rigtig mening, hvis
din kode er som du viste tidligere. Hvilken PHP version kører du?

--
Med venlig hilsen
- Jacob Atzen

Kasper Birk Rasmusse~ (29-07-2004)
Kommentar
Fra : Kasper Birk Rasmusse~


Dato : 29-07-04 20:44

> > > Din kode virker fint hos mig i alt fald. Kan ikke rigtig gennemskue,
> > > hvad der kan være galt hos dig. Kan du lave en
> > > var_dump($_SESSION['foo'])?
> >
> > Ja.. Den giver:
> > object(__PHP_Incomplete_Class)(2) { ["__PHP_Incomplete_Class_Name"]=>
> > string(3) "foo" ["bar"]=> int(120) }
>
> Det ser ud som om problemet er, at PHP ikke kender klassen når den
> loader objektet fra sessionen. Men det giver ikke rigtig mening, hvis
> din kode er som du viste tidligere. Hvilken PHP version kører du?

Det er version 4.3.7..



Jacob Atzen (29-07-2004)
Kommentar
Fra : Jacob Atzen


Dato : 29-07-04 20:46

Jacob Atzen <jacob@aub.dk> writes:

> "Kasper Birk Rasmussen" <hotmail@hotmail.com> writes:
>
> > > Din kode virker fint hos mig i alt fald. Kan ikke rigtig gennemskue,
> > > hvad der kan være galt hos dig. Kan du lave en
> > > var_dump($_SESSION['foo'])?
> >
> > Ja.. Den giver:
> > object(__PHP_Incomplete_Class)(2) { ["__PHP_Incomplete_Class_Name"]=>
> > string(3) "foo" ["bar"]=> int(120) }
>
> Det ser ud som om problemet er, at PHP ikke kender klassen når den
> loader objektet fra sessionen. Men det giver ikke rigtig mening, hvis
> din kode er som du viste tidligere.

Du kører vel ikke med session.auto_start?

print ini_get("session.auto_start");

--
Med venlig hilsen
- Jacob Atzen

Kasper Birk Rasmusse~ (29-07-2004)
Kommentar
Fra : Kasper Birk Rasmusse~


Dato : 29-07-04 21:00

> Du kører vel ikke med session.auto_start?
>
> print ini_get("session.auto_start");

Hmm.. Den skriver godt nok her at den skulle være 0.. Men den printer 1..
Hvor skulle php.ini filen ligge.. Jeg har ændret i en der ligger i
windows/php.ini


[Session]
; Handler used to store/retrieve data.
session.save_handler = files

; Argument passed to save_handler. In the case of files, this is the path
; where data files are stored. Note: Windows users have to change this
; variable in order to use PHP's session functions.
; As of PHP 4.0.1, you can define the path as:
; session.save_path = "N;/path"
; where N is an integer. Instead of storing all the session files in
; /path, what this will do is use subdirectories N-levels deep, and
; store the session data in those directories. This is useful if you
; or your OS have problems with lots of files in one directory, and is
; a more efficient layout for servers that handle lots of sessions.
; NOTE 1: PHP will not create this directory structure automatically.
; You can use the script in the ext/session dir for that purpose.
; NOTE 2: See the section on garbage collection below if you choose to
; use subdirectories for session storage
session.save_path = "N;/session"

; Whether to use cookies.
session.use_cookies = 0

; This option enables administrators to make their users invulnerable to
; attacks which involve passing session ids in URLs; defaults to 0.
; session.use_only_cookies = 1

; Name of the session (used as cookie name).
session.name = PHPSESSID

; Initialize session on request startup.
session.auto_start = 0

; Lifetime in seconds of cookie or, if 0, until browser is restarted.
session.cookie_lifetime = 0

; The path for which the cookie is valid.
session.cookie_path = /

; The domain for which the cookie is valid.
session.cookie_domain =

; Handler used to serialize data. php is the standard serializer of PHP.
session.serialize_handler = php

; Define the probability that the 'garbage collection' process is started
; on every session initialization.
; The probability is calculated by using gc_probability/gc_divisor,
; e.g. 1/100 means there is a 1% chance that the GC process starts
; on each request.

session.gc_probability = 1
session.gc_divisor = 100

; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
session.gc_maxlifetime = 1440

; NOTE: If you are using the subdirectory option for storing session files
; (see session.save_path above), then garbage collection does *not*
; happen automatically. You will need to do your own garbage
; collection through a shell script, cron entry, or some other method.
; For example, the following script would is the equivalent of
; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
; cd /path/to/sessions; find -cmin +24 | xargs rm

; PHP 4.2 and less have an undocumented feature/bug that allows you to
; to initialize a session variable in the global scope, albeit
register_globals
; is disabled. PHP 4.3 and later will warn you, if this feature is used.
; You can disable the feature and the warning seperately. At this time,
; the warning is only displayed, if bug_compat_42 is enabled.

session.bug_compat_42 = 1
session.bug_compat_warn = 1

; Check HTTP Referer to invalidate externally stored URLs containing ids.
; HTTP_REFERER has to contain this substring for the session to be
; considered as valid.
session.referer_check =

; How many bytes to read from the file.
session.entropy_length = 0

; Specified here to create the session id.
session.entropy_file =

;session.entropy_length = 16

;session.entropy_file = /dev/urandom

; Set to {nocache,private,public,} to determine HTTP caching aspects
; or leave this empty to avoid sending anti-caching headers.
session.cache_limiter = nocache

; Document expires after n minutes.
session.cache_expire = 180

; trans sid support is disabled by default.
; Use of trans sid may risk your users security.
; Use this option with caution.
; - User may send URL contains active session ID
; to other person via. email/irc/etc.
; - URL that contains active session ID may be stored
; in publically accessible computer.
; - User may access your site with the same session ID
; always using URL stored in browser's history or bookmarks.
session.use_trans_sid = 0

; The URL rewriter will look for URLs in a defined set of HTML tags.
; form/fieldset are special; if you include them here, the rewriter will
; add a hidden <input> field with the info which is otherwise appended
; to URLs. If you want XHTML conformity, remove the form entry.
; Note that all valid entries require a "=", even if no value follows.
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="





Jacob Atzen (29-07-2004)
Kommentar
Fra : Jacob Atzen


Dato : 29-07-04 21:08

"Kasper Birk Rasmussen" <hotmail@hotmail.com> writes:

> > print ini_get("session.auto_start");
>
> Hmm.. Den skriver godt nok her at den skulle være 0.. Men den printer 1..

Det er formentlig problemet.

> Hvor skulle php.ini filen ligge..

Det kan phpinfo() fortælle dig.

--
Med venlig hilsen
- Jacob Atzen

Per Thomsen (29-07-2004)
Kommentar
Fra : Per Thomsen


Dato : 29-07-04 21:28

Kasper Birk Rasmussen wrote:
>>Du kører vel ikke med session.auto_start?
>>
>>print ini_get("session.auto_start");
>
>
> Hmm.. Den skriver godt nok her at den skulle være 0.. Men den printer 1..
> Hvor skulle php.ini filen ligge.. Jeg har ændret i en der ligger i
> windows/php.ini

Hmm... måske er jeg "way off", men prøv lige at genstarte din webserver.

MVH Per Thomsen,
http://www.pert.dk/

Kasper Birk Rasmusse~ (29-07-2004)
Kommentar
Fra : Kasper Birk Rasmusse~


Dato : 29-07-04 21:41

> > Hmm.. Den skriver godt nok her at den skulle være 0.. Men den printer
1..
> > Hvor skulle php.ini filen ligge.. Jeg har ændret i en der ligger i
> > windows/php.ini
>
> Hmm... måske er jeg "way off", men prøv lige at genstarte din webserver.
Wow.. Der skete nogle ting.. Ser lige hva det har betydet..
Man skal åbenbart genstarte efter man har lave ændringer i ini filen.. :D



Kasper Birk Rasmusse~ (29-07-2004)
Kommentar
Fra : Kasper Birk Rasmusse~


Dato : 29-07-04 21:44


"Per Thomsen" <pert@pert.dk> wrote in message
news:41095dbd$0$35871$14726298@news.sunsite.dk...
> Kasper Birk Rasmussen wrote:
> >>Du kører vel ikke med session.auto_start?
> >>
> >>print ini_get("session.auto_start");
> >
> >
> > Hmm.. Den skriver godt nok her at den skulle være 0.. Men den printer
1..
> > Hvor skulle php.ini filen ligge.. Jeg har ændret i en der ligger i
> > windows/php.ini
>
> Hmm... måske er jeg "way off", men prøv lige at genstarte din webserver.

Jo nu tror jeg sku den er der.. Tusind tak..




Kasper Birk Rasmusse~ (29-07-2004)
Kommentar
Fra : Kasper Birk Rasmusse~


Dato : 29-07-04 21:49

Lige en sidste ting..

Nu ser min kode således ud:

<?// * * * * Include Classes * * * *
include "php/classes.php";
session_start();

// * * * * Include Functions * * * *
include "php/functions.php";

// * * * * Hvis ikke $pageID findes i urlen, skal $pageID sættes til 1 * *
* *
if($_GET["pageID"]){
$pageID = $_GET["pageID"];
}else{
$pageID = 1;
}

// * * * * Create TConfig Class * * * *
if(! $_SESSION['AConfig']){
$_SESSION['AConfig'] = new TConfig("config.ini");
echo "Objekt oprettes.. <br>";
}

// * * * * unserialize Object * * * *
$AConfig = $_SESSION['AConfig'];
echo "--> ".$AConfig -> DB_adr;
?>

Og den laver ikke fejl mere.. Men nå jeg tester på om objektet er oprettet
if(! $_SESSION['AConfig']){ så kommer den ind i løkken vergang jeg
reloader.. Har også prøvet med isset()..



Jacob Atzen (30-07-2004)
Kommentar
Fra : Jacob Atzen


Dato : 30-07-04 07:21

"Kasper Birk Rasmussen" <hotmail@hotmail.com> writes:

> Lige en sidste ting..
>
> Nu ser min kode således ud:
[snip]

> Og den laver ikke fejl mere.. Men nå jeg tester på om objektet er
> oprettet if(! $_SESSION['AConfig']){ så kommer den ind i løkken
> vergang jeg reloader.. Har også prøvet med isset()..

Det er en uskik ikke at bruge isset() til at checke om en variabel er
sat. For det første formidler du klarer din intention til læseren af
koden med isset(), for det andet giver PHP en notice når man prøver at
teste om en variabel eksisterer med !$var, hvis variablen ikke
eksisterer.

Så nu er dit problem altså, at sessionen ikke gemmes på tværs af
sidebesøg. Prøv at lave et simpelt kodeeksempel, der viser dette:

<?php

session_start();
if(!isset($_SESSION['foo'])) {
$_SESSION['foo'] = 0;
}
print $_SESSION['foo']++;

?>

Lige et par yderligere kommentarer:

- Dine kommentarer er overflødige.
- Brug <?php istedet for <?.
- Husk at i PHP4 giver $foo = $_SESSION['foo'] en kopi af objektet i
sessionsvariablen. Det betyder, at hvis du ændrer i $foo skal du
huske at gemme den ændrede $foo i sessionen igen. Dette er heldigvis
ændret i PHP5.

--
Med venlig hilsen
- Jacob Atzen

Peter Brodersen (31-07-2004)
Kommentar
Fra : Peter Brodersen


Dato : 31-07-04 02:37

On 30 Jul 2004 08:21:15 +0200, Jacob Atzen <jacob@aub.dk> wrote:

>- Husk at i PHP4 giver $foo = $_SESSION['foo'] en kopi af objektet i
> sessionsvariablen. Det betyder, at hvis du ændrer i $foo skal du
> huske at gemme den ændrede $foo i sessionen igen. Dette er heldigvis
> ændret i PHP5.

Eh, jeg oplever ikke den ændring i PHP5 - og den ændring ville da også
være ret tåbelig, hvis det forhold sig sådan?

Ved $foo = $_SESSION['foo'] bliver $foo tildelt en værdi, uafhængigt
af højresiden. Derfor bør og må det heller ikke have nogen
konsekvenser for $_SESSION['foo'] at ændre $foo efterfølgende.

Derimod, hvis man i stedet laver en reference - fx:
$foo = &$_SESSION['foo'];
... så er det rigtigt, at vi kan rette i $foo "direkte".

Så jeg er ikke med på, hvad du tænker på - eller hvordan det skulle
være en heldig ændring :)

--
- Peter Brodersen

Ugens sprogtip: te (og ikke the)

Jacob Atzen (31-07-2004)
Kommentar
Fra : Jacob Atzen


Dato : 31-07-04 19:37

Peter Brodersen <usenet@ter.dk> writes:

> Eh, jeg oplever ikke den ændring i PHP5 - og den ændring ville da også
> være ret tåbelig, hvis det forhold sig sådan?
>
> Ved $foo = $_SESSION['foo'] bliver $foo tildelt en værdi, uafhængigt
> af højresiden. Derfor bør og må det heller ikke have nogen
> konsekvenser for $_SESSION['foo'] at ændre $foo efterfølgende.
>
> Derimod, hvis man i stedet laver en reference - fx:
> $foo = &$_SESSION['foo'];
> .. så er det rigtigt, at vi kan rette i $foo "direkte".
>
> Så jeg er ikke med på, hvad du tænker på - eller hvordan det skulle
> være en heldig ændring :)

Det jeg havde i tankerne var objekter. I PHP5 gør $object1 =
$object2 at $object1 bliver en reference til det samme objekt som
$objekc2. Og det er faktisk en rar ting IMHO.

--
Med venlig hilsen
- Jacob Atzen

Peter Brodersen (01-08-2004)
Kommentar
Fra : Peter Brodersen


Dato : 01-08-04 01:22

On 31 Jul 2004 20:37:17 +0200, Jacob Atzen <jacob@aub.dk> wrote:

>Det jeg havde i tankerne var objekter. I PHP5 gør $object1 =
>$object2 at $object1 bliver en reference til det samme objekt som
>$objekc2.

Ah, det har du rigtigt nok helt ret i - og ja, der er clone
selvfølgelig bare løsningen, hvis man ønsker den gammeldags opførsel.

--
- Peter Brodersen

Ugens sprogtip: te (og ikke the)

Per Thomsen (30-07-2004)
Kommentar
Fra : Per Thomsen


Dato : 30-07-04 08:08

Kasper Birk Rasmussen wrote:
> Lige en sidste ting..
[klip - kode, som ser fin ud, og virker hos mig :) ]
> Og den laver ikke fejl mere.. Men nå jeg tester på om objektet er oprettet
> if(! $_SESSION['AConfig']){ så kommer den ind i løkken vergang jeg
> reloader.. Har også prøvet med isset()..


I en tidligere besked fremgik det at du har sat din session.save_path til:
   session.save_path = "N;/session"

Her skal du vist ændre N til et et heltal, f.eks. 2.

Når du ikke har sat N til et heltal, anvendes den (N) tilsyneladende
ikke, så ligger din session-fil, nok bare i /session.

Hvis jeg på min WinXP ændrer session.save_path til "2;C:/WINDOWS/Temp",
så får jeg en masse warnings om at filen/mappen ikke findes.

Jeg har i min egen php.ini blot sat et semikolon, før denne linje (dvs.
udkommenteret linjen), det får PHP til at bruge C:\WINDOWS\Temp, sikkert
fordi jeg har miljøvariablen TMP sat til "C:\WINDOWS\Temp".

Prøv efter at have kørt din side, og se om der ligger en fil i /session,
der hedder noget med "sess_", og åben denne fil i en tekst-editor, den
skulle meget gerne indeholde noget der ligner:

AConfig|O:7:"tconfig":2:{s:4:"file";s:10:"config.ini";s:6:"DB_adr";s:5:"dbadr";}

Hvis mappen /session ikke findes, skal du lave den (det kan php ikke
selv gøre)

Hvis mappen findes, men filen ikke gør, så prøv at ændre din
session.save_path til f.eks. C:/WINDOWS/Temp
og kontroller om filen, så kommer i denne mappe.
I så tilfælde er det nok noget med skriverettigheder, det har jeg også
en ide til, hvad man kan gøre ved, men det tager vi først hvis det viser
sig at være problemet ;).

Hvis det stadig ikke virker, så prøv at udkommentere linjen, med
session.save_path og kontroller, hvad din miljøvariabel TMP står til.
(Højreklik "My Computer" -> Fanebladet "Advanced" -> Knappen
"Environment variables" -> Boksen "System variables")
Kontroller om sess_* filen, så kommer her.


Nu var det kun session delen af din php.ini, der var vist, men hvis den
ikke allerede står til det, så prøv at sætte
error_reporting = E_ALL

Så får du forhåbentlig vist, en masse mere om hvad der er galt.

Så summa-summarum, prøv at lege lidt med din session.save_path
indstilling, og set hvad du får ud af det :)

MVH Per Thomsen,
http://www.pert.dk
PS! Og husk: webserveren skal genstartes, hver gang du ændrer i php.ini

Kim Schulz (30-07-2004)
Kommentar
Fra : Kim Schulz


Dato : 30-07-04 06:29

On Thu, 29 Jul 2004 21:30:38 +0200
"Kasper Birk Rasmussen" <hotmail@hotmail.com> wrote:

> > Din kode virker fint hos mig i alt fald. Kan ikke rigtig gennemskue,
> > hvad der kan være galt hos dig. Kan du lave en
> > var_dump($_SESSION['foo'])?
>
> Ja.. Den giver:
> object(__PHP_Incomplete_Class)(2) { ["__PHP_Incomplete_Class_Name"]=>
> string(3) "foo" ["bar"]=> int(120) }
>
> Kan ses på http://www.webconstructor.dk/otest/
>


kendt problem der ofte opstår fordi der i php.ini er en instilling der er "forkert". Man kan et sted sætte om den skal registrere sessions automatisk (kan ikke huske hvad den setting lige hedder) så man ikke behøver at bruge session_start/register på samme måde.
Desværre betyder det også at den ikke kender klassens erklæring ved session registrering, så derfor sætter den den til __PHP_Incomplete_Class.
der står mere om problemet her:
http://www.php.net/manual/en/function.unserialize.php

Jeg ved også problemet er beskrevet tidligere her i gruppen (har selv spurgt om det engang).


MVH
Kim Schulz

Kasper Birk Rasmusse~ (30-07-2004)
Kommentar
Fra : Kasper Birk Rasmusse~


Dato : 30-07-04 18:54

Jeg takker for hjælpen til jer der har hjulpet mig.. Det hele kører fint nu,
og jeg har løst det med session mappen.. Har bare skrevet den absolutte sti,
til c:\php\session, og det virker..

Hilsen Kasper Birk



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

Månedens bedste
Årets bedste
Sidste års bedste