login  Naam:   Wachtwoord: 
Registreer je!
 Forum

sessie gebruiken in andere Controller (Opgelost)

Offline marten - 23/05/2007 15:24
Avatar van martenBeheerder Beste Sitemasters,

ik ben op het moment bezig een site te maken via het MVC Pattern. Ik heb hierin een aantal controllers.

In mijn index (hier komen alle requests binnen) begin ik de sessie dmv session_start();

Vervolgens stuur ik de gebruiker naar een inlogformulier op de volgende link:

?route=login

In deze controller worden vervolgens de volgende dingen gedaan:
* check of form submitted is
* Check of username en password bestaan in db
* Wanneer bovenstaande klopt: cookies setten
* Na cookies zetten we $_SESSION['ingelogd'] = 1
* Daarna zetten we $_SESSION['beheerder_id'] met het id uit de db.
* header location naar index. (?route=index)

Vervolgens check ik op de ?route=index of de sessie geset is en of de waarde bestaat. Deze levert altijd een false op.

Wanneer ik de variabele $_SESSION vervolgens dump krijg ik alleen de sessie van mijn db terug (word geset in de config).

De volgende waardes hebben de session instellingen op de server:



Citaat:
session
Session Support enabled
Registered save handlers files user
Registered serializer handlers php php_binary wddx

Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /tmp /tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0


Wie kan me op gang helpen met dit probleem?

Met vriendelijke groet,
Marten van Urk

6 antwoorden

Gesponsorde links
Offline Stijn - 23/05/2007 15:52
Avatar van Stijn PHP expert Als hij je database config kan opslaan in de sessie, moet hij dat ook doen met die login.

Doe je misschien $_SESSION['db']['host'] = 'localhost'; om je config op te slaan?
Offline marten - 23/05/2007 15:54
Avatar van marten Beheerder Nope

gewoon

$_SESSION['db'] = new PDO(); enz enz enz
Offline Stijn - 23/05/2007 16:01
Avatar van Stijn PHP expert En geeft ie het correct weer als je var_dump( $_SESSION ) zet net voor je header(); ?
Offline marten - 23/05/2007 19:45 (laatste wijziging 24/05/2007 09:04)
Avatar van marten Beheerder Heb het even getest en hij geeft het correct weer voor die header() ja.

Heeft iemand een idee? Is het misschien iets met mijn php settings? Misschien kan Extor hier naar kijken?
Offline Stijn - 24/05/2007 12:15
Avatar van Stijn PHP expert Misschien iets met session_timeout maar dan zou die config weg moeten zijn...
Offline marten - 05/12/2007 09:02
Avatar van marten Beheerder Eindelijk na een half jaar zoeken proberen debuggen en de nodige irritaties is het probleem opgelost.

De symptonen:
Alleen de database sessie die in de config file gezet wordt werkt en er komt een fatal error te staan die (volgens vele topics) niks ermee te maken heeft.

De oplossing:
Het object van de PDO class zette ik direct in de sessie. Dit gaat dus niet goed. De oplossing is het object te serializen en dan in de sessie te zetten. Zou je zeggen.... Het object van een aantal classes kan je niet serializen. Waaronder dus het PDO object. Ik gebruik nu de registry functionaliteit om het object aan de verschillende controllers door te geven.

Het heeft me een flinke tijd gekost om het op te lossen en wil graag de mensen bedanken die ook flink geholpen hebben (Stijn en Appeltje (K) )
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.17s