Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá amigos.
Vim aqui discutir com vocês um problema que tive agora, e muito sinistro...
Eu faço uma inserção no banco com o arquivo cadastro.php
Ao fim do código eu coloco:
$id = mysqli_insert_id($My);
if($sql_insere){
echo "<script>window.location.href='abre_registro.php?id=$id';</script>";
}
Redireciona normalmente, mas diz que o registro não existe.
Porém se eu selecionar o endereço no browser e der um enter para executar a url de novo ele abre o registro.
Já coloquei um sleep(10); pensando que era porquê o registro ainda não estava no banco, mas não é. Não tem jeito pra mim.
Ele só abre quando eu vou lá no browser e mando ir para a url novamente.
Alguém ja passou por isso?Já tentei assim também... é muito sinistro...
já inseri, dei um sleep(10); e sem IF redirecionei pra pagina do ítem.
Diz que o ítem não existe, dei um var_dump, ele pega todas as variaveis, e o mysqli_num_rows dá 0
De qualquer forma de redirecionamento js que eu fizer ele não funciona, somente se eu fizer manual, tanto na url como num botão.
ja dei um sleep de 10 segundos e redirecionei pra outro php que redireciona pra pagina do item, mas nem com esse redirecionamento deu certo... dá sempre 0 no mysqli_num_rows, doideira hein!
Creio que a questão toda é a variável $id.
Não sei mas está tentando acessar essa variável no arquivo que é redirecionado (no caso abre_registro.php)?
Porque não funciona. Uma VAR só pode ser acessada no mesmo arquivo onde ela é criada.
Faz o seguinte para depuração. No arquivo abre_registro.php comente todo o código que fez e coloque logo no início:
var_dump($_GET) e veja o que a global get executa nesse arquivo.
Se estiver correto deve vim um INTERGER completando o índice **id**.
Ou seja se estiver recebendo o dado corretamente no arquivo. O problema está na forma em que esse dado é manuseado no **abre_registro**.
Remova o echo de redirecionamento do if, ficando assim: