Problema com sessões!!!
Segue abaixo o codigo-fonte das páginas:index.php
<?php// Verificador de sessão require "verifica.php"; // Conexão com o banco de dados require "conecta.php";?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Principal</title></head><body><?// Imprime mensagem de boas vindas echo "Bem-Vindo " . $_SESSION["nome_usu"] . "!<BR>\n"; ?></body></html>
logon.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Login</title><link href="estilos.css" rel="stylesheet" type="text/css" /></head><body><p align="center" class="topico">Login</p><form id="logando" name="logando" method="post" action="login_vai.php"> <div align="center"></div> <table width="21%" height="58" border="0" align="center"> <tr> <td width="29%" class="texto">E-mail:</td> <td width="71%" class="texto"><label> <input type="text" name="email" id="email" /> </label></td> </tr> <tr> <td class="texto">Senha:</td> <td class="texto"><label> <input type="password" name="senha" id="senha" /> </label></td> </tr> </table> <br /> <label> <div align="center"> <input type="submit" name="logar" id="logar" value="Logar" /> </div> </label> <div align="center"></div></form><p> </p></body></html>
login_vai.php
<?php// Inicia sessões session_start(); // Conexão com o banco de dados require "conecta.php"; // Recupera o login $email = isset($_POST["email"]) ? addslashes(trim($_POST["email"])) : FALSE; // Recupera a senha, a criptografando em MD5 $senha = isset($_POST["senha"]) ? md5(trim($_POST["senha"])) : FALSE; //Verificar porque não está exibindo msg erro //quando se preenche a senha. É alguma coisa //com o md5.// Usuário não forneceu a senha ou o login if(!$email || !$senha) { echo "Você deve digitar sua senha e login!"; exit; } /* * Executa a consulta no banco de dados. * Caso o número de linhas retornadas seja 1 o login é válido, * caso 0, inválido. */$SQL = 'SELECT id_usu, nome_usu, email_usu, senha_usu FROM usuario WHERE email_usu = \''.$email.'\''; $result_id = @mysql_query($SQL) or die("Erro no banco de dados!"); $total = @mysql_num_rows($result_id); // Caso o usuário tenha digitado um login válido o número de linhas será 1.. if($total) { // Obtém os dados do usuário, para poder verificar a senha e passar os demais dados para a sessão $dados = @mysql_fetch_array($result_id); // Agora verifica a senha if(!strcmp($senha, $dados["senha_usu"])) { // TUDO OK! Agora, passa os dados para a sessão e redireciona o usuário $_SESSION["id_usu"] = $dados["id_usu"]; $_SESSION["nome_usu"] = stripslashes($dados["nome_usu"]); header("Location: verifica.php"); exit; } // Senha inválida else { echo "Senha inválida!"; exit; } } // Login inválido else { echo "O login fornecido por você é inexistente!"; exit; } ?>
verifica.php
<?php // Inicia sessões session_start();// Verifica se existe os dados da sessão de login if(!isset($_SESSION["id_usu"]) || !isset($_SESSION["nome_usu"])) { // Usuário não logado! Redireciona para a página de login echo "Usuário não registrado na sessão"; header("Location: login.php"); exit; } ?>
Estou com o seguinte problema:Quando eu acesso a página index.php sem estar com o usuário logado ao inves de ser redirecionado para a página login.php a seguinte mensagem de erro é exibida:Warning: Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\projeto_site\autenticacao\verifica.php:10) in D:\xampp\htdocs\projeto_site\autenticacao\verifica.php on line 11Se eu acesso diretamente a página login.php e digito o usuario e senha não sou direcionado a página index.php, somente sou direcionado a página verifica.php sem nenhuma msg de erro.Alguem pode me ajudar???
Discussão (2)
Carregando comentários...