Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 22-09-2009 22:00:43

Nemesis007
Membre
Date d'inscription: 27-06-2009
Messages: 16

[Zend_Form][ZF1.9.2] Controleur LoginController introuvable

Bonjour  à tous,

j'ai un petit problème avec le formulaire de login. Mon index fonctionne très bien (index/index) par contre quand je veux accèder à mon formulaire de connexion, la page est introuvable (login/index).

Je ne pense que ça vienne du code vu que je n'arrive pas à l'atteindre mais d'ou cela pourrait-il venir ? Mes rewrites ont l'air d'être correctes vu je suis bien redirigé pour l'index.


Merci !

Hors ligne

 

#2 23-09-2009 07:52:00

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Zend_Form][ZF1.9.2] Controleur LoginController introuvable

vérrifie ton .htaccess et ce qui va avec (conf apache => mod_rewrite)

Dernière modification par nORKy (23-09-2009 07:52:16)


----
Gruiiik !

Hors ligne

 

#3 23-09-2009 10:14:10

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Zend_Form][ZF1.9.2] Controleur LoginController introuvable

Fais une recherche sur "404" (c'est ne No de l'erreur "page not found"), tu dois avoir pas mal de messages qui parlent de ça.

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#4 23-09-2009 19:37:57

Nemesis007
Membre
Date d'inscription: 27-06-2009
Messages: 16

Re: [Zend_Form][ZF1.9.2] Controleur LoginController introuvable

J'ai peu fouillé sur le forum et je n'ai pas trouvé mon bonheur même si il y a pas mal de sujets là dessus. Cependant, j'ai essayé de faire un lien vers ce controleur :

   

echo '<br /><a href="login/index">toto</a>';

j'ai toujours ma page 404 alors que le lien m'envoie bien sur http://localhost/projet/login/index. Voici ma configuration apache2 (linux) :

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/projet/public/
        SetEnv APPLICATION_ENV development

    #RewriteEngine On
    #RewriteCond %{REQUEST_FILENAME} -s [OR]
    #RewriteCond %{REQUEST_FILENAME} -l [OR]
    #RewriteCond %{REQUEST_FILENAME} -d
    #RewriteRule ^.*$ - [NC,L]
    #RewriteRule ^.*$ index.php [NC,L]

    <Directory /var/www/projet/public/>
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

</VirtualHost>

Est ce que vous voyez quelque chose de faux ?

Merci

Hors ligne

 

#5 23-09-2009 21:08:07

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Zend_Form][ZF1.9.2] Controleur LoginController introuvable

pourquoi il y a projet dans ton url alors que ton virtualhost point dans le dossier projet ?

A+JYT

Hors ligne

 

#6 23-09-2009 22:48:46

Nemesis007
Membre
Date d'inscription: 27-06-2009
Messages: 16

Re: [Zend_Form][ZF1.9.2] Controleur LoginController introuvable

sekaijin a écrit:

pourquoi il y a projet dans ton url alors que ton virtualhost point dans le dossier projet ?

A+JYT

Euh... désolé mais je n'ai pas tout compris, je ne suis qu'un débutant dans l'utilisation de Zend et des virtual hosts.

Hors ligne

 

#7 24-09-2009 10:54:54

Junk
Membre
Lieu: Paris
Date d'inscription: 18-09-2009
Messages: 27

Re: [Zend_Form][ZF1.9.2] Controleur LoginController introuvable

Bonjour,

Ce que sekaijin veut dire, c'est que tu utilises l'url suivante:  http://localhost/projet/login/index pour accéder à ta page, alors que tu devrais avoir http://localhost/login/index , puisque dans ta section virtualhost, tu précises que le serveur a pour document racine /var/www/projet/public/

Quand tu tapes http://localhost/index.php par exemple, ton serveur va chercher le fichier situé sous :

/var/www/projet/public/index.php

En espérant t'avoir aidé smile

Hors ligne

 

#8 24-09-2009 18:25:44

Nemesis007
Membre
Date d'inscription: 27-06-2009
Messages: 16

Re: [Zend_Form][ZF1.9.2] Controleur LoginController introuvable

Merci pour ces éclaircissements mais http://localhost/index.php me renvoit une erreur 404 tout comme http://localhost/projet/login

