Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Problema em sessão


viper33

Pergunta

Sei que o assunto é dúvida corriqueira para iniciantes em PHP e já pesquisei na net e não consegui solucionar o meu problema.

Tenho o formulário de login:

<!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>Controle de Acesso</title>
<link rel="stylesheet" href="estilo.css" type="text/css"  media="screen" >
</head>

<body>
<form method="post"  id="frmlogin" name="login" action="rec_login.php">
  <table width="400" border="0" align="center">
    <tr>
      <td colspan="2">&nbsp;</td>
    </tr>
    <tr>
      <td colspan="2">&nbsp;</td>
    </tr>
    <tr>
      <td colspan="2">&nbsp;</td>
    </tr>
    <tr>
      <td colspan="2" class="Titulo">SCCAC - CONTROLE DE ACESSO!</td>
    </tr>
    <tr>
      <td colspan="2">&nbsp;</td>
    </tr>
    <tr>
      <td width="13%" rowspan="2"><img src="Cadeado" width="120" height="100" alt="Cadeado" /></td>
      <td width="80%" height="46"><label for="login">Login:</label>
        
        <input name="login" type="text" id="login" size="20" maxlength="20" /></td>
    </tr>
    <tr>
      <td><label for="senha">Senha:</label>
      <input name="senha" type="password" id="senha" size="20" maxlength="20" /></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td colspan="2" align="center"><input type="submit" name="enviar" id="enviar" value="Enviar" /></td>
    </tr>
  </table>
</form>
</body>
</html>
E o formulário que verifica o login:
<!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>Recebe Login</title>
</head>
<body>
<?PHP
  include "conecta_mysql.inc";  
  $login = $_POST["login"];
  $senha = $_POST["senha"];  
  $resultado = mysql_query ("SELECT * FROM TBUSU WHERE login = '$login'");
  $linhas = mysql_num_rows ($resultado);
  if($linhas == 0)
  {
    echo "<html><body>";
    echo "<p align=\"center\">Usuário não encontrado!</p>";
    echo "<p align=\"center\"><a href = \"frmlogin.html\">Voltar</a></p>";
    echo "</body></html>";
  }
  else
  {
     if($senha != mysql_result($resultado, 0, "senha"))
     {
         echo "<html><body>";
         echo "<p align=\"center\">A senha está incorreta!</p>";
         echo "<p align=\"center\"><a href = \"frmlogin.html\">Voltar</a></p>";
         echo "</body></html>";
     }
     else
     {
         session_start();
         $_SESSION['login']=$login;
         $_SESSION['senha']=$senha;
         //setcookie("usuario", $login);
         //setcookie("senha", $senha);
         header("Location: index.php");
     }
  }
     mysql_close($con);  
?>
</body>
</html>
Mas ao tentar logar aparece o erro. O que pode ser? Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\SCCAC\rec_login.php:8) in C:\xampp\htdocs\SCCAC\rec_login.php on line 32 linha 32 session_start(); Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\SCCAC\rec_login.php:8) in C:\xampp\htdocs\SCCAC\rec_login.php on line 37 linha 37 header("Location: index.php"); No início da página index tenho
<?PHP
 session_start();
 include "conecta_mysql.inc";
?>

Editado por *FIT*
Adicionar a tag [code]! *FIT*
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
E o formulário que verifica o login:

<!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>Recebe Login</title>

</head>

<body>

a funçao session_start() , tem que estar no head... nesse caso a solução seria você tirar os codigos html desnecessarios como os que estao no quote...

e outros como os:

echo "<html><body>";

echo "<p align=\"center\">Usuário não encontrado!</p>";

echo "<p align=\"center\"><a href = \"frmlogin.html\">Voltar</a></p>";

echo "</body></html>";

}

else

{

if($senha != mysql_result($resultado, 0, "senha"))

{

echo "<html><body>";

echo "<p align=\"center\">A senha está incorreta!</p>";

echo "<p align=\"center\"><a href = \"frmlogin.html\">Voltar</a></p>";

echo "</body></html>";

Os <html> e <body> no meio do codigo tente retira-los

@edit:

Acebei esqsendo o header() tabm não pode

Editado por david.lyonnais
Link para o comentário
Compartilhar em outros sites

  • 0

Meu formulário que recebe o login ficou assim:

<?PHP  
  $login = @$_POST["login"];
  $senha = @$_POST["senha"];  
  include "conecta_mysql.inc";  
  $sql="SELECT * FROM TBUSU WHERE login = '$login'";
  $res=mysql_query($sql);
  $dados=mysql_fetch_array($res);
  if ($dados["login"]==$login && $dados["senha"]==$senha)
  {
      session_start();
      $_SESSION["logado"]=$dados['cdusu'];
      header("Location: Index.php");
  }
?>
No início da página principal coloquei assim:
<?PHP
 include "conecta_mysql.inc";
 include "valida_sessao.inc";
 session_start();
?>

Parou de dar o erro, mas ao invés de abrir a página inicial, aparece uma página em branco.

Link para o comentário
Compartilhar em outros sites

  • 0

No início do index coloquei assim:

<?PHP
  include "conecta_mysql.inc";
  session_start();
?>

O controle de acesso funciona, ou seja, se digitar uma senha ou usuário inválidos volta para a tela de login. Se digitar corretamente, abre o index.

O problema é que digitando certou ou errado, no alto da próxima página sempre aparece o erro:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\SCCAC\conecta_mysql.inc:5) in C:\xampp\htdocs\SCCAC\rec_login.php on line 3

que é a linha session_start();

Editado por *FIT*
Retirar quote *FIT*
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...