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

JavaScript Discussion :

[AJAX] Utilisation de classe php (pour les sessions mais peu importe) et AJAX


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 11
    Par d�faut [AJAX] Utilisation de classe php (pour les sessions mais peu importe) et AJAX
    Bonjour � tous,

    Je commence le d�veloppement d'un site perso, en php5, dans lequel se trouve un formulaire de login/mot de passe pour acc�der � certaines parties du contenu.
    Afin de s�curiser l'appli, j'utilise les sessions (sessions avec base de donn�es). Pour cela, j'ai cr�� une classe Session... le probl�me arrive

    Cette classe session contient donc un constructeur, et diff�rentes m�thodes, notamment une m�thode g�n�rant le formulaire d'identification, et une m�thode (nomm�e controleAccess) v�rifiant si l'utilisateur est d�j� connect�, si la session est valide etc etc...


    Comme vous le savez s�rement d�j�, tout session_start doit �tre effectu� en haut de page.

    Sur ma page index.php, tout en haut j'ai donc :
    <?php
    require_once("./class/session/database_session.class.php");
    $session = database_session::getInstance(); // instancie la session, et notamment ex�cute le fameux sesssion_start(); ?>


    Au milieu de cette m�me page, j'ai ensuite le formulaire de connexion (qui se trouve en fait dans une page nomm�e login_form.php:
    <div id="access_form">
    <?php require_once("login_form.php"); ?>
    </div>

    Dans cette page login_form.php, j'appel la m�thode controleAccess via $session->controleAccess(...).
    Au chargement de la page, aucun probl�me avec l'appel de cette m�thode car l'objet session est bien instanci� au d�but de la page.

    Le probl�me c'est que j'aimerai utiliser de l'ajax pour le traitement du formulaire. Je fais donc un truc du genre Onsubmit = traitement du formulaire et rafraichissement uniquement du <div id="access_form">. Dans ce cas, avec ajax, apres le OnSubmit, seul le fichier login_form.php est �x�cut�, et l� GROS PROBLEME: il me dit que j'appel une m�thode sur un non objet (normal puisque l'instanciation de l'objet n'est pas la).

    Y'a t il une solution � ce probl�me? (le fait que l'on r� execute une page php dans lequel une m�thode d'une classe est appel� sur un objet instanci� ailleur que dans cette m�me page)

    Pour info, je sais qu'une solution pourrait �tre d'utiliser des m�thodes statics, et donc dans login_form.php j'appel ma m�thode en static mais je trouve pas �a terrible, donc si y'a mieux, ce serait avec grand plaisir.

    Je vous remercie d'avance de votre aide.

    A+

  2. #2
    Membre �prouv�
    Inscrit en
    Septembre 2007
    Messages
    169
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Par d�faut
    require_once("./class/session/database_session.class.php"); dans "login_form.php" ?
    Ca devrait marcher je pense, mais c'est peut etre pas tr�s propre.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 11
    Par d�faut
    Je pense que tu veux dire que je pourrais instancier ma classe ($session = database_session::getInstance() dans le fichier database_session.class.php juste apr�s avoir fermer ma class.
    Ainsi je retrouverai gr�ce au require_once mon objet $session dans chacune des pages, m�me quand j'appel uniquement la deuxi�me... et du coup plus de probl�me pour appeler des m�thodes.
    En effet �a pourrait marcher... mais �a ne marche pas dans ce cas pr�sent car n'oubli pas qu'ici je traite des sessions.
    Certe au rafraichissement du div, donc de la deuxieme page php (login_form.php) je r�cup�re bien un objet de type database_session et je peux appeler sans probl�me mes m�thodes, mais le session_id n'est pas le m�me que le reste de la page, ce qui pose bien entendu probl�me.

    En dehors de la technique d'avoir des m�thodes statics, je regarde en ce moment la technique bien connu de la s�rialization. Ainsi, au moment ou je valide le formulaire, je pourrait surement passer puis recuperer dans ce cas mon objet...

  4. #4
    Membre �prouv�
    Inscrit en
    Septembre 2007
    Messages
    169
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Par d�faut
    Ah bizarre. Y'a un truc que je n'ai pas compris alors, parce que normalement le session_id est le m�me tant que tu reste sur le site, m�me si tu fais des requ�tes ajax. Sinon pour la s�rialisation, JSON est parfait, et marche aussi bien au niveau de Php(versions r�centes) que Javascript.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 11
    Par d�faut
    La s�rialisation a r�solu mon probl�me qui n'�tait en aucun cas une histoire de code pas propre...
    Merci quand m�me pour les r�ponses.

    A+

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 2
    Dernier message: 25/09/2011, 04h15
  2. R�ponses: 2
    Dernier message: 27/04/2011, 01h19
  3. Utilisation de base de donn�es pour les sessions
    Par Aragorn_destroy dans le forum Langage
    R�ponses: 3
    Dernier message: 05/07/2007, 08h51
  4. utilisation de classes php
    Par lipao17 dans le forum Langage
    R�ponses: 4
    Dernier message: 09/01/2006, 12h02
  5. probl�me de configuration pour les sessions
    Par spilliaert dans le forum Langage
    R�ponses: 13
    Dernier message: 27/12/2005, 20h44

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