Ir para conteúdo

POWERED BY:

Arquivado

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

Douglas Fabiano

[Resolvido] Erro de Redirecionamento de Página

Recommended Posts

Boa noite turma.

 

Coloquei uma linha no meu código que após ele inserir dados em uma base, DIRECIONE para a página index.php, porem ele chega a inserir a informação, e quando vai direcionar aparece o seguinte erro:

 


Warning: Cannot modify header information - headers already sent by (output started at c:\domains\dominio.com.br\wwwroot\php\gravar.php:8) in c:\domains\dominio.com.br\wwwroot\php\gravar.php on line 15

 

Vejam o código da minha página que insere as informações e DIRECIONA APÓS INCLUIR (lembrando que apenas o redirecionamento não está funcionando)

 


<?php
require_once 'conexao_1.php';
$sql = "insert into principal (nome,fone) VALUES ('$nome','$fone')";
mysql_query($sql);
header("Location: index.php"); //LINHA QUE CONTEM O ERRO??????
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php
require_once 'conexao_1.php';
$sql = "insert into principal (nome,fone) VALUES ('$nome','$fone')";
mysql_query($sql);
header("Location: ../index.php"); //LINHA QUE CONTEM O ERRO?????? 

//COLOQUEI OS ../ PARA INDICAR QUE O INDEX.PHP ESTÁ UM NÍVEL A BAIXO DA PASTA ATUAL

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

pelo que entendi o index.php está em "c:\domains\dominio.com.br\wwwroot" e o grava.php está em "c:\domains\dominio.com.br\wwwroot\php\", para retornar para o "c:\domains\dominio.com.br\wwwroot" você tem que indicar que a pagina está um nível abaixo da pasta atual que é "c:\domains\dominio.com.br\wwwroot\php\", assim será redirecionado para "c:\domains\dominio.com.br\wwwroot", que é o local onde está o index.php.

para indicar um nível abaixo use "../", se estiver 2 níveis abaixo "../../" e porai vai.

 

ainda não resolveu não.continua mostrando o mesmo erro.

Vale lembrar que a página "index.php" está na mesma pasta de arquivos...

 

(output started at c:\domains\dominio.com.br\wwwroot\php\gravar.php:8) in c:\domains\dominio.com.br\wwwroot\php\gravar.php on line 15

aqui tem erro na linha 8 e 15 do gravar.php. coloca o código inteiro do "gravar.php" pra gente dar uma olhada.

Compartilhar este post


Link para o post
Compartilhar em outros sites


<!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>Grava</title>

</head>

<body>

<?php

//Chamo a conexão do banco de dados:

require_once './conexao_1.php';

// instrução para adicionar um novo registro

$sql = "insert into principal (nome,fone) VALUES ('$nome','$fone')";

//Abaixo executa a inclusão da linha acima de dados

mysql_query($sql);

header("Location: ../index.php");

?>

</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, aqui retornou para o index.php normal sem erros, alias não seria "conexao_1.php" aquele "./" faz parte do nome do arquivo ?

também, você não precisa do html nesse arquivo. Coloca só o código php.

<?php
//Chamo a conexão do banco de dados:
require_once 'conexao_1.php';
// instrução para adicionar um novo registro 
$sql = "insert into principal (nome,fone) VALUES ('$nome','$fone')";
//Abaixo executa a inclusão da linha acima de dados
mysql_query($sql);
header("Location: ../index.php");
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está aparecendo mesmo erro ainda, existe algum outro código para redirecionamento de página até a inclusão do registro?

 

<?php
require_once 'conexao_1.php';
$sql = "insert into principal (nome,fone) VALUES ('$nome','$fone')";
mysql_query($sql);
header("Location: ../index.php");
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

em qual linha aparece o erro? dependendo da linha pode não ser o redirecionamento e sim a conexao.php ou até mesmo o comando SQL. continue postando até seu problema ser resolvido!

Compartilhar este post


Link para o post
Compartilhar em outros sites

conexao_1.php

<?php 
$mysql_host = "localhost"; // não esqueça de alterar esses dados.
$mysql_database = "sua database"; // não esqueça de alterar esses dados.
$mysql_user = "root";// não esqueça de alterar esses dados.
$mysql_password = "";// não esqueça de alterar esses dados.
$conn = mysql_connect($mysql_host, $mysql_user, $mysql_password);
$conected = mysql_select_db($mysql_database,$conn);
?>

grava.php

