Empfehlungen: Erweiterte Suche

auth ->headers already sent

Klassen zur Datenverarbeitung in den Controllern (DRY)

auth ->headers already sent

Beitragvon visiongraphix » Fr 22. Aug 2008, 08:44

ich habe streng nach kochbuch alle zutaten in meinen users controller geschrieben. so. sobald ich aber nun in einem anderen controller, welchen ich sperren möchte
Code: Alles auswählen
var $components = array('Auth');
einfüge kommt nur noch:

Code: Alles auswählen
Cannot modify header information - headers already sent by (output started at C:\Users\falk\Desktop\cakePHP\htdocs\xampp\rezeptdatenbank\app\controllers\meals_controller.php:1) [CORE\cake\libs\controller\controller.php, line 577]


und

Code: Alles auswählen
$status =   "Location: http://localhost/xampp/meineAnwendung/users/login"

header - [internal], line ??
Controller::header() - CORE\cake\libs\controller\controller.php, line 577
Controller::redirect() - CORE\cake\libs\controller\controller.php, line 558
AuthComponent::startup() - CORE\cake\libs\controller\components\auth.php, line 322
Component::startup() - CORE\cake\libs\controller\component.php, line 100
Dispatcher::dispatch() - CORE\cake\dispatcher.php, line 229
[main] - APP\webroot\index.php, line 90
visiongraphix
 
Beiträge: 15
Registriert: Fr 18. Jul 2008, 20:06

Re: auth ->headers already sent

Beitragvon Mathias » Fr 22. Aug 2008, 15:12

Ich habe, auch wenn es nicht erlaubt ist, die Auth-Komponente direkt im app_controller initialisiert.
Somit ist die Komponente bei jedem anderen Controller automatisch integriert.
Damit sind aber auch alle Funktionen in jedem Controller vor dem öffentlichen Zugriff gesperrt.

Was ich nun mache, ist in jedem Controller definieren, welche Funktionen freigegeben sind.
Code: Alles auswählen
    function beforeFilter() {
        $this->Auth->allow('index','view');
    }

Rufe ich ein andere Funktion, wie zum Beispiel die admin_view auf, werd ich automatisch auf die Login-Seite geschickt, mit der Nachricht, dass ich nicht eingeloggt bin.
Ich weiß leider nicht, wie deine weitere Konfiguration aussieht, aber bei mir funktioniert das soweit tadellos.

Zu deinem Problem: Irgendwo musst du, bevor alles verarbeitet wurde, eine Ausgabe haben. Steht irgendwo ein echo oder ein debug oder ähnliches?
Steht dein var $components = array('Auth'); noch vor class MealsController extends AppController { ?
cheers
Benutzeravatar
Mathias
 
Beiträge: 225
Registriert: Mi 4. Jun 2008, 22:30
Wohnort: Berlin
CakePHP-Version: 1.3.x
OS: OS X 10.6.x

Re: auth ->headers already sent

Beitragvon euromark » Fr 22. Aug 2008, 18:08

@matthias

was heißt "nich erlaubt"?
ich meine: doch, sicher - sobald es eben nich nur 1-2 controller sind, sondern fast alle, empfiehlt es sich ja
die authentifizierung zentral in der app_controller.php zu machen
euromark
 
Beiträge: 617
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.1
OS: Windows

Re: auth ->headers already sent

Beitragvon Mathias » Sa 23. Aug 2008, 01:45

Naja, da sich der app_controller nicht im app-Ordner befindet, ist es irgendwie nicht ratsam, da was zu ändern.

note: Für eventuellen Nonsens bitte Entschuldigung. Bin betrunken ;)
cheers
Benutzeravatar
Mathias
 
Beiträge: 225
Registriert: Mi 4. Jun 2008, 22:30
Wohnort: Berlin
CakePHP-Version: 1.3.x
OS: OS X 10.6.x

Re: auth ->headers already sent

Beitragvon euromark » Sa 23. Aug 2008, 17:44

du musst definitiv 2 promille haben *g*

der app_controller (du hättest dir natürlich ne kopie aus dem cake ordner machen sollen!!!)
ist und gehört in den app ordner
und demzufolge ist die methode da völlig richtig :)
euromark
 
Beiträge: 617
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.1
OS: Windows

Re: auth ->headers already sent

Beitragvon Mathias » Mo 25. Aug 2008, 01:19

Ok, ich hatte schon einmal sowas gesehen, dass jemand den app_controller in das app-Verzeichnis kopiert hatte.
Dann mach ich das eben auch so ;)
cheers
Benutzeravatar
Mathias
 
Beiträge: 225
Registriert: Mi 4. Jun 2008, 22:30
Wohnort: Berlin
CakePHP-Version: 1.3.x
OS: OS X 10.6.x

Re: auth ->headers already sent

Beitragvon euromark » Di 26. Aug 2008, 15:49

genau

bei mir gibt es da zusätzlich noch

app_model.php
und
app_helper.php
euromark
 
Beiträge: 617
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.1
OS: Windows

Re: auth ->headers already sent

Beitragvon pocketcrocodile » Mi 2. Dez 2009, 13:05

visiongraphix hat geschrieben:ich habe streng nach kochbuch alle zutaten in meinen users controller geschrieben. so. sobald ich aber nun in einem anderen controller, welchen ich sperren möchte
Code: Alles auswählen
var $components = array('Auth');
einfüge kommt nur noch:

Code: Alles auswählen
Cannot modify header information - headers already sent by (output started at C:\Users\falk\Desktop\cakePHP\htdocs\xampp\rezeptdatenbank\app\controllers\meals_controller.php:1) [CORE\cake\libs\controller\controller.php, line 577]


und

Code: Alles auswählen
$status =   "Location: http://localhost/xampp/meineAnwendung/users/login"

header - [internal], line ??
Controller::header() - CORE\cake\libs\controller\controller.php, line 577
Controller::redirect() - CORE\cake\libs\controller\controller.php, line 558
AuthComponent::startup() - CORE\cake\libs\controller\components\auth.php, line 322
Component::startup() - CORE\cake\libs\controller\component.php, line 100
Dispatcher::dispatch() - CORE\cake\dispatcher.php, line 229
[main] - APP\webroot\index.php, line 90
Für mich liest es sich so, als hättest Du utf8 mit BOM (Byte-OrderMark) gespeichert. Vor dem eigentlichen Code steht das ByteOrderMark und das wird weil nicht zwischen <?php ?> fast direkt ausgegeben. Sehr ärgerlich.
pocketcrocodile
 
Beiträge: 3
Registriert: Mi 2. Dez 2009, 12:49


Zurück zu Components

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron