• Willkommen im Zend Framework Forum

    ZF1 Zend Framework 1 + ZF2 Zend Framework 2

    Das Zend Framework Forum ist seit 2006 die erste Anlaufstelle für Zend Framework Entwickler in Deutschland. Mit über 70.000 Beiträgen und einer steigenden Nutzerzahl bietet das Forum hilfreiche Themen und ZF-Tutorials für professionelle Entwickler, fortgeschrittene Programmierer sowie Zend Framework Einsteiger.
    Wenn dies Dein erster Besuch in der Zend Framework Community ist, lies bitte zuerst die Hilfe - FAQ durch. Du musst Dich registrieren, bevor Du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um die Registrierung zu starten. Du kannst auch jetzt schon Beiträge lesen. Hier im Forum findest Du die Zend Framework Hilfe, die Du suchst!

    Grüße an alle Zend Framework Entwickler. Das Team vom Zend Framework Forum!

    Drupal Agentur

konfiguration für lighttpd

gingin

New member
Moin.

Auf dem Smartphone (Android) habe ich ksweb installiert (mit lighttpd).
Die Seiten laufen dort lokal.

Die Links konnte ich durch Konfiguration über environment bis jetzt irgendwie hinbekommen, dass alles läuft.

Das Problem: ich möchte mich über login authentifizieren (mit db). Formular hat method post.

PHP:
...
        if ($this->getRequest()->isPost()) {
            if ($this->_signinForm->isValid($this->_request->getPost())) { // *(1)
aber ich bekomme die Meldung, dass *(1) kein true zurückgibt. Daten in der DB sind da.
getestet: wenn ich die Variablen username und password direkt initialisiere, klapt alles und ich bin im Admin Bereich.

Also über das Login-Formular kann ich die Daten nicht senden. (Irgendwie muss das mit dem Pfad zu tun haben?!?)
Wie kann ich denn lighttpd so konfigurieren dass es dem .htaccess entspricht?

Über googeln bin ich nicht weiter gekommen. Komm da leider auf keinen grünen Zweig.
Auf apache läuft alles lokal und remote ohne Probleme - auch login. (.htaccess)

Ich weiss auch nicht wie bzw. wo ich mod_rewirte aktiviere in dem lighttpd. Hat das einer von Euch laufen? lighttpd / ksweb

Danke Gina
 

gingin

New member
Inzwischen klappt die Konfiguration für lighttpd nach rooten des tabs, und die Seite wird nun auch unter vhost angezeigt :)
Aber es ist nicht die Lösung für mein ursprüngliches Problem. Über eine Login Form konnte man sich nicht einloggen, wenn die Sache local auf android läuft.

Das ist irgendwie inakzeptabel und lässt mir keine Ruhe. Die Form wäre nicht valid .... :confused:

Alles klappt aber bestens wenn auf apache und windows local und published online.

Das ist was bei var_dump(s) zurückkommt:

Code:
array(3) { ["username"]=> string(13) "demonstration" ["password"]=> string(6) "tester" ["submit"]=> string(5) "login" } object(Zend_Controller_Request_Http)#146 (15) { ["_paramSources":protected]=> array(2) { [0]=> string(4) "_GET" [1]=> string(5) "_POST" } ["_requestUri":protected]=> string(21) "/authentication/login" ["_baseUrl":protected]=> string(0) "" ["_basePath":protected]=> NULL ["_pathInfo":protected]=> string(21) "/authentication/login" ["_params":protected]=> array(3) { ["controller"]=> string(14) "authentication" ["action"]=> string(5) "login" ["module"]=> string(7) "default" } ["_rawBody":protected]=> NULL ["_aliases":protected]=> array(0) { } ["_dispatched":protected]=> bool(true) ["_module":protected]=> string(7) "default" ["_moduleKey":protected]=> string(6) "module" ["_controller":protected]=> string(14) "authentication" ["_controllerKey":protected]=> string(10) "controller" ["_action":protected]=> string(5) "login" ["_actionKey":protected]=> string(6) "action" }
PHP:
class AuthenticationController extends Myapp_Controller_MyController {

    private $zend_auth_session_namespace = null;

    public function init() {
        parent::init();
    }


    public function loginAction() {

        if (Zend_Auth::getInstance()->hasIdentity()) {
            $this->_redirect('admin/index/index');
        }


        $this->_signinForm = new Myapp_Form_LoginForm();
        $request = $this->getRequest();
        var_dump($request->getPost());

        if ($this->getRequest()->isPost()) {

            var_dump($this->getRequest());

            if ($this->_signinForm->isValid($request->getPost())) { /***** bei auskommentiertem statement klappts mit username und password direkt initialisiert (1) */


                $authAdapter = $this->getAuthAdapter();

//        $username = $this->_signinForm->getValue('username');
//        $password = $this->_signinForm->getValue('password');

                /* so ist das ja eine Katastrophe (1) */
                $username = 'demonstration';
                $password = 'tester';

//                $authAdapter->setIdentity($username)
//                        ->setCredential(hash('SHA256', $password));


                $authAdapter->setIdentity($username)
                        ->setCredential($password);
                $auth = Zend_Auth::getInstance();
                $result = $auth->authenticate($authAdapter);

                var_dump($result);

                if ($result->isValid()) {
                    $identity = $authAdapter->getResultRowObject();

                    switch ($identity->role) {
                        case 'guests':
                            Zend_Auth::getInstance()->clearIdentity();
                            $this->view->errorMessage = 'adminNO';
                            break;
                        case 'users':
                            $authStorage = $auth->getStorage();
                            $authStorage->write($identity);
                            $this->_redirect('library/index/index');
                            break;
                        case 'admins':
                            $authStorage = $auth->getStorage();
                            $authStorage->write($identity);
                            $this->zend_auth_session_namespace = new Zend_Session_Namespace('Zend_Auth');
                            $this->zend_auth_session_namespace->setExpirationSeconds(3600);
                            $this->_redirect('admin/index/index');
                            break;
                        default:
                            Zend_Auth::getInstance()->clearIdentity();
                            $this->view->errorMessage = 'adminNO';
                            break;
                    }
                } else {

                    switch ($result->getCode()) {

                        case Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND:
                            $this->view->errorMessage = 'Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND';
                            break;

                        case Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID:
                            $this->view->errorMessage = 'Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID';
                            break;

                        case Zend_Auth_Result::SUCCESS:
                            $this->view->errorMessage = 'Zend_Auth_Result::SUCCESS';
                            break;

                        default:
                            $this->view->errorMessage = 'other';
                            break;
                    }
                }
            } else {
                //$this->_redirect('page/home');
                $this->view->errorMessage = 'Form is not valid';
            }
        }else{
            $this->view->errorMessage = 'Request is not post';
        }
        $this->view->signinForm = $this->_signinForm;
    }

    private function getAuthAdapter() {

        $config = Zend_Registry::get('config');

        $dbAdapter = new Zend_Db_Adapter_Mysqli(array(  'dbname' =>  $config->resources->db->params->dbname,
                                                        'username' => $config->resources->db->params->username,
                                                        'host' =>     $config->resources->db->params->host,
                                                        'password' => $config->resources->db->params->password,
                                                        'isDefaultTableAdapter' => $config->resources->db->params->isDefaultTableAdapter));



        $dbDefaultAdapter = Zend_Db_Table::setDefaultAdapter($dbAdapter);

        $authAdapter = new Zend_Auth_Adapter_DbTable($dbDefaultAdapter  );

        $authAdapter->setTableName('users')
                ->setIdentityColumn('username')
                ->setCredentialColumn('password');
        //->setCredentialTreatment('SHA256');

        return $authAdapter;
    }
Bin etwas am Ende mit meinem kleinen Latein ...
Hat jemand eine Idee woran es liegen könnte ?

Danke Gina
 
Oben