<?php
require_once ('conexao_1.php');
$sql = "insert into principal (nome,fone) VALUES ('$nome','$fone')";
mysql_query($sql,$conn);
header("Location: ../index.php"); //LINHA QUE CONTEM O ERRO?????? 

//COLOQUEI OS ../ PARA INDICAR QUE O INDEX.PHP ESTÁ UM NÍVEL A BAIXO DA PASTA ATUAL

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O arquivo conexão está correto pois eu condigo fazer consulta utilizando o mesmo arquivo, e essa mesma página chega a INCLUIR OS DADOS DOS CAMPOS ou seja dá o erro no redirecionamento mesmo só essa linha mesmo. Linha 5

 

header("Location: ../index.php"); //LINHA QUE CONTEM O ERRO??????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, dá uma olhada melhor nos códigos que te passei (conexao_1.php),"$conn" foi usado no gravar.php em "mysql_query($sql,$conn);

", as vezes o erro acusado está na linha anterior a que foi informada. de uma chegada no comandos SQL. teste o redirecionamento de uma forma simples para confirmar que o header("Location: ../index.php"); está funcionando legal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu já falei em 2 outros posts, o problema é que tem saída HTML antes do header.

 

Errado

<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<?php
header("Location: ../index.php");
?>
</body>
</html>

Certo

<?php
header("Location: ../index.php");
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
</body>
</html>

Outra coisa. Se você só quer redirecionar, não tem necessidade de colocar <html><body> e afins.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Pessoal, agradeço a paciência,, vms lá...]

 

Kratos os códigos estão de acordo até porque ELE FAZ A INCLUSÃO dos dados quando submeto o formulário,,, realmente está na página gravar.php

 

 

Carlos Eduardo: Agora na página gravar.php estou utilizando apenas php puro sem html, mesmo assim não deu certo, veja como ficou o código agora (sem html):

 


<?php
require_once 'conexao_1.php';
$sql = "insert into principal (nome,fone) VALUES ('$nome','$fone')";
mysql_query($sql);
header("Location: ../index.php");
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tirei todos os código html da conexão tb vejam como ficou "conexao_1.php":

 


<?
//abaixo cria variáveis para melhor trabalhar o código
$db_local = "localhost";
$db_usuario = "usuario"; // USUÁRIO FANTASIA
$db_pass = "senha"; // SENHA FANTASIA
$db_base = "banco"; // BANCO FANTASIA

//estabele abaixo a conexão com a base
$conexao = mysql_connect ($db_local,$db_usuario,$db_pass);
mysql_select_db($db_base, $conexao) or die ("Erro:" . mysql_error()); 
// essa função acima informa o tipo do erro ocorrido

echo "Conexão Estabelecida"
//acima mostra que deu certo
?>

 

Agora tirei todo o código html da página "gravar.php", vejam o código:

 


<?php
require_once 'conexao_1.php';
$sql = "insert into principal (nome,fone) VALUES ('$nome','$fone')";
mysql_query($sql);
header("Location: ../index.php");
?>

O mesmo assim não está direcionando, sendo que agora não tenho nenhum marcação HTML..

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamos fazer um teste SIMPLES:

coloque esse arquivo em wwwroot/index.php

<html>
<body>
<a href="php/gravar.php">php/gravar.php</a>
<?php @$veio = $_GET['veio_de']; echo "<br />Veio de = ".$veio; ?>
</body>
</html>

agora coloque esse arquivo na pasta wwwroot/php/gravar.php

<?php
header("Location: ../index.php?veio_de=php/gravar.php");
?>

no meu teste retornou corretamente informando que veio de lá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha... fica difícil te ajudar assim, porque eu passei o link no post #3 e estamos no post #19, com um erro que, se tivesse lido o link que eu te passei, já teria resolvido...

 

No link que eu te passei...

O erro está sendo indicado pela seta vermelha.

Existe uma quebra de linha antes da tag de abertura do PHP.

A quebra de linha envia um output (saída) ao browser cliente. Ao enviar qualquer tipo de saída, um cabeçalho é enviado também.

 

Agora, olha o seu código...


<?php
require_once 'conexao_1.php';
$sql = "insert into principal (nome,fone) VALUES ('$nome','$fone')";
mysql_query($sql);
header("Location: ../index.php");
?>

Veja que existe uma quebra de linha no início da página, antes do bloco de códigos PHP. Ali é enviado um cabeçalho, o que dispara o erro.

 

Carlos Eduardo

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.