Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Buthy

Erro Php Com Session_Start(); E Vários Outros :S

Recommended Posts

Dae galera.. To me complicando bastante aqui...

 

Um dos erros que acontece é esse (quando vai fazer o login):

 

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/site/public_html/login.php:1) in /home/site/public_html/login.php on line 11

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent by (output started at /home/site/public_html/login.php:1) in /home/site/public_html/login.php on line 11

 

login.php

<?php
ob_start();
$usuario = $_POST["usuario"];
$senha = $_POST["senha"];

$table = array();
$table["usuario"] = "admin";
$table["senha"] = "admin";

if($usuario == $table["usuario"] && $senha == $table["senha"]) {
   session_start();
   $_SESSION["usuario"] = $usuario;
   $_SESSION["senha"] = $senha;
   echo "<script language='javascript'>window.location.href='admin.php'</script>";
   }
   else {
       echo "<script language='javascript'>window.location.href='loginForm.html'</script>"
;
   }
ob_end_flush();
?>

 

já coloquei o ob_start(); ob_end_flush(); troquei os header(location:); e nadaa...

 

alguém sabe como resolvo isso?

 

Dai mesmo assim ele faz o login, e acontece esses erros:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/site/public_html/admin.php:7) in /home/site/public_html/admin.php on line 82

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/site/public_html/admin.php:7) in /home/site/public_html/admin.php on line 82

Warning: Cannot modify header information - headers already sent by (output started at /home/site/public_html/admin.php:7) in /home/site/public_html/admin.php on line 84

 

admin.php

<div align="right">
       <?php
           session_start();
           if(!isset($_SESSION['usuario']))
           header("Location: logout.php");
       ?>
               <span class="tit">Olá <strong><?=$_SESSION['usuario']?></strong>!</span>

               </div>

 

Aí ainda não alterei o hedar("location")...

 

Se alguém puder me ajudar, agradeço!

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse arquivo login.php está sendo chamado de um outro arquivo através de um include ou require?

Esse erro geramente dá quando já foi usado a session_start.

Verifique se continua ocorrendo quando você colocar @ na frente. Exemplo

 

@session_start();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qualquer tipo de header(); tem que vir antes de tudo ou qualquer código HTML.

 

Tente fazer o seguinte. Em vez de você escrever o arquivo inteiro e depois testar. Crie o arquivo login sem nada. Coloque o session_start();

 

Se não aparecer erros, coloque as vars. Salva e testa, se não aparecer erros, coloque um if, salva e testa e vai seguindo dessa forma. Tu vai perceber o erro onde está e vai poder arrumar sozinho. Siga minha dica wink.gif

 

Abraços Walker

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloquei o @ na frente do session_start() e nao deu mais o erro :D

valeu cara

 

mas outra coisa

 

no admin.php, no lugar do

 header("Location: logout.php");

 

o que eu coloco? pois se eu colocar isso:

echo "<script language='javascript'>window.location.href='logout.php'</script>";

 

ele redireciona para o logout...

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloquei o @ na frente do session_start() e nao deu mais o erro :D

valeu cara

 

mas outra coisa

 

no admin.php, no lugar do

 header("Location: logout.php");

 

o que eu coloco? pois se eu colocar isso:

echo "<script language='javascript'>window.location.href='logout.php'</script>";

 

ele redireciona para o logout...

 

O @ só diz para o código que se ja tiver sido usado, nao é pra mandar a warning falando que ja startou a sessao.

 

Quanto ao header na admin.php Ele só pode ser utilizado antes de qualquer SAIDA html do arquivo.

Se por acaso você imprimiou qq coisa atraves de echo,print e demais funcoes, nao funcionará. A saída é o Javascript.

 

Qualquer coisa grita!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colocar esse @ na frente resolve por agora, mas não seria o certo. Se está acontecendo esse erro, é porque tem algo de errado. Imagine você criando uma aplicação e dá algum erro parecido, tu vai dizer, opa, vou por o @ e tudo se resolve ?

 

