Ir para conteúdo

POWERED BY:

Arquivado

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

Eduardo_555

Erro de redirecionamento com header("Location:")

Recommended Posts

Olá bom dia!!

 

Pessoas do fórum.

 

Finalizei a programação de uma pagina da internet, quando ela estava na minha maquina rodando com o xampp, estava tudo ok funcionava tudo bem. porem agora upei a mesma para um servidos online para colocá-lo online, porem agora sempre que vou usar o lugar onde efetuo o login no site para publicar noticias ele da o seguinte erro.

 

Warning: Cannot modify header information - headers already sent by (output started at /home/aprsoluc/public_html/bd/funcoes_usuario.php:32) in /home/aprsoluc/public_html/valida.php on line 16

 

Vi na net por ai que ocorre porque o session_start(), e os cokies e os header("Location: ...") devem vir em primeiro lugar no código, porem no meu caso é praticamente impossível o header vir em primeiro lugar , visto que o mesmo esta dentro de um if e else, tentei criar uma função e colocá-la em primeiro lugar e depois apenas chamar dentro do if e else, porem continua igual.

 

E ai como vocês contornam este erro maldito.??????

 

Aqui o codigo onde esta dando o erro!!

<?php
	require_once("bd/funcoes_usuario.php");
	require_once("bd/conexao.php");
	
	
	$email = $_POST["email"];
	$senha = $_POST["senha"];
	
	$usuario = buscausuario($conexao, $email, $senha);
	if($usuario != NULL){
		logausuario($email);
		header("Location:restrito.php");
	}
	else{
		$_SESSION["danger"] = "Senha ou login incorretos.";
		header("Location:login.php");
	}
	die();
?> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá na real eu criei este script onde coloqueui apenas as funçoes de validação e contato com o banco de dados do usuario, portanto so tem codigo php, mas eu do include nele em outros codigos html, tomei o cuidado de colocalos sempre no inicio da pagina antes de qualquer codigo html, mas acho que o problema possa estar aqui.

 

Dei o include antes, porem cheia funçãodepois de um codido html sera??

<?php
	require_once("bd/funcoes_usuario.php");
	require_once("bd/conexao.php");
	
	
	$email = $_POST["email"];
	$senha = $_POST["senha"];
	
	$usuario = buscausuario($conexao, $email, $senha);
	if($usuario != NULL){
		logausuario($email);
		header("Location:restrito.php");
	}
	else{
		$_SESSION["danger"] = "Senha ou login incorretos.";
		header("Location:login.php");
	}
	die();
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

output started at /home/aprsoluc/public_html/bd/funcoes_usuario.php:32

 

Ele te diz até onde está a saída que está causando o erro... como dito um simple espaço em branco causa isto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá vou largar o codigo que vocês sugerem que tenha algum html porque ja revisei ele todinho o unico lugar que tem e bem no meio mas nao iria interferir pois ate deletei lee e nao resolveu o meu problema ohem o codigo se encontrarem agradeço pois estou o dia inteiro procurando este erro. kkk

<?php
	session_start();
	function usuarioestalogado(){
		return isset($_SESSION['usuario_logado']);
	}	
	function verificausuario(){
		if(!usuarioestalogado()){
			$_SESSION['danger'] = "Você nao tem acesso a esta funcionalidade.";
			header("Location:login.php");
			die();
		}
	}
	function usuariologado(){
		return $_SESSION['usuario_logado'];
	}
	function buscausuario($conexao, $email, $senha){
		$senhaMd5=md5($senha);
		$email = mysqli_real_escape_string($conexao, $email);
		$query = "select * from usuarios where nome='{$email}' and senha='{$senhaMd5}'";
		$resultado=mysqli_query($conexao, $query);
		$usuario=mysqli_fetch_assoc($resultado);
		return $usuario;
	}
	function logausuario($email){
	return 	$_SESSION['usuario_logado']=$email;
	}
	
	function logout(){
		return session_destroy();
	}
	?>
	<?php
	function mostraalerta($tipo){
		if(isset($_SESSION[$tipo])){
	?>
		<p class="alert-<?=$tipo?>"><?=$_SESSION[$tipo]?></p>
	<?php
		unset($_SESSION[$tipo]);
			}
		}
	?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

A linha 32 é exatamente a seguinte:

?> -31

<?php -32

 

Primeiro que isso é inútil, fechar a tag e depois abrir não faz sentido, segundo que copiando/colando o que você postou o editor mostra que existem espaços em branco. Retire isso dai e remova a identação de todas as tags de abertura.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas so que tipo eu mantive o html, ate porque preciso dele para exibir uma informaçao quando efetuo o header ficou assim e funcionou normalmente.

	?>
	
	<p class="alert-<?=$tipo?>"><?=$_SESSION[$tipo]?></p>	
	
	<?php
		unset($_SESSION[$tipo]);
			}
		}
	?>

So evitei de fechar a tag php e abrir novamente, fis isos um unica vez.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
    • Por violin101
      Caros amigos, saudações
       
      Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida.
       
      Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo:
       
      Data Atual: 15/11/2024
                                           Vencimento
      Fornecedor.....................Data.....................Valor
      Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja
      Fornecedor_1...........01/01/2025..........R$ 130,00
      Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo
      Fornecedor_2...........15/01/2025..........R$ 230,00
      Fornecedor_3...........20/12/2024..........R$ 150,00
       
      Alguém tem alguma dica ou leitura sobre este assunto ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a ajuda dos amigos, mas preciso entender uma processo que não estou conseguindo sucesso.

      Como mencionado no Título estou escrevendo um Sistema Web para Gerenciamento de Empresa.
       
      Minha dúvida, que preciso muito entender:
      - preciso agora escrever a Rotina para Emissão de NFe e essa parte não estou conseguindo.
       
      tenho assistido alguns vídeos e leituras, mas não estou conseguindo sucesso, já fiz toda as importações das LIB da NFePhp conforme orientação.

      Preciso de ajuda.

      Algum dos amigos tem conhecimento de algum passo-a-passo explicando a criação dessa rotina ?

      tenho visto alguns vídeos com LARAVEL, mas quando tento utilizar e converter para PHP+Codeiginter, dá uma fila de erros que não entendo, mesmo informando as lib necessárias.

      Alguns do amigo tem algum vídeo, leitura explicando essa parte ?

      Grato,

      Cesar.
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer ao auxílio dos amigos, mas preciso entender e resolver um problema.
       
      Tenho uma Rotina que o usuário seleciona os produtos que deseja para requerer ao setor responsável.
       
      O usuário escolhe um produto qualquer e Clicla em um button para incluir a lista.

      O problema que estou enfrentando é que após escolher o produto e teclar ENTER o Sistema já salva no BD.
       
      Gostaria de criar uma Tecla de Atalho, para quando incluir/escolher o produto na lista, o usuário tecla como exemplo:
      ALT+A  para agregar a lista
      ALT+S para salvar a lista de itens desejados.

      Assim, quando teclar enter, o sistema não dispara o GRAVAR na Base de Dados.

      Grato,

      Cesar
       
       
       
×

Informação importante

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