Quelqu'un aurait-il une piste ?

Info utile ou pas supplémentaire, dans LoginController, je suis obligé de mettre : "require_once 'Zend/Controller/Action.php';" sinon il me dit qu'il ne connait pas Zend_Controller_Action. J'ai cette erreur quand je vais sur l'url : http://localhost/projet/application/controllers/LoginController.php  vu que je n'y arrive pas autrement.

Dernière modification par Nemesis007 (24-09-2009 18:41:42)

Hors ligne

 

#9 24-09-2009 18:52:15

Junk
Membre
Lieu: Paris
Date d'inscription: 18-09-2009
Messages: 27

Re: [Zend_Form][ZF1.9.2] Controleur LoginController introuvable

Ta classe login doit ressembler à cela:

class LoginController extends Zend_Controller_Action
{
    public function indexAction()
    {
   
    }
}

et dans index.php quelque chose qui ressemble à ça:

//instance du controller
$frontController = Zend_Controller_Front::getInstance();
//repertoire ou sont les controllers de ton application
$frontController->setControllerDirectory('../application/controllers');
//activation ou non des exceptions
$frontController->throwExceptions(true);
//En avant...
$frontController->dispatch();

donc quand tu interroges http://localhost/login le frontcontroller cherche dans ../application/controllers un controller se nommant LoginController.php. l'action par défaut est index. Si tu ne fais rien de particulier dans la fonction indexAction(), la page index.phtml située sous application/views/scripts/login va s'afficher.

Voilà j'espère avoir été clair, mais il y a de bons tutos sur le sujet wink

Dernière modification par Junk (24-09-2009 18:53:23)

Hors ligne

 

#10 24-09-2009 18:57:41

Nemesis007
Membre
Date d'inscription: 27-06-2009
Messages: 16

Re: [Zend_Form][ZF1.9.2] Controleur LoginController introuvable

Junk a écrit:

et dans index.php quelque chose qui ressemble à ça:

//instance du controller
$frontController = Zend_Controller_Front::getInstance();
//repertoire ou sont les controllers de ton application
$frontController->setControllerDirectory('../application/controllers');
//activation ou non des exceptions
$frontController->throwExceptions(true);
//En avant...
$frontController->dispatch();

)

J'ai tout cela dans mon Boostrap.php dans le dossier application :

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    function _initFrontController()
    {
        $frontController = Zend_Controller_Front::getInstance();
        // APPLICATION_PATH = /var/www/projet/application
        $frontController->setControllerDirectory(APPLICATION_PATH .'/controllers');
        $frontController->setParam('env', APPLICATION_ENVIRONMENT);

        // action helpers
        Zend_Controller_Action_HelperBroker::addPath(APPLICATION_PATH .'/controllers/helpers');
       
        $frontController->throwExceptions(true);
    }

    public function run()
    {
        $frontController = Zend_Controller_Front::getInstance();
        $frontController->dispatch();
    }
}

Mon index.php dans public ressemble à cela :

define('BASE_PATH', realpath(dirname(__FILE__)));
define('APPLICATION_PATH', BASE_PATH . '/application');

set_include_path('.'
    . PATH_SEPARATOR . '/library'
    . PATH_SEPARATOR  .BASE_PATH . '/library'
    . PATH_SEPARATOR . get_include_path());
   
// APPLICATION_ENVIROMENT defines which config section is loaded
if(!defined('APPLICATION_ENVIRONMENT')) {
    define('APPLICATION_ENVIRONMENT', 'development');
}

require_once 'Zend/Application.php';

$application = new Zend_Application(APPLICATION_ENVIRONMENT,
    array(
        'bootstrap'=>array('path'=>APPLICATION_PATH.'/Bootstrap.php'),
        'autoloadernamespaces' => array('Zend', 'App')
    ));
$application->bootstrap();
$application->run();

Ai-je faux quelque part ?

Hors ligne

 

#11 24-09-2009 23:50:06

Nemesis007
Membre
Date d'inscription: 27-06-2009
Messages: 16

Re: [Zend_Form][ZF1.9.2] Controleur LoginController introuvable

Bon j'ai déjà trouvé un élément de réponse mais pas la solution complète. j'ai vu que j'avais un index.php dans mon dossier /projet au lieu dans public. Cela ne règle quand même pas le problème.

Quand je vois les logs apache, je remarque mon lien dans IndexController ( echo '<br /><a href="login/index">toto</a>'; )  pointe en fait sur /var/www/projet/public/login/index et du coup c'est normal qu'il ne le trouve pas. Pourquoi pointe-t-il sur public ? Que dois je mettre dans public pour qu'il me redirige vers mon LoginController ?

J'y suis presque !

Hors ligne

 

#12 25-09-2009 18:19:10

Nemesis007
Membre
Date d'inscription: 27-06-2009
Messages: 16

Re: [Zend_Form][ZF1.9.2] Controleur LoginController introuvable

Bon bon bon, je réitère mon appel à l'aide.

Mon vhost :

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/projet/public
        SetEnv APPLICATION_ENV development

    #RewriteEngine On
    #RewriteCond %{REQUEST_FILENAME} -s [OR]
    #RewriteCond %{REQUEST_FILENAME} -l [OR]
    #RewriteCond %{REQUEST_FILENAME} -d
    #RewriteRule ^.*$ - [NC,L]
    #RewriteRule ^.*$ index.php [NC,L]

    <Directory /var/www/projet/public>
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

</VirtualHost>

mon public/index.php :

<?php
/**
* My new Zend Framework Project
*
* @author 
* @version
*/

// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH',
              realpath(dirname(__FILE__) . '/../application'));
// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV',
              (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
                                          : 'production'));
/** Zend_Application */
require_once 'Zend/Application.php';
// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/config/application.ini'
);

$application->bootstrap();
$application->run();

mon application/Bootstrap.php

<?php
/**
* My new Zend Framework project
*
* @author 
* @version
*/

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
   
    protected function __initFrontController()
    {
        $frontController = Zend_Controller_Front::getInstance();
        $frontController->setControllerDirectory(APPLICATION_PATH .'/controllers');
        $frontController->setParam('env', APPLICATION_ENVIRONMENT);

        // action helpers
        Zend_Controller_Action_HelperBroker::addPath(APPLICATION_PATH .'/controllers/helpers');
       
        $frontController->throwExceptions(true);
    }

   protected function __initView()
   {
        // Initialize view
        $view = new Zend_View();
        $view->doctype('XHTML1_STRICT');
        $view->headTitle('My First Zend Framework Application');
        // Add it to the ViewRenderer
        $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
            'ViewRenderer'
        );
        $viewRenderer->setView($view);
        // Return it, so that it can be stored by the bootstrap
        return $view;
   }


    public function run()
    {
   
        $frontController = Zend_Controller_Front::getInstance();
        $frontController->dispatch();
    }
}

mon controllers/IndexController :

<?php

class IndexController extends Zend_Controller_Action
{

    public function indexAction()
    {
        // action body
    $this->view->testMessage = "Mon message de test";
    echo '<br /><a href="/login/index">toto</a>';

    }

}

Lien atteint quand je clique sur le lien ci-dessus : /var/www/projet/public/login...

Merci.

Hors ligne

 

#13 28-12-2009 15:47:38

ailerua
Nouveau membre
Date d'inscription: 28-12-2009
Messages: 1

Re: [Zend_Form][ZF1.9.2] Controleur LoginController introuvable

Bonjour,
J'ai exactement le même problème que Memesis007...et ça fait quelques jours que je galère avec le framework.
Quelqu'un aurait-il avancé et trouvé une solution à ce souci ?

Merci d'avance wink

Hors ligne

 

#14 28-12-2009 17:00:50

3uclide
Membre
Date d'inscription: 09-08-2008
Messages: 194

Re: [Zend_Form][ZF1.9.2] Controleur LoginController introuvable

faudrait pas dé-commenter ça?

Code:

    #RewriteEngine On
    #RewriteCond %{REQUEST_FILENAME} -s [OR]
    #RewriteCond %{REQUEST_FILENAME} -l [OR]
    #RewriteCond %{REQUEST_FILENAME} -d
    #RewriteRule ^.*$ - [NC,L]
    #RewriteRule ^.*$ index.php [NC,L]

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages