Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 25-08-2009 15:13:26

xenesis
Membre
Date d'inscription: 25-08-2009
Messages: 23

confusion ?

Bonjour,

Débutant sur zend framework 1.9, j'aimerai avoir votre avis sur la structure suivante

Je suis en train de faire un tout petit système d'authentification (basique, login+mdp)

index.phtml -> contient la vue de mon formulaire

Le controleur index et l'action indexAction() ne font que récupérer les données en les filtrants ($_POST['login'] && $_POST['pass']..), de la je ne sais pas quelle est la meilleure méthode :

1. Rediriger vers un controleur ident qui s'occupera de toutes les authentification de tout le site via _forward
2. Mettre dans l'action du formulaire de la vue $this->url + ident/ qui ferra ensuite les redirections

(Grosso modo cela donne :

Solution 1 :
S'il n'y aucun problème (pas de données invalides)
/index/indexAction --> Post du formulaire, forward du controleur vers le controleur /ident/identAction/

Sinon, on ne passe meme pas dans le forward et on laisse la vue et le formulaire tel quel (sur indexAction)

Solution 2 :

/index/indexAction ---> Post du formulaire --> envoi des données vers /ident/indexAction

Si échec rediriger le contrôleur (ou la vue) vers indexAction par défaut (en enregistrant les variables pour afficher des messages d'erreurs, genre login invalide (Zend::session ou registry ?)

Dans le cas de la solution deux je rencontre une erreur 500 Internal alors que le .htaccess est celui d'origine de ZF (dossier public) et que les fichiers sont tous présents dans les répertoires correctement nommés. (avec WAMP). Pourquoi mondomaine.com/index/index/ marche alors que mondomaine.com/ident/index/ ne marche pas.. je ne comprends pas (erreur 500 internal error) (url par défaut, dossier par défaut).

mondomaine.com renvoi vers le dossier public directement.

mondomaine.com d:/perso/public/ soit /

Ce qui me plait dans l'idée de faire un controleur ident c'est qu'il s'agit d'un point central, toutes les authentifications doivent passer par ce point. J'ai pas envie de le mettre dans le controleur index pour ne pas le surcharger.

Qu'en pensez vous ?

PS : Pour utiliser un modèle, il faut l'appeller ou il s'appelle automatiquement avec le meme nom de l'action ?

Merci bp

Dernière modification par xenesis (25-08-2009 15:18:19)

Hors ligne

 

#2 26-08-2009 10:04:55

xenesis
Membre
Date d'inscription: 25-08-2009
Messages: 23

Re: confusion ?

Voici en fait le fond du problème :

mondomaine.com/controleur/action/

Autre que le controlleur index j'ai le droit à un joli server error 500.. je ne comprends pas d'ou ca peut venir.

J'utilise wamp. L'htacess est celui de base et tous les fichiers sont là. (Arboresence de base).

De même concernant ma question, qu'est ce qui vous semble le mieux ?

Faire un action form /ident/auth (controleur Ident, action Auth) ou refresh la page sur elle même et vérifier if isset($BoutonPousse) forward -> controleur ident..

Merci

Hors ligne

 

#3 26-08-2009 11:32:37

xenesis
Membre
Date d'inscription: 25-08-2009
Messages: 23

Re: confusion ?

Je vais devenir dingue

http://localhost/ident/ (contrôleur ident)

"Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, admin@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log."

L'htaccess dans /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]

Le virtualhost

Alias / "d:/zend/public/"

<Directory "d:/zend/public/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order allow,deny
    Allow from all
</Directory>

http://localhost/index/ marche

http://localhost/index.php/ident/ident/ marche

(contrôleur ident action ident)

Alors pourquoi

http://localhost/ident/ident/ ne marches pas ?

Je ne comprends pas. Le htaccess n'est pas bon ?

A quoi sert ces lignes ?

RewriteRule ^.*$ - [NC,L] (surtout celle la)
RewriteRule ^.*$ index.php [NC,L]


Grosso modo de ce que j'ai compris

RewriteCond %{REQUEST_FILENAME} -d -s -l si l'URI désigne un répertoire, un lien symbolique ou un un fichier alors on ne fait rien

(RewriteRule ^.*$ - [NC,L]) (pourquoi "-" ???)

Sinon on redirige vers index.php

Dans mon cas /ident/ n'existe pas a la racine mais bien dans le contrôleur .. pourquoi il ne passe donc pas à l'index ?

En suivant cette logique  : je viens de faire un fichier toto.txt a la racine du site (dans public donc..)
http://localhost/toto.txt  devrait être accessible directement ... error 500

Si quelqu'un peut m'expliquer..

Hors ligne

 

#4 26-08-2009 12:13:47

xenesis
Membre
Date d'inscription: 25-08-2009
Messages: 23

Re: confusion ?

Bon.. j'ai desinstallé wamp et mis easy php et la tout marche..

Ca vient donc de la config de wamp (j'ai activité mod_rewrite)

Si quelqu'un as quand meme une idée pour l'installation correcte de Zend Framework 1.9.2 sous wamp s'il peut la partager ca serait super sympa..

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