[Resolvido] Login/SessãO Php
#1
Posted 20/12/2010, 07:10
Ao digitar login e senha é chamado um arquivo (acoes.php) aonde ele acessa a ação login.
Oque acontece é que eu não consigo retornar um valor pela sesao se não colocar o start_session() na página de acoes, mas quadno coloco ele retorna o valor porem um erro. Já tentei colocar o statr_session() fora do case antes do include mas nada acontece. Alguem pdoeria dar uma força, ficaria muito grato.
acoes.php
página seguinte:
erro retornado:
#2
Posted 20/12/2010, 10:45
Estou desenvolvendo um sistema de login bem básico mas encontro problemas.
Ao digitar login e senha é chamado um arquivo (acoes.php) aonde ele acessa a ação login.
Oque acontece é que eu não consigo retornar um valor pela sesao se não colocar o start_session() na página de acoes, mas quadno coloco ele retorna o valor porem um erro. Já tentei colocar o statr_session() fora do case antes do include mas nada acontece. Alguem pdoeria dar uma força, ficaria muito grato.
acoes.php
página seguinte:
erro retornado:
ja tentou incluir o arquivo que valida a sessoes em funcoes.php?
Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.
#3
Posted 20/12/2010, 14:28
para nós olharmos...
Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.
#4
Posted 24/12/2010, 00:35
Eu criei um código completinho pra você aqui, além de entrar ele verifica se os campos foram digitados e criei o arquivo funções pra você!
ARQUIVO VERIFICA.PHP
<?php session_start(); // Inicia a session include "../configuracoes/conexao.php"; $usuario = $_POST['usuario']; $senha = $_POST['senha']; if ((!$usuario) || (!$senha)){ echo "<script>alert('Todos os campos devem ser preenchidos. Por favor, tente novamente!')</script>"; echo "<meta http-equiv='refresh' content='0;URL=../../login.php'>"; }else{ $senha = base64_encode($senha); $sql = mysql_query( "SELECT * FROM tb_acesso WHERE usuario='{$usuario}' AND senha='{$senha}'" ); $login_check = mysql_num_rows($sql); if ($login_check > 0){ while ($row = mysql_fetch_array($sql)){ foreach ($row AS $key => $val){ $key = stripslashes( $val ); } $_SESSION['idd'] = $id_acesso; $_SESSION['usu'] = $usuario; $_SESSION['senha'] = $senha; header("Location: ../../novo_ticket.php"); // Caso o login tenha sido efetuado com sucesso redireciona pra pagina que so permite acesso se tiver logado } }else{ echo "<script>alert('E-mail e/ou senha incorretos. Por favor tente novamente!')</script>"; echo "<meta http-equiv='refresh' content='0;URL=../../login.php'>"; } } ?>Como você viu, o arquivo recebe via POST. Cria um form e faz o action com POST e tudo certo. Hehe
ARQUIVO FUNCTIONS.PHP
<?php function session_checker(){ if (!isset($_SESSION['idd'])){ header ("Location: login.php"); // Se o usuario nao tiver logado ele redireciona para a Página de login exit(); } } ?>
Pra você permitir acesso a pagina somente se o usuario tiver logado no caso a página do TICKET ali você põe o seguinte codigo nela:
<?php include("config.php"); session_start(); // Inicia a session include "functions.php"; // arquivo de funções. session_checker(); // chama a função que verifica se a session iniciada da acesso à página. ?>
OBS: Tu tá pegando o nome do usuário e senha pela SESSÃO! Eu particularmente, prefiro fazer diferente, ou seja, tu tem o ID na sessão certo? Faz um codigo do tipo:
<?php $id_acesso = $_SESSION["id_acesso"]; $conexao = mysql_query("SELECT * FROM tb_acesso WHERE id_acesso = '".$id_acesso."'") or die(mysql_error()); $n = mysql_fetch_array($conexao); ?>
Ai depois pra ti pegar as informações do usuário que tá logado tu faz o código
<?php echo $n["campo_que_voce_deseja_recuperar"]; ?>
Bem, é isso ai amigo. Abraço e boa sorte! Qualquer coisa fala ai!
Att, Cleiton Garcia da Silva
Edição feita por: Cleiton Garcia da Silva, 24/12/2010, 00:37.
#5
Posted 28/12/2010, 06:49
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)