Reveja seu código.

 

Abraços Walker

Compartilhar este post


Link para o post
Compartilhar em outros sites

poisé, mas eu ja estou a tarde inteira pesquisando sobre esse erro, mudando codigo, vendo outras opcoes, e nada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o que eu falei, faça por passos o seu código, vá testando e editando.

 

Você está errando em algum lugar. Só assim pra encontrar e corrigir.

 

Para ser programador não pode ser preguiçoso em querer corrigir erros.

 

Mas para outras coisas até é bom ser preguiçoso, porque te faz pensar em maneiras de como facilitar alguma coisa que você faz rotineiramente, e daí que surge novos métodos de como criar o código mais rápido.

 

Abraços Walker

Compartilhar este post


Link para o post
Compartilhar em outros sites

outro erro que está dando é esse:

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/site/public_html/agendaAlterar.php on line 145

 

agendaAlterar.php

<?php
	include("conectar.php");

	$sql= "SELECT * FROM agenda ORDER BY id DESC";
	$res= mysql_query($sql,$con);

 		echo "<table width='500' border='0'>";

	while ($linha=mysql_fetch_array($res)){
		$id=$linha['id'];
		$nome=$linha['nome'];
		$cidade=$linha['cidade'];
		$local=$linha['local'];
		$data=$linha['data'];
		$hora = $linha['hora'];

 			echo "<tr>
        		 		<td class='titg'><strong>$nome / </strong><span class='tit'>Data: $data $hora - <a class='link' href=agendaDeletar.php?id=$id>Excluir</a></span></td>
 				</tr>
 				<tr>
   					<td class='tit'><strong>$local / </strong>$cidade</td>
 				</tr>
			<tr>
   					<td class='tit'> </td>
 				</tr>
			";

	}

 		echo "</table>";    

?>

 

no caso, da erro nessa linha:

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

 

o ruim é que no WAMP tudo funcionava ¬¬ ehehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

outro erro que está dando é esse:

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/site/public_html/agendaAlterar.php on line 145

 

agendaAlterar.php

<?php
	include("conectar.php");

	$sql= "SELECT * FROM agenda ORDER BY id DESC";
	$res= mysql_query($sql,$con);

 		echo "<table width='500' border='0'>";

	while ($linha=mysql_fetch_array($res)){
		$id=$linha['id'];
		$nome=$linha['nome'];
		$cidade=$linha['cidade'];
		$local=$linha['local'];
		$data=$linha['data'];
		$hora = $linha['hora'];

 			echo "<tr>
        		 		<td class='titg'><strong>$nome / </strong><span class='tit'>Data: $data $hora - <a class='link' href=agendaDeletar.php?id=$id>Excluir</a></span></td>
 				</tr>
 				<tr>
   					<td class='tit'><strong>$local / </strong>$cidade</td>
 				</tr>
			<tr>
   					<td class='tit'> </td>
 				</tr>
			";

	}

 		echo "</table>";    

?>

 

no caso, da erro nessa linha:

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

 

o ruim é que no WAMP tudo funcionava ¬¬ ehehe

 

 

Na linha $res= mysql_query($sql,$con);

 

Mude para

 

$res= mysql_query($sql,$con) or die(mysql_error());

 

que ira exibir o que esta errado, o mesmo faça no arquivo de conexao após o mysql_conect() para saber se esta conectando!

Compartilhar este post


Link para o post
Compartilhar em outros sites

eita, achei o erro, era só um caracter invertido mesmo, e não estava conectando ao banco de dados :D

 

agora está quase tudo certo

hoje a noite só vou rever o codigo do login, que ainda nao esta 100% :D

 

mto obrigado douglaspossas e willwalker!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso mesmo, bom menino, viu que revendo o teu código tu mesmo corrige os erros ?

 

Programas sempre são precisos, quem buga é o desenvolvedor. Como um amigo diz: Códigos não erram, quem erra são as pessoas! joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.