Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 14-08-2009 08:02:10

nicko
Membre
Lieu: Chambéry
Date d'inscription: 25-05-2009
Messages: 190

[résolu][1.8] Problème acces direct au pages dans ZF avec ajax

Bonjour,

J'ai créer un bout de code en ajax avec JQuery qui en cliquant sur un radio appel tel ou tel formulaire. Tout fonctionne parfaitement. D'ailleurs voici les codes :

Code JS qui appel les scripts (les views)

Code:

    /* discoveredCustomer */
    $ ( '.customerChoose' ) . click ( function ( ) {

        if ( $ ( this ) . val ( ) == 'new' ) {

            $.post ( 'newCustomer', {}, function ( response ){

                var Html = $ ( response );
                $ ( '#form' ) . append ( Html );

            } );

        }
        else if ( $ ( this ) . val ( ) == 'select' )
        {
            alert ( 'old' );
        }

    } );

Le code du controler

Code:

    public function newcustomerAction ( )
    {

        $this->view->idPartnerId = $this->_auth->id;
        $this->view->id          = $this->_session->id;
        $this->_helper->getHelper('layout')->disableLayout();
    }

et le script view qui est un formulaire tout ce qui a de plus simple.

Le souci est que lorsque j'appelle l'url suivante :

projectManagment/projects/newCustomer

Donc l'action qui est appelé dans le code JS, j'arrive à accéder à la page. Alors que je ne devrais pas pouvoir !

J'ai bien essayé de mettre un setNoRender mais du coup plus rien de s'affiche (je dirais que c'est plutôt normal wink ).

Je tiens à préciser que j'ai des permissions d'accès sur cette page des fois que cela vous aide.

Si vous pouviez m'aider, je vous en serais très reconnaissant.

Merci.

Bien cordialement.

Dernière modification par nicko (18-08-2009 08:04:57)

Hors ligne

 

#2 14-08-2009 09:07:49

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [résolu][1.8] Problème acces direct au pages dans ZF avec ajax

C'est pas très clair ton problème. Enfin moi j'ai pas pigé.

Hors ligne

 

#3 17-08-2009 19:51:02

nicko
Membre
Lieu: Chambéry
Date d'inscription: 25-05-2009
Messages: 190

Re: [résolu][1.8] Problème acces direct au pages dans ZF avec ajax

Désolé si c'est pas très claire.

newCustomer correspond à une action et une vue. Avec mon JS, j'arrive à faire fonction mon action et ma vue. Ça s'affiche correctement !

Par contre, lorsque je tape l'url avec l'action newCustomer, j'accède à la vue qui est retournée en AJAX. Je souhaiterais que se sois pas possible puisque cette vue est propre à mon AJAX.

J'avais penser faire un :

Code:

$this->_helper->viewRenderer->setNoRender ( )

dans l'action et faire le formulaire en PHP mais c'est trop lourd ! Et j'ai une préférence pour que le code HTML soit dans view.

Est-ce que je suis plus claire ? wink

Encore merci de votre aide.

Hors ligne

 

#4 17-08-2009 20:19:06

Eureka
Membre
Date d'inscription: 18-07-2009
Messages: 81

Re: [résolu][1.8] Problème acces direct au pages dans ZF avec ajax

L'idée est de ne rendre la vue que si la page est demandée en Ajax, et de ne pas la rendre si elle est demandée via la barre d'adresse ?

Je ne suis pas certain qu'il existe une manière fiable de sécuriser ainsi l'accès à la page.

Une approche basique serait d'ajouter un paramètre à ton URL (genre "?context=ajax") et de ne rendre la vue que lors de ce contexte. Toutefois cela ne garantit en rien qu'une saisie de l'URL avec ce paramètre via la barre d'adresse d'un navigateur ne retournerait rien. Et cela n'empêche pas non plus quiconque connaissant l'URL de pouvoir s'y rendre sans être passée par la page du formulaire.

Une autre approche pourrait être de générer une chaîne de caractère (ex: timestamp, valeur aléatoire, ...) que tu gardes en mémoire (session ?) au chargement de ta page principale et lors de l'appel ajax tu transmets cette même chaîne à ton controleur, qui ne rendra la vue que si la chaîne existe en session. (cette approche assure que l'URL n'est pas unique, contrairement à l'idée du "contexte", assurant que l'ID ne peut pas être transmises à des tiers, seul la personne (ou robot ?! eheh) en cours de visionnage de la page pourra y accéder par la barre d'adresse directement.

Pas certain qu'il y est de solution magique. S'il y en a une toutefois je suis tout aussi intéressé que toi...

Hors ligne

 

#5 17-08-2009 21:35:56

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

Re: [résolu][1.8] Problème acces direct au pages dans ZF avec ajax

Avec l'objet Requet tu peux vérifier s'il s'agit d'une requête Ajax. Va y jeter un coup d'oeil, car je ne me souvient plus de la méthode. wink

Hors ligne

 

#6 17-08-2009 22:47:13

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [résolu][1.8] Problème acces direct au pages dans ZF avec ajax

@3uclide : isXmlHttpRequest()


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#7 18-08-2009 08:04:16

nicko
Membre
Lieu: Chambéry
Date d'inscription: 25-05-2009
Messages: 190

Re: [résolu][1.8] Problème acces direct au pages dans ZF avec ajax

Merci beaucoup pour vos réponses. Je connaissais la méthode vaguement et je n'avais pas pensé l'utilisé comme ça.

Encore merci

Hors ligne

 

#8 18-08-2009 09:45:36

Eureka
Membre
Date d'inscription: 18-07-2009
Messages: 81

Re: [résolu][1.8] Problème acces direct au pages dans ZF avec ajax

Approche bien plus intéressante que mes propositions, bon à savoir !

Juste pour information elle semble restreinte à Protoype et jQuery toutefois et l'objet Zend_Controller_Request_Http ne permettant pas l'enrichissement d'autres headers orientés 'ajax' il faudrait probablement surcharger sa méthode isXmlHttpRequest au besoin. A voir si nécessaire...

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