Loginsystem mit CakePHP
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anscheinend nutzen
array
auslese
code
controller
erzeugen
fehler
filter
header
komponente
korrekt danke
login
meldung
set
sperren
text
url
zeile
zugreifen
zugriff
-
Hallo,
ich ntuze seit kuirzem das Framework CakePHP.
Kennt sich jemand damit aus?
Ich versuche grad ein Loginsystem da zu realisieren und habe folgendes Tutorial gefunden:
http://www.endyourif.com/login-system-with-cakephp-in-under-10-minutes/#codesyntax_1
Allerdings kommt eine Fehlermeldung, wenn ich folgendes in die app_controller.php einfügen:
var $components = array('Auth'); function beforeFilter() { $this->Auth->userModel = 'User'; $this->Auth->fields = array('username' => 'email', 'password' => 'password'); $this->Auth->loginAction = array('admin' => false, 'controller' => 'users', 'action' => 'login'); $this->Auth->loginRedirect = array('controller' => 'users', 'action' => 'index'); }
Hab eben alles auskommentiert bis auf:
var $components = array('Auth');
und das scheint auch der Fehler zu sein.
Diese Zeile erzwingt iwie einen Header und dann kommt die Meldung, dass der Header bereits gesendet wurde.
Und dann versteh ich den Filter nicht:
function beforeFilter() { $this->Auth->allow('add'); parent::beforeFilter(); }
Den soll man anscheinend nutzen, ob Seiten für User zu sperren.
Allerdings kommt bei mir folgende Meldung:
Fatal error: Call to a member function allow() on a non-object in /var/www/httpdocs//app/controllers/users_controller.php on line 7
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Also prinzipiell finde ich in deinem Code keinen Fehler.
Steht die Zeile
var $components = array('Auth');
direkt unter "class AppController extends Controller {"?
Könntest du mal die komplette Fehlermeldung posten?
Fatal error: Call to a member function allow() on a non-object in /var/www/httpdocs//app/controllers/users_controller.php on line 7
Diese Meldung sagt lediglich aus, dass die Auth-Komponente nicht initialisiert wurde. Also wenn dein erstes Problem gelöst ist verschwindet diese Meldeung auch ;)
Den soll man anscheinend nutzen, ob Seiten für User zu sperren.
Stimmt nicht ganz, "allow()" wird benutz um (wie der Name schon sagt) den Zugriff zu erlauben. Die Auth-Komponente blockt von Haus aus den Zugriff auf alle Seiten.
Grüße
Stefan -
Hab s schon gelöst.
Das Problem war glaub ich, dass ich paar Leerzeilen beim Model hatte ^^
Kann mich nicht mehr richtig dran erinnern.
Hab jetzt noch eine Frage zu URL.
Ich hab das mit scaffolds und displayField nicht richtig verstanden.
Damit kann man "schöne URLs" machen.
Hab das derzeit so gelöst:
if(!empty($this->params['pass'])){ $id = $this->params['pass'][0]; $this->set('program', $this->Program->findByArticleId($id)); } else{ $this->set('program', $this->Program->findAllByCategory_id(1)); }
Wenn die Domain www.example.de/controller/action/id
aufgerufen wird, sollte man automatisch weitergeleitet werden auf
www.example.de/controller/action/id/text
Beispiel:
http://book.cakephp.org/view/425/redirect
Entfernt man das "redirect", dann wird man automatisch wieder dahin geleitet.
Ich hab das jetzt vorerst mit Meta-Redirect gelöst, was aber sehr unschön ist.
Kann man im Controller Sachen auslesen und dann ein redirect machen?
$this->set('program', $this->Program->findByArticleId($id));
Diese Zeile liefert mir ja den Text, aber ich weiß nicht, wie ich die Daten im Controller ntuze.
Lg -
Also wenn ich das richtig verstehe willst du auf den Rückgabewert von $this->Program->findByArticleId($id) zugreifen um eine redirect URL zu erzeugen?
Da kannst du ganz einfach direkt drauf zugreifen:
$article = $this->Program->findByArticleId($id); $this->redirect('/controller/action/' . $article);
Sorry falls ich dich falsch verstanden hab. -
Ne, ist korrekt danke :D
Als ich es letztens so ähnlich probierte gings nicht.
Jedenfalls ist $article in dem Fall ein Array (nur so zur Info).
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage