Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

ProgramadorMarco

Ir para outra pagina automaticamente

Mensagens Recomendadas

ProgramadorMarco

Boas!

Eu tenho este codigo e quero que depois no final de executar o codigo venha automaticamente para outra pagina, sem ter que carregar em lado nenhum, A intensão é inserir esses dados dar a informação de que os dados foram bem inseridos e retornar para uma outra pagina automaticamente

Obrigado desde Ja!

<?php
/*
* faz a conexao ao banco
* e seleciona a base de dados
*/
$conexao = mysql_connect('mysql.serversfree.com', 'u706755866_sitec', '123456')
or die ("Erro na conexão ao banco de dados.");
$db = mysql_select_db("u706755866_sitec")
or die ("Erro ao selecionar a base de dados.");

/*
* monta e executa consulta em SQL
*/

$sql = "UPDATE
datarefeicoes
SET

data='".mysql_real_escape_string($_POST['data'])."'
WHERE
id = '1' ";
$resultadod = mysql_query($sql)
or die ("Erro ao alterar sopa.");

$sql = "UPDATE
rerefeicoes
SET
segunda='".mysql_real_escape_string($_POST['segundas'])."',
tersa='".mysql_real_escape_string($_POST['tersas'])."',
quarta='".mysql_real_escape_string($_POST['quartas'])."',
quinta='".mysql_real_escape_string($_POST['quintas'])."',
sexta='".mysql_real_escape_string($_POST['sextas'])."'
WHERE
id = '1' ";
$resultados = mysql_query($sql)
or die ("Erro ao alterar sopa.");

$sql = "UPDATE
rerefeicoes
SET
segunda='".mysql_real_escape_string($_POST['segundap'])."',
tersa='".mysql_real_escape_string($_POST['tersap'])."',
quarta='".mysql_real_escape_string($_POST['quartap'])."',
quinta='".mysql_real_escape_string($_POST['quintap'])."',
sexta='".mysql_real_escape_string($_POST['sextap'])."'
WHERE
id = '2'";
$resultadop = mysql_query($sql)
or die ("Erro ao alterar prato.");

/*
* faz a conexao ao banco
* e seleciona a base de dados
*/
$conexao = mysql_connect('mysql.serversfree.com', 'u706755866_sitec', '123456')
or die ("Erro na conexão ao banco de dados.");
$db = mysql_select_db("u706755866_sitec")
or die ("Erro ao selecionar a base de dados.");

/*
* monta e executa consulta em SQL
*/
$sql = "UPDATE
rerefeicoes
SET
segunda='".mysql_real_escape_string($_POST['segundasb'])."',
tersa='".mysql_real_escape_string($_POST['tersasb'])."',
quarta='".mysql_real_escape_string($_POST['quartasb'])."',
quinta='".mysql_real_escape_string($_POST['quintasb'])."',
sexta='".mysql_real_escape_string($_POST['sextasb'])."'
WHERE
id = '3'";
$resultadosb = mysql_query($sql)
or die ("Erro ao alterar sobremesa.");
?>
<h1>refeicao alterada com sucesso!</h1>

Editado por brunoais
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Virneto

Eu utilizo algo assim:

No final do script que apresentáste:

<?php
$url = 'www.a_pagina_onde_quero_ir.com';
echo'<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">';

?>

Editado por brunoais
geshi

"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

pensa bem, se redireccionares para outra página automaticamente (algo perfeitamente possível) o utilizador não vai ver a mensagem de sucesso/insucesso ...


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ProgramadorMarco

Pois tambem é verdade, não ha uma maneira de aparecer a mensagem e depois, clicando ok por exemplo, ele ir para a outra pagina?

Editado por ProgramadorMarco

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Virneto

É verdade que o uttilizador não vê a página de sucesso.

<button onclick="window.location = 'http://www.google.com'" >Carrega aqui</button>

ok @Happy, então para um redirecionamento automático após 5 segundos posso fazer assim?

setTimeout(function() {
var url = 'http://www.minhapagina.com";
 "window.location = url";
 }, 5000);


"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

isso funciona se, corrigires os erros de javascript

existe também a solução HTML que apresentaste no teu primeiro post (bom para pessoas que tem o javascript desligado), mas tens de dar mais tempo:

<meta http-equiv="refresh" content="5;url=http://www.minhapagina.com">


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Virneto

Até agora eu tinha implementado como apresentei em cima, mas é verdade que também não estava satisfeito com o facto dos utilizadores praticamente não conseguirem ver a página do sucesso. Cheguei a utilizar usleep(), mas não resultava bem.

Até podia colocar em Javascript, mas tendo em conta o que dizes, vou continuar com o php [no need to explain that.. :confused: ] e acrescentar o parâmetro de acordo com o teu exemplo.

Grazie!!


"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Th3Alchemist

E porque não

<?php
header("refresh: 5; url=http://www.minhapagina.com");
?>

?

Editado por Th3Alchemist

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Virneto

@Th3Alchemist: estás a dar uma alternativa ou há vantagens na solução que apresentas?


"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pikax

Vai dar ao mesmo, os 2 mandam headers ao browser para mudar de pagina, a diferenca e' que um e' em php e o outro e' com tags de html.


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Virneto

Vai dar ao mesmo.(...).

Neste caso mantenho o código que já tinha.

Já apliquei a proposta do @Happy nos meus scripts de sucesso após envio de contacto e na página de erro.

São 5 segundos que fazem muita diferença em termos da elegância de comportamento da página!!!

é tipo... antes estava nice! mas agora está Swweeet!!!!

Thank Ya!! :thumbsup:

ps.: tenho a sensação que roubei o tópico ao @ProgramadorMarco...mas provavelmente ele já foi implementar a solulção também!! :P


"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
cusco

Olá, a melhor maneira é enviar um header e ter um die(); logo de seguida

header('Location: http://url.final/msg=lala');

nota o msg=lalala que apanhas no novo url, como mensagem de sucesso ou não sucesso

para isto não podes fazer echo de nada, o header terá de ser enviado antes de conteudo.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

Olá, a melhor maneira é enviar um header e ter um die(); logo de seguida

header('Location: http://url.final/msg=lala');

nota o msg=lalala que apanhas no novo url, como mensagem de sucesso ou não sucesso

para isto não podes fazer echo de nada, o header terá de ser enviado antes de conteudo.

o que é que essa solução tem haver com o tempo de espera antes do redireccionamento ?


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Th3Alchemist

E porque não

<?php
header("refresh: 5; url=http://www.minhapagina.com");
?>

?

@Th3Alchemist: estás a dar uma alternativa ou há vantagens na solução que apresentas?

Simplicidade...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
brunoais

Simplicidade...

Diria mais atribuição de responsabilidades. Quem faz os headers HTTP é o servidor, não o próprio HTML. Na minha opinião, o meta@http-equiv é algo que nunca devia de ter sido inventado. Mas existe...


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.