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

Novato em PHP


RonaldoLopes

Pergunta

Olá a todos, sou novato em PHP e tenho estudado por minha conta. Criei um sisteminha simples de login mas estou com erro na session

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\projeto_final\adm\topo.php:7) in C:\xampp\htdocs\projeto_final\adm\verifica.php on line 2

esse é meu verifica.php

O erro ocorre no momento que inicio a session

<?php

session_start(); //o erro ocorre aqui

include "config.php";

if(isset($_SESSION["login_usuario"]) AND isset($_SESSION['senha_usuario'])){

$login_usuario = $_SESSION['login_usuario'];

$senha_usuario = $_SESSION['senha_usuario'];

$sql = mysql_query("SELECT *FROM adm WHERE login = '$login_usuario'");

$cont = mysql_num_rows($sql);

while($linha = mysql_fetch_array($sql)){

$senha_db = $linha['senha'];

}

if($cont == 0){

unset($_SESSION['login_usuario']);

unset($_SESSION['senha_usuario']);

echo "

<META HTTP-EQUIV=REFRESH CONTENT=0; URL=login.php'>

<script type=\"text/javascript\">

alert(\"O nome de usuário não corresponde.\");

</script>";

}

if($senha_db != $senha_usuario){

unset($_SESSION['login_usuario]);

unset($_SESSION['senha_usuario']);

echo "

<META HTTP-EQUIV=REFRESH CONTENT='0; URL=login.php'>

<script type=\"text/javascript\">

alert(\"A senha não corresponde.\");

</script>";

}

}else{

/*echo "

<META HTTP-EQUIV=REFRESH CONTENT='0; URL=login.php'>

<script type=\"text/javascript\">

alert(\"O usuário e senha não correspondem.\");

</script>";*/

}

?>

alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Algum arquivo é chamado antes do verifica.php ou tu acessa direto o verifica.php?

Esse erro ocorre sempre que tu envia algo para o cliente antes de iniciar a seção. Algum outro arquivo deve estar dando um echo ou coisa assim, veja isso. Se tu não achar onde o erro está ocorrendo, me diga qual o primeiro arquivo que tu chama na aplicação e crie um novo arquivo e faça assim:

<?php
ob_start();
require_once 'primeiro_arquivo_da_sua_aplicação.php';
ob_end_flush();

Mas para isso funcionar depende muito de como funciona esse seu sistema. Veja sobre o echo antes de iniciar a seção, se não funcionar me explique qual arquivo chama qual para poder ajudar melhor.

Abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Seguinte, o erro ainda persiste

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\projeto_final\adm\topo.php:7) in C:\xampp\htdocs\projeto_final\adm\verifica.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\projeto_final\adm\topo.php:7) in C:\xampp\htdocs\projeto_final\adm\verifica.php on line 2

Este erro é no meu projeto, preciso fazer um sistema de login e estou usando session para isso.

Segue o código dos arquivos

primeira página:

<?php

include "verifica.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>Portifólio PHP</title>

</head>

<?php

include "css.php";

?>

<body>

<div id="fundo_paginas">

<div id="geral_paginas">

<?php

include "menu.php";

?>

<div id="conteudo">

</div><!--conteudo-->

<div style="clear: both"></div>

</div><!--geral_paginas-->

</div><!--fundo_paginas-->

</body>

</html>

arquivo que faz a verificação:

<?php

session_start();

include "config.php";

if(isset($_SESSION["login_usuario]) AND isset($_SESSION['senha_usuario'])){

$login_usuario = $_SESSION['login_usuario'];

$senha_usuario = $_SESSION['senha_usuario'];

$sql = mysql_query("SELECT *FROM adm WHERE login = '$login_usuario'");

$cont = mysql_num_rows($sql);

while($linha = mysql_fetch_array($sql)){

$senha_db = $linha['senha'];

}

if($cont == 0){

unset($_SESSION['login_usuario']);

unset($_SESSION['senha_usuario']);

echo "

<META HTTP-EQUIV=REFRESH CONTENT=0; URL=login.php'>

<script type=\"text/javascript\">

alert(\"O nome de usuário não corresponde.\");

</script>";

}

if($senha_db != $senha_usuario){

unset($_SESSION['login_usuario]);

unset($_SESSION['senha_usuario']);

echo "

<META HTTP-EQUIV=REFRESH CONTENT='0; URL=login.php'>

<script type=\"text/javascript\">

alert(\"A senha não corresponde.\");

</script>";

}

}else{

/*echo "

<META HTTP-EQUIV=REFRESH CONTENT='0; URL=login.php'>

<script type=\"text/javascript\">

alert(\"O usuário e senha não correspondem.\");

</script>";*/

}

?>

Eu aindei pesquisando e vi que pode ser o Charset que está causando este erro, tem como mudar o charset do PHP?

Obrigado a todos pela ajuda

Link para o comentário
Compartilhar em outros sites

  • 0

Realmente pode ser problema do charset, foi como o nosso amigo ARD falou: "Veja também se a página está fazendo uso do BOM (byte order mark)."

Dê uma lida no link que ele passou para entender melhor.

Sobre mudar o charset, não se muda o charset do php, se muda o charset dos arquivos .php.

Qual editor tu está usando?

Abraço

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...