login  Naam:   Wachtwoord: 
Registreer je!
 Nota's op tutorial:

Tutorials > PHP > Zend Auth (inloggen mbv Zend Framework)
Pagina:

Reacties op de tutorial Zend Auth (inloggen mbv Zend Framework)


Offline  Rik
Gepost op: 12 december 2007 - 18:03
Gouden medailleGouden medaille

Crew algemeen


Duidelijke tutorial waaruit je ook leert hoe je op mvc manier een eigen login systeem kan structureren!  

Één dingetje snap ik niet: als je gelijk naar /index/welcome gaat, dan kan je die pagina toch bekijken zonder dat je bent ingelogd? Of is dat ook de bedoeling? En hoe kan je dan in een andere controller eenvoudig controleren of de bezoeker is ingelogd?

Offline  Stijn
Gepost op: 12 december 2007 - 18:09
PHP expert

Zie procedure 1 van de indexAction(). Daarin wordt gecontroleerd of de gebruiker is ingelogd. Als je het niet snapt, zet volgende code bovenaan je action waarin je wilt controleren of de user bestaat.

  1. public function someAction()
  2. {
  3. $zend_login = new Zend_Session_Namespace('Zend_Login');
  4.  
  5. if( ! $zend_login->ingelogd ) { //dus ingelogd bestaat niet of is false
  6. $this->_redirect('./got/to/login'); //aanpassen hé
  7. }
  8.  
  9. ....

Offline  Rik
Gepost op: 12 december 2007 - 18:35
Gouden medailleGouden medaille

Crew algemeen


Ah, oké dat gaat op dezelfde manier gelijk via de sessie.

Ik was een beetje in de war omdat ik dacht dat die welcome pagina alleen voor ingelogde bezoekers was!  

Offline  DMM
Gepost op: 16 december 2007 - 20:50
PHP beginner

Alweer een mooie tutorial, bedankt daarvoor!

Edit:
Volgens mij staat er één klein foutje in: ik denk dat volgende regel nog in het script moet staan bij plaatscode:
Zend_Loader::loadClass('Zend_Session_Namespace');

Offline  Stijn
Gepost op: 24 december 2007 - 00:23
PHP expert

Je moet die loadClass in je bootstrap plaatsen .

Offline  DMM
Gepost op: 19 januari 2008 - 19:34
PHP beginner

Oké

Edit: Zou het kunnen deze regel bij hoofdstuk 5:
  1. $zend_auth = new Zend_Session_Namespace('Zend_Login');

vervangen moet worden door deze?
  1. $zend_login = new Zend_Session_Namespace('Zend_Login');

Offline  Diko
Gepost op: 15 februari 2008 - 12:49
PHP interesse

Wat ik mis is de scheiding tussen controller en model.

De database maak je nu aan in de controller.
Zou je volgens het MVC pattern niet een model hiervoor moeten gebruiken?

Ik ga hiermee in elk geval zelf nog even puzzelen.  

Offline  Stijn
Gepost op: 15 februari 2008 - 14:53
PHP expert

Zend_Auth is eigenlijk een module van het framework dat los van het MVC aspect staat. Dit is zo omdat je Zend_Auth in gewone php code ook kan gebruiken. Je zou eventueel een uitbreiding kunnen maken (Zend_Auth_Model ?) waaraan je je model kan geven. Er staat in de /Zend/Auth/Adapter's map een interface.php die je kan gebruiken hiervoor.

Offline  Modboy
Gepost op: 16 april 2008 - 10:58
Nieuw lid

DMM schreef:
Oké

Edit: Zou het kunnen deze regel bij hoofdstuk 5:

vervangen moet worden door deze?


Ik denk dat je juist bent, ik kreeg constant de fout: Undefined variable: zend_login en ik maar denken dat er iets fout was in mijn bootstrap

(quote werkt blijkbaar niet bij PHP code)
dus is juist: $zend_login = new Zend_Session_Namespace('Zend_Login');

Offline  Modboy
Gepost op: 16 april 2008 - 14:24
Nieuw lid

hoe uitloggen?
heb al geprobeerd een logoutAction te maken met Zend_Auth::getInstance()->clearIdentity(); maar dat lukt niet  .

Offline  Stijn
Gepost op: 16 april 2008 - 16:33
PHP expert

Als je clearIdentity(); wilt gebruiken moet je de Storage (puntje 6) gebruiken van Zend_Auth.

Offline  frozz
Gepost op: 12 november 2008 - 23:12
Nieuw lid


public function logoutAction()
{
$zend_login = new Zend_Session_Namespace('Zend_Login');
$zend_login->ingelogd = false;
$this->_redirect('./login');
}

 

Offline  Chilion
Gepost op: 09 juni 2011 - 13:55
MySQL interesse

Voor welke versie van het ZF is deze tut geschreven?

Pagina:

Enkel aanvullende informatie is welkom. Geen prijzende of afkeurende reacties.
 
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.086s