zetoino Posted March 27, 2012 Report Share Posted March 27, 2012 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 Link to comment Share on other sites More sharing options...
yoda Posted March 27, 2012 Report Share Posted March 27, 2012 O que sabes até agora? before you post, what have you tried? - http://filipematias.info sense, purpose, direction Link to comment Share on other sites More sharing options...
zetoino Posted April 2, 2012 Author Report Share Posted April 2, 2012 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... Link to comment Share on other sites More sharing options...
zetoino Posted April 7, 2012 Author Report Share Posted April 7, 2012 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 Link to comment Share on other sites More sharing options...
rjsma Posted April 8, 2012 Report Share Posted April 8, 2012 Olha vê este conjunto de vídeos que ficas logo a compreender como funciona o codeigniter. http://net.tutsplus.com/sessions/codeigniter-from-scratch/ Link to comment Share on other sites More sharing options...
zetoino Posted April 9, 2012 Author Report Share Posted April 9, 2012 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 😉 Link to comment Share on other sites More sharing options...
taviroquai Posted April 9, 2012 Report Share Posted April 9, 2012 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... } Link to comment Share on other sites More sharing options...
zetoino Posted April 10, 2012 Author Report Share Posted April 10, 2012 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 ? Link to comment Share on other sites More sharing options...
taviroquai Posted April 10, 2012 Report Share Posted April 10, 2012 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; } Link to comment Share on other sites More sharing options...
zetoino Posted April 13, 2012 Author Report Share Posted April 13, 2012 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 🙂 Link to comment Share on other sites More sharing options...
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