Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia. Pessoal, quando eu gravo novos registros através do formulário o sistema repete esses dados quando clico no F5. Eu fazia um redirecionamento para pagina inicial e um die() depois do insert, mas com o pdo nao esta funcionando. O que pode ser feito pra evitar isso?
tentei isso:
header('Location: cadFuncoes.php');
die();
apos o $stm->execute();
Funcionva quando nao usava pdo. agora nao acontece nada e continua enviando os dadosTem algo errado. Poste o código. Dentro das tag CODE por favor.
public function insert()
{
try{
$sql = "INSERT INTO $this->tabela (nva_nome, nva_inlcuir, nva_excluir, nva_visualizar, nva_dataCad, nva_status) VALUES (:nva_nome, :nva_incluir, :nva_excluir, :nva_visualizar, :nva_dataCad, :nva_status)";
$stm = DB::prepare($sql);
//substituir
$stm->bindValue(':nva_nome', $this->getNva_nome());
$stm->bindValue(':nva_incluir', $this->getNva_incluir());
$stm->bindValue(':nva_excluir', $this->getNva_excluir());
$stm->bindValue(':nva_visualizar', $this->getNva_visualizar());
$stm->bindValue(':nva_dataCad', $this->getNva_dataCad());
$stm->bindValue(':nva_status', $this->getNva_status());
//Gravando o log
DB::setLogger(new TLoggerTXT('./tmp/arquivo.txt'));//grava o rquivo de log
DB::log("Inserindo registro");
DB::log($sql);
return $stm->execute();
header('Location: cadFuncoes.php');
die();
} catch (ErrorException $ex)
{
echo "Erro : ".$ex->getMessage();
}
}
Veja, o insert eh executado com uma instancia da classe no formulario...ele executa direito, salva no banco, mas nao direciona.Você está dando o retorno no execute. Por isso não redireciona. Retire o header e o die daí. Coloque o redirecionamento após a chamada da função.
$var->insert();
header();>
1 hora atrás, PAULO ROBERTO NOGUEIRA disse:
$sql = "INSERT INTO $this->tabela (nva_nome, nva_**inlcuir**
@PAULO ROBERTO NOGUEIRA
digitou errado o **incluir**, não seria **nva_incluir ?**Esse nome esta errado mas foi o cara que fez o banco que digitou errado. O simulado é dividir o pessoal em equipes e cada uma fica com uma parte, o "DBA" digitou errado o campo...vou mudar qdo pegar o projeto todo. Obrigado.
Sobre o header agora ele retorna um erro:
Warning: Cannot modify header information - headers already sent by (output started at C:\wamp64\www\b2ava.com.br\menu.php:48) in C:\wamp64\www\b2ava.com.br\cadFuncoes.php on line 53
Olha a gambiarra pra dar certo:
echo "<script>";
echo "location.href='cadFuncoes.php' ";
echo "</script>";
um script js que redireciona para a propria pagina....ate resolver de outro jeito vai ficar assim
se você puder me ajudar ainda eu agradeço, vou continuar o projetoColoque o header no return...
//Gravando o log
DB::setLogger(new TLoggerTXT('./tmp/arquivo.txt'));//grava o rquivo de log
DB::log("Inserindo registro");
DB::log($sql);
$stm->execute();
return header('Location: pagina.php');mesmo erro
Warning: Cannot modify header information - headers already sent by
Ja Tive problema com o Header da mesma forma, minha solução foi fazer com JAVASCRIPT.
Coloque apos o execute do PDP
echo '<script>
location.href="pagina.php"
</script>';
O erro de hedaer ocorre provavelmente porque você possui alguma saída no mesmo script antes do header.
Foi o que eu fiz Thalisson Marthinele. Ta funcionando desse forma...
Pessoal...continuando rs...Tenho um função javascript que pega os dados do registro e encaminha para um form modal para que o usuario possa alterar as informacoes, basicamente ele pega os dados da linha da tabela, chama a funcao passando esses dados nos parametros. Bom dai a funcao encaminha esses dados para o form do modal usando o ID de cada componente. Acontece que se o componente for do tipo text, blz, ele encaminha e o modal aparece preenchido, mas eu tenho campos do tipo radio e enviando o valor ao componente do tipo radio ele nao aceita, simplesmente aparece sem estar checked...o que eu preciso eh que quando eu clicar para alterar a funcao encaminhe ao form do modal todos os dados completos preenchidos para que o usuario altere. o que for text com seus respectivo valor, o que for radio marcado o que estiver marcado. Entenderam?
Crie um novo tópico para sua dúvida, na área de JavaScript. Você precisa fazer a condição IF no seu JS para os valores e então marcar o rádio ou checkbox.
Desculpe..vou criar sim na parte de js
Um redirecionamento já resolve.