Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Salut ,
J'ai fait el module Zend Auth sous windows et ça fonctionne mais pas sous Ubuntu bien que j'ai fait des modification . Que dois je faire ?
Hors ligne
Bonjour, perso je m'appelle pas Akinator et je ne pense pas qu'il soit sur ce forum non plus donc sans donner plus de précision sur les erreurs rencontré, etc, personne ne pourra t'aider.
Bien qu'en général si une chose fonctionne sous u environnement Windows mais pas sur du Linux il s'agit en général d'un probleme de casse du texte.
Hors ligne
je parlais s'il y'a une configuration au niveau de Lampp spécialement pour Unix . L'avis d'un utilisateur de la même plateforme est très utile dans de telle situations .
Hors ligne
Le problème c'est quand j'utilise la Zend_Auth je ne reçois ni erreur ni affichage
Hors ligne
Pour l'erreur quand j'active firebug , je reçois l'erreur 500 du réseau .Or quand je fais /index/index ça fonctionne correctement
Hors ligne
c'est un pbp apache
ZF est déjà installé correctement sous XAMPP quelque soit la plateforme
de ce côté rien à faire
par contre je suppose que tu a défini un .htaccess
je ne sais pas si c'est la cas mais l'option permettant de prendre en compte les fichier .htaccess est souvent bloqué sur les serveur apache sous unix (question sécurité)
A+JYT
Hors ligne
sekaijin a écrit:
c'est un pbp apache
ZF est déjà installé correctement sous XAMPP quelque soit la plateforme
de ce côté rien à faire
par contre je suppose que tu a défini un .htaccess
je ne sais pas si c'est la cas mais l'option permettant de prendre en compte les fichier .htaccess est souvent bloqué sur les serveur apache sous unix (question sécurité)
A+JYT
J'ai pas modifié le .htaccess
Hors ligne
Ce que sekaijin disait, c'est de vérifier que le Alloverride de ton Vhost permettait l'utilisation du .htaccess (en général on le mets à All).
L'idée est de définir ton environnement en development pour avoir l'affichage des messages d'erreur.
Hors ligne
Théocrite a écrit:
Ce que sekaijin disait, c'est de vérifier que le Alloverride de ton Vhost permettait l'utilisation du .htaccess (en général on le mets à All).
L'idée est de définir ton environnement en development pour avoir l'affichage des messages d'erreur.
Peut tu me donner plus d'explication ?
Hors ligne
Normalement tu as du mettre en place un virtualhost pour ton projet. Dans ce Vhost, tu définis des directives, donc le AllOverride, qui permet d'utiliser le .htaccess dans le répertoire donné.
Zend_Tool te génère ce Vhost dans le dossier doc.
Ensuite, dans ton application.ini notamment, tu définis en général plusieurs environnements, et celui que tu veux utiliser est sélectionné par la directive APPLICATION_ENV (prod|development|...), dans ton htaccess ou ton Vhost. Personnellement je les mettais dans mon htaccess, mais je les définis maintenant dans le Vhost ce qui me permet d'avoir des environnements propres utilisant le même htaccess qui est géré par mon gestionnaire de sources.
Pour t'aider, tu peux me mettre ton Vhost et ton htaccess, ainsi que ton application.ini.
Hors ligne
Théocrite a écrit:
Normalement tu as du mettre en place un virtualhost pour ton projet. Dans ce Vhost, tu définis des directives, donc le AllOverride, qui permet d'utiliser le .htaccess dans le répertoire donné.
Zend_Tool te génère ce Vhost dans le dossier doc.
Ensuite, dans ton application.ini notamment, tu définis en général plusieurs environnements, et celui que tu veux utiliser est sélectionné par la directive APPLICATION_ENV (prod|development|...), dans ton htaccess ou ton Vhost. Personnellement je les mettais dans mon htaccess, mais je les définis maintenant dans le Vhost ce qui me permet d'avoir des environnements propres utilisant le même htaccess qui est géré par mon gestionnaire de sources.
Pour t'aider, tu peux me mettre ton Vhost et ton htaccess, ainsi que ton application.ini.
J'ai fait le VHOST mais j'ai pas touché ou htaccess . Donc, j'ajoute le @AllOverride dans la partie de vhost et ça pourra fonctionner .?
Hors ligne
Montre moi ton Vhost, ton htaccess et ton application.ini si tu veux que je puisses te répondre
Hors ligne
application.ini
--------------
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.db.adapter='PDO_MYSQL'
resources.db.params.username='root'
resources.db.params.password=''
resources.db.params.host='127.0.0.1'
resources.db.params.dbname='zend_test'
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
---------------------------------------------------------------------------
htacces
--------------------------------------------------------------------------
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
--------------------------------------------------------------------
vhost
-------------------------------------------------------------------
#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /www/docs/dummy-host.example.com
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin test
DocumentRoot /opt/lampp/htdocs/test
ServerName test
ErrorLog logs/dummy-host2.example.com-error_log
CustomLog logs/dummy-host2.example.com-access_log common
</VirtualHost>
Hors ligne
Ok alors il faut que tu configures mieux ton vhost :
<VirtualHost *:80> ServerName test ServerAdmin test DocumentRoot "/opt/lampp/htdocs/test" <Directory "/opt/lampp/htdocs/test"> AllowOverride All Allow from All </Directory> ErrorLog logs/dummy-host2.example.com-error_log CustomLog logs/dummy-host2.example.com-access_log common </VirtualHost>
Bon ça c'est si c'est ton 2eme Vhost le bon, mais le concept est là.
Sinon pour le .htaccess, tu peux ajouter dedans APPLICATION_ENV development, et là tu auras l'affichage des erreurs (cf application.ini section development). Tu peux ajouter cette ligne dans le Vhost si tu préfères pour les raisons que je citais dans mon post précédent.
Hors ligne
Théocrite a écrit:
Ok alors il faut que tu configures mieux ton vhost :
Code:
<VirtualHost *:80> ServerName test ServerAdmin test DocumentRoot "/opt/lampp/htdocs/test" <Directory "/opt/lampp/htdocs/test"> AllowOverride All Allow from All </Directory> ErrorLog logs/dummy-host2.example.com-error_log CustomLog logs/dummy-host2.example.com-access_log common </VirtualHost>Bon ça c'est si c'est ton 2eme Vhost le bon, mais le concept est là.
Sinon pour le .htaccess, tu peux ajouter dedans APPLICATION_ENV development, et là tu auras l'affichage des erreurs (cf application.ini section development). Tu peux ajouter cette ligne dans le Vhost si tu préfères pour les raisons que je citais dans mon post précédent.
Je sais pas si tu as compris l'erreur , quand je fait index/index ça fonctionne mais quand je fais authentication/login àa ne fonctionne pas .
Hors ligne
Oui, mais qu'est ce qui ne marche pas ?
Aurais-tu un message d'erreur ? (dans les logs peut être)
Il faudrait autre chose que ton erreur 500...
Hors ligne
Théocrite a écrit:
Oui, mais qu'est ce qui ne marche pas ?
Aurais-tu un message d'erreur ? (dans les logs peut être)
Il faudrait autre chose que ton erreur 500...
ou je pourrais trouver les logs ?
Hors ligne
En général sur Ubuntu c'est dans /var/logs/apache2/errors.log
Hors ligne
Théocrite a écrit:
En général sur Ubuntu c'est dans /var/logs/apache2/errors.log
Warning: DocumentRoot [/www/docs/dummy-host.example.com] does not exist
[Thu Aug 18 17:31:35 2011] [notice] suEXEC mechanism enabled (wrapper: /opt/lampp/bin/suexec)
[Thu Aug 18 17:31:35 2011] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Thu Aug 18 17:31:35 2011] [warn] RSA server certificate CommonName (CN) `localhost' does NOT match server name!?
[Thu Aug 18 17:31:35 2011] [notice] Digest: generating secret for digest authentication ...
[Thu Aug 18 17:31:35 2011] [notice] Digest: done
[Thu Aug 18 17:31:36 2011] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Thu Aug 18 17:31:36 2011] [warn] RSA server certificate CommonName (CN) `localhost' does NOT match server name!?
[Thu Aug 18 17:31:36 2011] [notice] Apache/2.2.17 (Unix) DAV/2 mod_ssl/2.2.17 OpenSSL/1.0.0c PHP/5.3.5 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1
Hors ligne
Je ne vois rien ici qui concernerait ton erreur...
As-tu essayé un debug "ligne par ligne" de ton action ? (commence par tout commenter puis essaye de cerner le problème).
Sinon, tu peux nous mettre le code qui provoque l'erreur...
Hors ligne
Théocrite a écrit:
Je ne vois rien ici qui concernerait ton erreur...
As-tu essayé un debug "ligne par ligne" de ton action ? (commence par tout commenter puis essaye de cerner le problème).
Sinon, tu peux nous mettre le code qui provoque l'erreur...
<?php
class AuthenticationController extends Zend_Controller_Action {
public function init() {
/* Initialize action controller here */
}
public function indexAction() {
// action body
}
public function loginAction() {
$request = $this->getRequest();
$form = new Form_LoginForm();
if ($request->isPost()) {
if ($form->isValid($this->_request->getPost())) {
$username = $form->getValue('username');
$pass = $form->getValue('pass');
$authAdapter = $this->getAuthAdapter();
$authAdapter->setIdentity($username)
->setCredentiel($pass);
$auth = Zend_auth::getInstance();
$result = $auth->authenticate($authAdapter);
if ($result->isValid()) {
$identity = $authAdapter->getResultRowObject();
$storage = $auth->getStorage();
$storage->write($identity);
$this->_redirect('index/index');
$this->view->successMessages = 'valide';
} else {
$this->view->errorMessages = 'veuillez vérifier';
}
}
}
}
public function logoutAction() {
}
//rcupérer les champs de la table d'authentification
private function getAuthAdapter() {
$authAdapter = new Zend_Auth_Adapter_DbTable(Zend_Db_Table::getDefaultAdapter);
$authAdapter->setTableName('users')
->setIdentityColumn('username')
->setCredentialColumn('password');
return $authAdapter;
}
}
?>
Hors ligne
Je vois un setCredentiel dans ton code au lieu de setCredential...
Sinon, essaye de répondre sans me citer, et utilises les balises [ code ] [ lang=php ]Ton code[ /lang ] pour la lisibilité (sans les espaces bien sur).
Tu devrais normalement avoir des erreurs quelque part... Essaye de voir les logs que tu as défini dans ton VHost.
Hors ligne
Théocrite a écrit:
Je vois un setCredentiel dans ton code au lieu de setCredential...
Sinon, essaye de répondre sans me citer, et utilises les balises [ code ] [ lang=php ]Ton code[ /lang ] pour la lisibilité (sans les espaces bien sur).
Tu devrais normalement avoir des erreurs quelque part... Essaye de voir les logs que tu as défini dans ton VHost.
j'ai modifié l'erreur mais rien .Comment voir le log de vhost exactement ?
Hors ligne
A priori tu as mis ça dans ton VHost :
ErrorLog logs/dummy-host2.example.com-error_log CustomLog logs/dummy-host2.example.com-access_log common
Donc dans ton document root tu dois avoir un dossier logs qui contient tout...
Hors ligne
Théocrite a écrit:
A priori tu as mis ça dans ton VHost :
Code:
ErrorLog logs/dummy-host2.example.com-error_log CustomLog logs/dummy-host2.example.com-access_log commonDonc dans ton document root tu dois avoir un dossier logs qui contient tout...
Il n'ya aucun fichier dans /root
Hors ligne