[php] Objects via sessions

Pagina: 1
Acties:

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 09-09 08:43
Ola,

Ik heb de volgende situatie..
Op mijn site (waar ik mee bezig ben) kun je inloggen en loopt de verbinding via een session. Heel mooi allemaal, werkt perfect. Nu worden er bij het inloggen wat gegevens van je gelezen uit de DB: naam, achternaam, email, can_post_news, can_upload, enz..
Nu is het de bedoeling dat deze gegevens in een object "user"worden gezet die dan vervolgens geregistreerd wordt bij de session. Het punt is nu alleen dat dat niet wil werken :( .
Als ik het object aanmaak en registreer wordt ik geeneens ingelogd :?, het lijkt dan net alsof mn query spontaan niet meer klopt. Echt vaag....

Dit stukje code checkt of je d'r in mag en leest wat gegevens van je:
PHP:
1
<?if($user &amp;&amp; $userpass){    $exec= mysql_query("SELECT naam,password, email, level FROM users WHERE naam='$user' AND password='$userpass'");    $rows= mysql_num_rows($exec);    if(mysql_num_rows($exec) != 0){        $verified= "ok";        $user= mysql_fetch_object($exec);        $userName= $user->naam;        $userEmail= $user->email;        $userLevel= $user->level;?>

het volgende stukje zou dan alles in een object moeten zetten...
PHP:
1
<?$user->verified= "ok";$user->userName= $userName;$user->userMail= $userMail;$user->userLevel= $userLevel;session_register("user");?>

Dit doet ie dus al niet goed..
Zo dacht ik dat je alles weer kon uitlezen, dit staat ineen andere file..
PHP:
1
<?$user= $HTTP_SESSION_VARS[user];$verified= $user[0];$userName= $user[1];$userEmail= $user[2];$userLevel= $user[3];?>

Wat doe ik nu fout?! Met de PHP manual kom ik d'r ook niet uit..iemand een hint, of wat ik fout doe..
In het object komen nog meer variabelen te staan, deze allemaal voor verschillende rechten. Met een leuk getalletje is dit niet op te lossen, omdat sommige rechten door elkaar heen lopen.


ps: in de search niks nuttigs te vinden dus vandaar...

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 22:39
Sessionvars worden pas geset op het moment dat je op een link klikt en naar de volgende pagina gaat.

Verder kun je beter $_SESSION['objectvar'] gebruiken ipv session_register, dit ivm de veiligheid in php.

Gebruik daarom php 4.1.2 :)

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 09-09 08:43
Op vrijdag 05 april 2002 11:26 schreef ddc het volgende:
Sessionvars worden pas geset op het moment dat je op een link klikt en naar de volgende pagina gaat.

Verder kun je beter $_SESSION['objectvar'] gebruiken ipv session_register, dit ivm de veiligheid in php.

Gebruik daarom php 4.1.2 :)
Met $_SESSION['user'] kan ik toch alleen uitlezen ipv registreren? Het gaat ook om dat object, het schijnt te kunnen (volgens Mattias Nilsson), om deze door een session heen te gebruiken.

Uiteraard kan het ook op andere manieren, gewoon alle variabelen registreren maar dat vond ik nu niet zo mooi. Lijkt mij beter om dan alles in een object te mikken (toch :?)

[edit]
draai PHP 4.0.6

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

serialize ()
unserialize ()

da's een stuk eenvoudiger :)
hth

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 22:39
Op vrijdag 05 april 2002 11:37 schreef TheRebell het volgende:
Met $_SESSION['user'] kan ik toch alleen uitlezen ipv registreren?
Helaas, u gaat niet door voor de koelkast :+

  • Grum
  • Registratie: Juni 2001
  • Niet online
Je haalt arrays en objects NOGAL door de war :)

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 09-09 08:43
Op vrijdag 05 april 2002 11:44 schreef Grum het volgende:
Je haalt arrays en objects NOGAL door de war :)
Geloof het ook jah :(

Maar ik kan dus ook gewoon een array aanmaken, hier alle data in opslaan en deze registeren.
Dan vraag ik het array op een andere pagina weer op, en lees de gewenste variabale uit.

..of haal ik nu weer alles door elkaar :?...

  • Grum
  • Registratie: Juni 2001
  • Niet online
waar maak je die array dan ? :+

Mental note: denk even na voor je je antwoord intikt en hier post ;)

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 09-09 08:43
Zal eens kijken of ik tijd genoeg had Grum

De array wordt dan aangemaakt op de pagina waar je inlogd. Je gegevens worden uit de DB gehaald, deze worden gelezen en in een array gezet. Het aantal variabelen blijft altijd gelijk, dat is iig zeker. Dit array zou dan geregistreerd moeten worden.
(volg je 'em nog..)
Hierna wordt je ge-redirect naar de main page. Deze leest dan de session var uit, een array dus. Dan worden alle velden gelezen die ik nodig heb. Zag wel dat je het array eerst moet resetten ivm de array pointer.

zoiets dacht ik..:P

  • Grum
  • Registratie: Juni 2001
  • Niet online
En nu het stukje code dat je array maakt .. of zou ie misschien geen [b]HINT[/b] [b]HINT[/b] array aanmaken maar een object ?

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 09-09 08:43
AAAHHHhhhh..... ja zou een object moeten zijn ja.
maar hoe maak je dan een opbect aan:? ik heb al vanalles gelezen maar alles over objects staat samen met classes, of moet ik dan een class maken waarin dan weer een object gemaakt wordt:?
Damn, ik kan redelijk php'en(net geen n00b meer) maar met classes en objects heb ik me nog nooit bezig gehouden...
PHP:
1
<?$user->naam= $naam;$user->achternaam= $achternaam;$user->email= $email;?>

dit gaat dus zeker niet, lijkt iig meer op een array maarja....

  • Grum
  • Registratie: Juni 2001
  • Niet online
een geinstantieerde class is een object

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 09-09 08:43
ik zou dus zoiets moeten hebben
PHP:
1
<?class user{    var $naam;    var $achternaam;    var $email;    var $level;    function user(){        //hier de query die de data uitleest        //fetch alle gegevens        $this->naam = $naam; //deze gegevens komen uit de DB        $this->achternaam = $achternaam;        $this->email = $email;        $this->level = $level;    }}?>

klopt dit zo een beetje?

  • Grum
  • Registratie: Juni 2001
  • Niet online
zoiets zou je kunnen gebruiken jah.

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 09-09 08:43
Op vrijdag 05 april 2002 12:38 schreef Grum het volgende:
zoiets zou je kunnen gebruiken jah.
Dus dit klopt zo, zoals ik het gedaan heb?
Pagina: 1