Jump to content


Photo

Endereço Após Usar "action"


  • Faça o login para participar
14 replies to this topic

#1 Tigre

Tigre

    Normal

  • Usuários
  • 118 posts
  • Sexo:Masculino
  • Localidade:Criciúma

Posted 08/11/2007, 10:50

Olá pessoal, gostaria de saber como fazer pra que após usar uma página "action" o campo de endereço fique com o endereço da página que foi aberta, ao invés da página "action".

Vou dar um exemplo pra melhorar a pergunta:

1) estou numa página de um formulário de cadastro;

2) ao clicar em enviar, vai pra página "cadastro_action.php";

3) a acão faz o cadastro e retorna pra página "minhaconta.php" (usando "require")

4) a página "minhaconta" é aberta, mas o endereço fica aparecendo "cadastro_action.php";

Como fazer com que no campo do endereço fique o endereço da página que foi aberta, no caso "minhaconta.php"?

Além de ficar "mais correto" tem o problema de no caso do usuário tentar atualizar a página e aí acaba ativando a página "action" novamente e duplicando o cadastro.

Se alguém der uma dica pra resolver o problema, agradeço.

#2 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 08/11/2007, 12:35

é que você faz um require, ou seja include o "minhaconta" dentro do escopo do "cadastro_action.php".

Faz um hader do tipo refresh

Ao invés de utilizar
require("minhaconta.php");

experiente trocar por
header("refresh: 3; url=minhaconta.php");

claro que terá que verificar se o minhaconta não utiliza nada do cadastro_action.php, caso precise de algo, passe por $_SESSION.

espero que tenha compreendido a idéia.

[]'s

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#3 Tigre

Tigre

    Normal

  • Usuários
  • 118 posts
  • Sexo:Masculino
  • Localidade:Criciúma

Posted 08/11/2007, 14:49

Savior, vou testar pra ver.

Só uma curiosidade: o que significa o número 3 alí no código?

#4 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 08/11/2007, 18:58

Savior, vou testar pra ver.

Só uma curiosidade: o que significa o número 3 alí no código?

Significa 3 segundos. ;)

[]’s :DAté mais

#5 Tigre

Tigre

    Normal

  • Usuários
  • 118 posts
  • Sexo:Masculino
  • Localidade:Criciúma

Posted 09/11/2007, 10:05

Savior, funcionou e ainda por cima resolveu outro probleminha que estava ocorrendo. Obrigado.

Paulo, mas qual o objetivo desses 3 segundos?

#6 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 09/11/2007, 10:14

Paulo, mas qual o objetivo desses 3 segundos?

Terá um delay de 3 segundos até que a requisição da página seja feita. (y)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#7 Tigre

Tigre

    Normal

  • Usuários
  • 118 posts
  • Sexo:Masculino
  • Localidade:Criciúma

Posted 12/11/2007, 10:22

Mas esses 3 segundos é uma espécie de tempo limite? Qual a função dele realmente.

E se passar os 3 segundos e a conexão não foi feita ainda? Dá algum erro?

#8 Noturno

Noturno

    12 Horas

  • Usuários
  • 183 posts
  • Sexo:Não informado

Posted 12/11/2007, 10:34

Ele será executado após 3 minutos que a função foi iniciada kra...
tipo...

carregou

1...

2...

3...

CARREGOU!!!
"Não há maior demonstração de insanidade do q fazer a mesma coisa, da mesma forma, dia após dia, e esperar resultados diferentes"
MCP .NET WebApplications C#
MCP SQL Server 2000
Desenvolvedor Delphi/PHP

#9 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 12/11/2007, 11:56

Actually, 3 segundos, não 3 minutos ...

É bem provável que você tenha que segurar o envio da página, tanto para garantir a execução, mas também para evitar erros na página. Isso pode ser feito usando as funções de buffer do PHP. ob_start() e ob_end_flush().
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#10 Noturno

Noturno

    12 Horas

  • Usuários
  • 183 posts
  • Sexo:Não informado

Posted 12/11/2007, 13:54

isso, 3 segundos, viajei ali -_-'

É segunda feira, disfarça ehauiehauihae
"Não há maior demonstração de insanidade do q fazer a mesma coisa, da mesma forma, dia após dia, e esperar resultados diferentes"
MCP .NET WebApplications C#
MCP SQL Server 2000
Desenvolvedor Delphi/PHP

#11 Tigre

Tigre

    Normal

  • Usuários
  • 118 posts
  • Sexo:Masculino
  • Localidade:Criciúma

Posted 12/11/2007, 14:20

E se deixar por conta do sistema, sem tempo nenhum estipulado? Tem algum problema?

#12 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 12/11/2007, 16:10

Essa eu não sei te responder. Acho que não tem problemas, já que se a consulta demorar para responder o PHP vai ficar esperando até dar timeout. Acho que só então ele vai enviar o header.

ps.: acho que nem enviar o header vai, ele vai dar erro fatal.

Edição feita por: bimonti, 12/11/2007, 16:11.

WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#13 Tigre

Tigre

    Normal

  • Usuários
  • 118 posts
  • Sexo:Masculino
  • Localidade:Criciúma

Posted 13/11/2007, 09:59

Acho que vou deixar em 1 segundo pra agilizar o negócio e ver no que dá.

Bimonti, já que estamos nesse assunto de "action", vc sabe se existe alguma maneira de bloquear a volta da página (depois de usar action) usando o botão do navegador? Isto seria pra evitar que o usuário consiga acessar o action novamente usando o botão do navegador.

Edição feita por: Tigre, 13/11/2007, 10:04.


#14 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 13/11/2007, 14:17

Não tem como cancelar o retorno na página.

Quando você enviar o formulário, vai armazenar esses dados na variável super global $_POST ... então depois de processar o formulário uma vez, use unset($_POST);, assim os dados não vão existir mais e o usuário pode voltar quantas vezes quiser que não vai duplicar cadastros por exemplo. Lógico que você vem que verificar no cadastro se os dados de $_POST estão preenchidos.
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#15 Tigre

Tigre

    Normal

  • Usuários
  • 118 posts
  • Sexo:Masculino
  • Localidade:Criciúma

Posted 13/11/2007, 14:36

Ok, valeu a dica.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq