Avatar billede riversen Nybegynder
28. juli 2003 - 00:28 Der er 19 kommentarer og
1 løsning

gemme objekt i session

Er det muligt? Hvordan?
Avatar billede repsac Nybegynder
28. juli 2003 - 00:29 #1
Avatar billede riversen Nybegynder
28. juli 2003 - 00:32 #2
er det så meningen man skal sige

$_SESSION["blabla"] = serialize( new foo() );

og så

$foo = unserialize( $_SESSION["blabla"] ); ?
Avatar billede riversen Nybegynder
28. juli 2003 - 00:32 #3
og $foo er så objekt hvor man kan kalde de forskellige funktioner
Avatar billede razor Nybegynder
28. juli 2003 - 00:32 #4
$_SESSION['user'] = new User;
Avatar billede razor Nybegynder
28. juli 2003 - 00:33 #5
Du behøver ikke serielisere.
Avatar billede repsac Nybegynder
28. juli 2003 - 00:37 #6
razor: hm, ok... det trode jeg egentlig man skulle.
Avatar billede razor Nybegynder
28. juli 2003 - 00:40 #7
Det virker ret lækkert faktisk :) Jeg brugte det engang til et shopping cart objekt :)
Avatar billede riversen Nybegynder
28. juli 2003 - 00:42 #8
mit objekt ser sådan ud:

<?php

class Bruger
{
    var $brugerNavn;
    var $brugerGruppe;
   
    function Bruger( $bn, $bg )
    {
        $this->brugerNavn = $bn;
        $this->brugerGruppe = $bg;
    }

    function getBrugerNavn()
    {
        return $this->brugerNavn;
    }

    function getBrugerGruppe()
    {
        return $this->brugerGruppe;
    }
}
?>

session laves sådan her:
session_register( "user" );
$_SESSION["user"] = new Bruger( $row["brugerNavn"], $row["brugergruppe"] );

siger så:
$bruger = $_SESSION["USER"];
og echo $bruger->getBrugerNavn();

men får fejlen:
Fatal error: Call to a member function on a non-object in D:\Hjemmesider\Riversen.dk\index.php on line 93
Avatar billede riversen Nybegynder
28. juli 2003 - 00:45 #9
det hjalp søreme at serialisere
Avatar billede riversen Nybegynder
28. juli 2003 - 00:46 #10
smider du et svar repsac
Avatar billede Slettet bruger
28. juli 2003 - 00:55 #11
Fjern session_register( "user" );

Og så skal det være $_SESSION["user"]; begge steder.

Og som razor skriver, skal du ikke bruge serialize.

Tilgengæld skal du bruge unserialize, når du vil gendanne objektet:

$bruger = unserialize($_SESSION["user"]);
Avatar billede riversen Nybegynder
28. juli 2003 - 00:59 #12
hvad mener du med $_SESSION["user"]; begge steder ?
Avatar billede riversen Nybegynder
28. juli 2003 - 01:00 #13
hvis ikke jeg serialiserer får jeg fejl
Avatar billede Slettet bruger
28. juli 2003 - 01:03 #14
Det ene sted skriver du USER det andet user.
Avatar billede Slettet bruger
28. juli 2003 - 01:04 #15
Husk at lukke din browser ned mellem hvert test forsøg :)
Avatar billede riversen Nybegynder
28. juli 2003 - 01:04 #16
er rettet
Avatar billede riversen Nybegynder
28. juli 2003 - 01:16 #17
repsac?
Avatar billede tipsen Nybegynder
28. juli 2003 - 01:55 #18
Hvis du skal gemme dit objekt i enten en db eller en fil har du brug for at serialize!
Avatar billede riversen Nybegynder
28. juli 2003 - 07:55 #19
det skal jeg ikke, den skal gemmes i en session og det virker ikke, hvis jeg ikke serialiserer
Avatar billede riversen Nybegynder
28. juli 2003 - 18:32 #20
repsac: jeg venter et par dage, så lukker jeg
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