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

Ruby on Rails Discussion :

Sessions


Sujet :

Ruby on Rails

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Sessions
    Bonjour je debute en Rails et je n'arrive pas a faire fonctionner mes sessions.
    Ca fait plusieurs heures que j'essaie de faire marcher ce bazar.
    Dans mon controller, 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
      def identification
        @current_user = User.new(params[:user])
        ok = false
        redir = 'login_failed'
        @remote_user = User.find(:all)
        @remote_user.each do |r_user|
          if (r_user.login == @current_user.login and
              r_user.pass == @current_user.pass)
            ok = true
          end
        end
        if (ok)
          session[:user_login] = params[:login]
          session[:user_access] = params[:access]
          redir = 'list_article'
        end
        redirect_to :action => redir
      end
    et j'aimerais afficher le nom de la personne connecte.
    Dans ma vue j'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <%= if session[:user_login] then
         "OK #{session[:user_login]}"
        else
          "Finalement, vive le php !"
        end %>
    Mais "session[:user_login]" est toujours vide...

    Merci.

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Salut,

    Alors, si je comprend tu essayes d'authentifier un utilisateur?

    Si oui, dans ton contrôleur identification tu fais un new
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    @current_user = User.new(params[:user])
    Or un new c'est créer un nouvel utilisateur, donc il n'existe pas dans ta base.

    Essaye comme ceci, pour voir si cela fonctionne (attention à adapter en fonction de tes inputs)

    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
     
    def identification
     
        @remote_user = User.find(params[:user])
         if (@remote_user == params[:login] and
              @remote_user == params[:pass])
            ok = true
         end
        if (ok)
          session[:user_login] = params[:login]
          session[:user_access] = params[:access]
          redir = 'list_article'
        end
        redirect_to :action => 'login_failed'
      end

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    Installe le plugin act_as_authenticated.
    Celui ci te donne acces à des variables et des méthodes qui correspondront à ton besoin, sans que tu aies besoin de refaire ce qui a déja été fait, en mieux, par d'autres...(j'imagine que tu as d'autre chats à fouetter)
    Par exemple tu pourras écrire dans ta vue :
    <%= current_user.login %> pour afficher le login.
    Ou dans ton controleur :
    before_filter :login_required
    ou
    if logged_in?
    Sans rien de plus...

    SInon pour répondre au probleme des sessions, il me semble (j'ai pas testé donc je dis "semble") que ta syntaxe est correcte et que MaitrePylos a vu juste

  4. #4
    Membre émérite
    Avatar de bolo
    Inscrit en
    Novembre 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 309
    Points : 2 695
    Points
    2 695
    Par défaut
    et prends la version restFul du plugin tant qu'a faire

    le but de RoR n'est pas de toujours réinventé la roue

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 110
    Points : 84
    Points
    84
    Par défaut
    que fait de plus la version restful du pluggin ?

  6. #6
    Membre émérite
    Avatar de bolo
    Inscrit en
    Novembre 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 309
    Points : 2 695
    Points
    2 695
    Par défaut
    Ca permet d'utiliser le protocole Rest
    http://blog.developpez.com/index.php...&pb=1#more2441

    Quand tu auras un peu d'expérience tu tourneras vers Restful qui est bien pratique

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

Discussions similaires

  1. [Servlets - JSP] Problème de session
    Par the java lover dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 28/11/2011, 09h54
  2. [JSP][session] perte de session et sendRedirect
    Par blaz dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 30/03/2007, 09h32
  3. Réponses: 12
    Dernier message: 24/09/2003, 15h26
  4. [XMLRAD] session
    Par jml dans le forum XMLRAD
    Réponses: 4
    Dernier message: 17/12/2002, 09h24

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