IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Acl & Zend_Auth PHP Discussion :

Zend_Acl et AJAX


Sujet :

Zend_Acl & Zend_Auth PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 58
    Par défaut Zend_Acl et AJAX
    Bonjour,

    J'ai un problème lié à Zend_Acl et Ajax.

    En effet, mes requêtes ajax marchent parfaitement quand je ne suis pas logué, mais dès je me logue je vois via Firebug "403 Forbidden", aucune requête n'est effectué et je suis automatiquement délogué.

    Cela doit sans doute venir de mes droits d'accès à mon controleur AJAX pourtant je ne fais que dériver les droits d'accès du membre non connecté au membre connecté. Les deux devrait donner 403 Forbidden ?

    Avez vous déjà eu un problème de ce genre ? Une solution a me proposer ?

    Merci

    EDIT :

    J'ai supprimé le ajaxContext et appelé mes méthodes par l'url, l'accès ne pause aucun problème. Il ne s'agit donc pas d'un problème lié aux ACL.

    Ensuite, j'ai comparé les en tête HTTP envoyés lors des requêtes ajax quand je suis connecté ou pas. Quand je suis connecté je vois :

    Set-Cookie
    egame_session=deleted; expires=Wed, 05-Mar-2008 11:11:33 GMT; path=/

    Cela signifie qu'il détruit ma session ? J'ai regardé sur un autre site que j'avais développé (sans Zend F) et je ne vois pas de trace de session=deleted. Mon problème d'erreur 403 peut-il venir de là ? comment y remédier ?

    EDIT 2 :

    Je viens de faire un nouveau test, dans mon fichier JS, j'ai remplacé l'appel (j'utilise Jquery)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    url: 'ajax/topthemes/format/html'
    par en mettant un simple echo dans le fichier ajax.php et bien là aucun problème.

    Comment faites-vous pour appeler le controleur ajax et la bonne méthode dans votre JS ? Est ce que ma méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    url: 'ajax/topthemes/format/html'
    n'est pas la bonne ?

    J'avais déjà remarque ce comportement, quand une image manque, cela retourne une erreur 403 et me délogue.

    Il semble donc que le problème vient de l'appel au controleur / méthode ajax. Comment faites vous ?

  2. #2
    Membre averti

    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 9
    Par défaut
    Hello Emerika !

    Alors que renvoie tu dans ton /ajax/toptheme/context/html ?

    Que du html?

    Tu as mis un die() à la fin ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 58
    Par défaut
    Alors dans mon controleur ajax j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    class AjaxController extends Zend_Controller_Action {
     
        protected $_db_home;
     
    	/* Globale à toute les actions */
    	public function init() {
     
            /* récupération de données */
    		$this->_db_home = Zend_Registry::get('db_home');
     
            /* Activation AJAX */
            $ajaxContext = $this->_helper->getHelper('AjaxContext');
            $ajaxContext->addActionContext('topthemes', 'html')
                        ->addActionContext('lastthemes', 'html')
                        ->addActionContext('seekgame', 'html')
                        ->initContext();
     
    	}
     
     
    	/***************************/
    	/* Récupère les top thèmes */
    	public function topthemesAction() {
     
    		$top_themes = Egame_Cache_Init::get('top_themes');
            $this->view->cached = (boolean) $top_themes;
     
            if(!$top_themes) {
                $table = new Db_Theme(array('db'=>$this->_db_home));
                $result = $table->seekTopThemes(6);
     
                $top_themes = array();
                foreach($result as $theme) {
     
                   $theme['note'] = ceil($theme['popularite']/$theme['nbnote']);
     
                    $top_themes[] = $theme;
                }
     
                Egame_Cache_Init::set($top_themes, 'top_themes');
     
            }
     
            $this->view->top_themes = $top_themes;
     
        }
    }
    et dans mon dossier view/scripts/ajax/ j'ai bien topthemes.ajax.phtml
    Il contient une boucle foreach qui tourne pour ajouter des <li> avec les informations récupérées. Non je n'ai pas mis de die ?

    Le problème il semble est que quand je suis logué la réécriture d'url ajax/topthemes/format/html ne marche pas, donc je tombe sur une erreur 403

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 58
    Par défaut
    J'ai (enfin) résolu mon problème ça vient de mon plugin qui contrôle si il n'y a pas eu vol de la session que j'ai récupéré via le livre " Zend Framework Bien développer en PHP".

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Librairies] Api AJAX
    Par ouioui2000 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 20/10/2005, 16h57
  2. [AJAX] Effectuer plusieur appel ajax
    Par shwin dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 06/10/2005, 16h40
  3. [AJAX] Ajax et javascript contenu
    Par zekey dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/09/2005, 20h16
  4. [AJAX] AJAX et javascript
    Par spud5351 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/09/2005, 10h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo