zetoino Posted March 27, 2012 at 01:13 AM Report #445830 Posted March 27, 2012 at 01:13 AM Boas pessoal estou a descobrir a CodeIgniter, e estou aqui a tentar fazer umas coisas para começar queria fazer um login ja vi vários na net mas nenhum consegui por a funcionar como eu quero ( ou seja o mais simples ) pois os que encontro são todos muito elaborados e quando começo a mexer lhes aquilo passa se tudo. Sera que alguém por ai que use esta framework que me consiga ajudar em como posso fazer um sistema de login simples ? os problemas tem me aparecido no caso de passar dados das vistas para os controladores e vice versa..... Desde ja Obrigado
yoda Posted March 27, 2012 at 06:07 AM Report #445836 Posted March 27, 2012 at 06:07 AM O que sabes até agora? before you post, what have you tried? - http://filipematias.info sense, purpose, direction
zetoino Posted April 2, 2012 at 10:33 PM Author Report #447162 Posted April 2, 2012 at 10:33 PM Ate agora tenho tudo alinhado agora a ideia que tenho é que tenho de chamar um uma função de um modelo função essa que depois vai a base dados verificar se existe la o mail que foi introduzido e retorna uma resposta que depois vou receber no controlador para depois dar como sessao criada..... o meu problema esta aqui mesmo tipo tipo não estou a conseguir a parte de chamar a função do modelo e não estou conseguir no modelo ir a bd verificar e voltar a resposta 😛 Peço desculpa se me estou a espressar mal estou a começar nisto de codeIgniter e ainda estou meio perdido...
zetoino Posted April 7, 2012 at 09:17 PM Author Report #448081 Posted April 7, 2012 at 09:17 PM vamos la ver se me conseguem ajudar nisto do login: tenho o modelo com uma função assim : function login($email,$password){ $this->db->where("Email",$email); $this->db->where("password",$password); $query=$this->db->get("utilizador"); if($query->num_rows()>0) { $dadosParaSessao = null; foreach($query->result() as $rows) { //add all data to session $dadossessao = array( 'user_id' => $rows->id_utilizador, 'user_name' => $rows->Nome, 'user_email' => $rows->Email, ); $dadosParaSessao = $dadossessao; } $this->load->library('session'); $this->session->set_userdata($dadosParaSessao); return true; } return false; } depois no contrloador tenho isto : // if($this->user_model->verificarUser($_POST['username'])){ if($this->user_model->login($_POST['username'] , $_POST['password'] )){ $message = 'sessao!'; $bg_color = "green"; // } }else{ $message = "email ou pass errados "; $bg_color = "#FFEBE8"; } e tipo sempre que meto email e de seguida a pass errada ele da me erro de dados incorrectos tudo bem mas quando meto o mail e pass correcto ele devia dar true e no controlador dar a mensagem de sessao, mas nao ele simplemnte não faz nada carrego em login ( com a pass e email correcto ) e ele não faz nada, caso eu comente tudo de variaveis do modelo e meter apenas a ir a bd verificar e dar true ou false ( se esta na bd ou não , funciona tudo normal, leva me a crer que o problema esta no : foreach($query->result() as $rows) { //add all data to session $dadossessao = array( 'user_id' => $rows->id_utilizador, 'user_name' => $rows->Nome, 'user_email' => $rows->Email, ); $dadosParaSessao = $dadossessao; } $this->load->library('session'); $this->session->set_userdata($dadosParaSessao); Alguém me ajude já não sei que faca mais ... cumprimentos
rjsma Posted April 8, 2012 at 08:13 PM Report #448130 Posted April 8, 2012 at 08:13 PM Olha vê este conjunto de vídeos que ficas logo a compreender como funciona o codeigniter. http://net.tutsplus.com/sessions/codeigniter-from-scratch/
zetoino Posted April 9, 2012 at 02:36 AM Author Report #448168 Posted April 9, 2012 at 02:36 AM Boas desde ja obrigado pela resposta, estive a ver os videos e ele tem praticamente o mesmo que eu, nao consegui resolver mesmo assim 😉 o meu codigo esta a funcionar valida os o utilizador e tudo o meu problema esta mesmo no cirar a variavel para guardar os dados da sessao.... nao sei que faça a partida devia funcionar 😉
taviroquai Posted April 9, 2012 at 03:51 AM Report #448171 Posted April 9, 2012 at 03:51 AM foreach??? Supostamente só deve existir um registo para essa combinação user/pass... Usa isto... if($query->num_rows()>0) { $dadosParaSessao = null; $user = $query->row(); // add all data to session // bla bla bla... }
zetoino Posted April 10, 2012 at 09:28 PM Author Report #448463 Posted April 10, 2012 at 09:28 PM Seria isto : function login($email,$password){ $this->db->where("Email",$email); $this->db->where("password",$password); $query=$this->db->get("utilizador"); if($query->num_rows()>0) { $dadosParaSessao = null; $dadossessao = array( 'user_id' => $rows->id_utilizador, 'user_name' => $rows->Nome, 'user_email' => $rows->Email, ); $dadosParaSessao = $dadossessao; $this->load->library('session'); $this->session->set_userdata($dadosParaSessao);[/b] return true; } return false; } se eu tirar a parte que esta a bold ele funciona normal e da me a mensagem de que existe na bd dados e tal como se tivesse feito login, agora se meter isto para meter as variaveis de sessao para guardar a informacao da sessao do utilizador ele deixa de funcionar quando eu meto o login e pass certa carrego no botao e ele nao faz nada se meter a pass errada ele da aviso de passa errada e tudo normal é so mesmo quando ele entra ali na parte de criar a variavel de sessao o array e tal....estarei a fazer algo errado ? isto tem alguma configuracao especial nos ficheiros de configuracao mesmo do codeigniter ?
taviroquai Posted April 10, 2012 at 10:47 PM Report #448495 Posted April 10, 2012 at 10:47 PM Viva, Nessa função não estás a definir a variável rows. Supostamente, deves querer apenas 1 row... assim: function login($email,$password){ $this->db->where("Email",$email); $this->db->where("password",$password); $query=$this->db->get("utilizador"); if($query->num_rows()>0) { $row = $query->row(); $dadosParaSessao = array( 'user_id' => $row->id_utilizador, 'user_name' => $row->Nome, 'user_email' => $row->Email, ); $this->load->library('session'); $this->session->set_userdata($dadosParaSessao); return true; } return false; }
zetoino Posted April 13, 2012 at 01:55 AM Author Report #448896 Posted April 13, 2012 at 01:55 AM Realmente o for e isso do row estava errado ja foi corrigido mas continuei a ter o mesmo problema, embora foi resolvido agora 😄 a versao de xamp que estava a usar era demasiado antiga instalei agora uma versao mais recente e ja funcoiona sem problemas... a todos Obrigado pela ajuda e ate uma proxima duvida 🙂
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now