Ir para conteúdo

POWERED BY:

Arquivado

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

azeredo

Eu errei no uso do session_start

Recommended Posts

Está aparece estas 2 mensagens ao acessar a página que tem o session_start();

 

Pelo que já procurei aqui no fórum, vi que poderia ser por o session_star não estar no início da página, sem nada antes dele.. mas fiz isso e a mensagem é a mesma....

 

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /var/www/apache2-default/www.maxximus.com.br/maxescola/teste/escola.php:7) in /var/www/apache2-default/www.maxximus.com.br/maxescola/teste/verifica.php on line 27

 

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/apache2-default/www.maxximus.com.br/maxescola/teste/escola.php:7) in /var/www/apache2-default/www.maxximus.com.br/maxescola/teste/verifica.php on line 27

 

e o verifica.php

<?		error_reporting(E_ALL);	include ("conexao.php");	if ($_POST["rm"] == "")	{		echo ("<script>alert('RM deve ser informado!')</script>");		include("index.php");		exit;	}	else	{		$rm_digitado = $_POST["rm"];		$sql_verifica = "select codigo, aluno, registromatricula, anoletivo, grade from matricul where registromatricula =						 $rm_digitado";		$consulta_verifica = ibase_query($conexao,$sql_verifica);		$linha_verifica = ibase_fetch_object($consulta_verifica);		if ($linha_verifica == true)		{			$rm_banco = $linha_verifica->REGISTROMATRICULA;			if ($rm_digitado == $rm_banco)			{				$aluno_cod = $linha_verifica->ALUNO;				$matricula_cod = $linha_verifica->CODIGO;				$anoletivo_cod = $linha_verifica->ANOLETIVO;				$grade_cod = $linha_verifica->GRADE;								session_start();				$_SESSION['aluno'] = $aluno_cod;				$_SESSION['rm_aluno'] = $rm_digitado;								}		}		else		{			echo ("<script>alert('RM incorreto!')</script>");			include("index.php");			exit;		}	}?>

Tentei também criando um session.php com o conteúdo do session_start e tal, e ali dar um include mas a mensagem foi a mesma, só mudou a página de verifica para session....

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

então, como eu disse, já fiz isso, coloquei ele ante do error_reporting(E_ALL); para testar mas deu no mesmo...Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

A ae amigo, beleza ?As sessions não podem ser iniciadas no meio de um script.Seu script deve ficar assim:

<? Session_Start(); ?><? error_reporting(E_ALL); include ("conexao.php"); if ($_POST["rm"] == "") { echo ("<script>alert('RM deve ser informado!')</script>"); include("index.php"); exit; } else { $rm_digitado = $_POST["rm"]; $sql_verifica = "select codigo, aluno, registromatricula, anoletivo, grade from matricul where registromatricula = $rm_digitado"; $consulta_verifica = ibase_query($conexao,$sql_verifica); $linha_verifica = ibase_fetch_object($consulta_verifica); if ($linha_verifica == true) { $rm_banco = $linha_verifica->REGISTROMATRICULA; if ($rm_digitado == $rm_banco) { $aluno_cod = $linha_verifica->ALUNO; $matricula_cod = $linha_verifica->CODIGO; $anoletivo_cod = $linha_verifica->ANOLETIVO; $grade_cod = $linha_verifica->GRADE; $_SESSION['aluno'] = $aluno_cod; $_SESSION['rm_aluno'] = $rm_digitado; } } else { echo ("<script>alert('RM incorreto!')</script>"); include("index.php"); exit; } }?>

Boa SorteFalou !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem mais, se por acaso você estiver usando uma include dessa verifica.php em outra página, só vai adiantar se esse include também estiver no início da página..Falow...

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao tem problema quanto ao inicio o que nao pode é ter saida html

 

pode ficar assim:

 

<?php

session_start();

error_reporting(E_ALL);

 

ou

 

<?php

error_reporting(E_ALL);

session_start();

 

o que nao pode é ter saida HTML veja no seu conexao.php se nao tem nada dentro dele

 

mas só pra completar pode usar o session_start(), em qualquer lugar do codigo desque controle a saida do html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo, descule a ignorância.. mas como assim saída html? Não pode ter nada html depois do start?No conexão não tem nada de html, é apenas um connect no bd com usuário e senha...Tentei do modo acima por no inicio apenas <? session_start(); ?> agora não aparece a mensagem de erro, mas o procedimento é o mesmo, tenho que entrar no link, dar um voltar - refresh e entrar de novo.. hheheObrigado a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

saida html é qualquer codigo html exemplo:

 

*

* echo "alerta você errou";

 

se você da um echo você ja esta gerando uma saida html

 

nao pode ter nenhuma saida html antes do session_start()

 

prefira usar as tags completas <?php alem de nao ter problerma de compatibilidade, ela é compativel com xml

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, modifique para o tag completo....

 

Então não estou entendendo o porque de estar dando essa mensagem já que antes do session_start não tem nada de html, mesmo no local onde pus no inicio quanto agora que está no topo da página isolado....

 

Fui até verificar o conexao.php mas ele só tem isso

<?php	$conexao = ibase_connect("10.1.1.6:c:/escola/Maxximus.GDB","SYSDBA","masterkey");?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas ponde o session_start depois de error_reporting(E_ALL); a mensagem continua sendo a mesma....

Compartilhar este post


Link para o post
Compartilhar em outros sites
Tentei do modo acima por no inicio apenas session_start(); ?> agora não aparece a mensagem de erro, mas o procedimento é o mesmo, tenho que entrar no link, dar um voltar - refresh e entrar de novo.. hhehe

 

entao ta aparecendo a mensagem de erro ou nao ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim... se eu colocar no topo da página <?php session_start(); ?> e depois o resto, não aparece... mas se deixar

<?php error_reporting(E_ALL);session_start();e o resto
daí aparece as mensagens

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum....

<!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=iso-8859-1" /><title>Untitled Document</title></head><?php 	include("verifica.php");	?><body><p><a href="teste.php">Boletim</a></p><p><a href="biblioteca.php">Biblioteca</a></p></body></html>

Eita... realmente erra isso...... valeu mesmo!!

 

Vou tomar sempre esse cuidade de não ter nada html antes de um include de uma página que tenha session....

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.