Autor Tópico: mantendo dados no formulário depois do submit  (Lida 13882 vezes)

Offline maurov

  • Usuário Ubuntu
  • *
  • Mensagens: 446
    • Ver perfil
mantendo dados no formulário depois do submit
« Online: 07 de Junho de 2011, 17:51 »
Como faço para manter os dados digitados no formulário após o submit? Defino um:
Citar
<input value="<?php print $username>" type="text" ...> , no formulário de login, por exemplo?
Creio precisar inserir um:
Citar
<php?
...
print $username
..
?>
Não achei a lógica da coisa

Offline maurov

  • Usuário Ubuntu
  • *
  • Mensagens: 446
    • Ver perfil
Re: mantendo dados no formulário depois do submit
« Resposta #1 Online: 09 de Junho de 2011, 16:28 »
Outra ideia que achei foi a de gerar uma variável de session uma linha antes de executar o submit do POST e depois fazer um echo desta variavel session no form.
Como vocês fazem? Mudam o VALUE do campo no form ou fazem echo em cada campo?
[ ]

Offline fpissarra

  • Usuário Ubuntu
  • *
  • Mensagens: 246
    • Ver perfil
    • Lost in the e-Jungle
Re: mantendo dados no formulário depois do submit
« Resposta #2 Online: 09 de Junho de 2011, 20:11 »
Outra ideia que achei foi a de gerar uma variável de session uma linha antes de executar o submit do POST e depois fazer um echo desta variavel session no form.
Como vocês fazem? Mudam o VALUE do campo no form ou fazem echo em cada campo?
[ ]

Quanto mais coisas você manter na sessão, maior vai ser o consumo de memória e trafêgo... Mantenha o mínimo possível!

Offline maurov

  • Usuário Ubuntu
  • *
  • Mensagens: 446
    • Ver perfil
Re: mantendo dados no formulário depois do submit
« Resposta #3 Online: 10 de Junho de 2011, 10:59 »
caso a resposta possa ser longa, ou exigir um conhecimento extra, aceito sugestões de locais de estudo onde possa achar resposta para esta questão de manter os dados no fomulário depois do submit no form.
[ ]

Offline agente100gelo

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.369
  • @Ceará
    • Ver perfil
Re: mantendo dados no formulário depois do submit
« Resposta #4 Online: 10 de Junho de 2011, 11:43 »
O conceito está correto. O problema é que você está usando variáveis globais que não vem por padrão no PHP, nem é uma boa ideia.

Correto:
Código: [Selecionar]
<input value="<?php echo $_POST[username]>" type="text" ...>
Advogado e analista de sistema cearense.
Twitter: @glaydson

Offline maurov

  • Usuário Ubuntu
  • *
  • Mensagens: 446
    • Ver perfil
Re: mantendo dados no formulário depois do submit
« Resposta #5 Online: 13 de Junho de 2011, 12:49 »
O sistema tem um arquivo de formulário e outro arquivo de inserção, php.
Com o código:
Citar
<input value="<?php echo $_POST[nome]; ?>" type="text" ...>
o dado digitado no formulário não aparece na tela.

Para testar, criei (mesmo não sendo indicado) um $_SESSION[nome]=$_POST[nome]; no início , e com:
Citar
<input type="text" name="nome" value="<?php echo "$_SESSION[nome]"; ?>">
e aparece o valor no formulário.

Por orientações recebidas no fórum, prefiro fazer direto o POST. Só não sei porque ele não mostra o dado digitado.

Offline agente100gelo

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.369
  • @Ceará
    • Ver perfil
Re: mantendo dados no formulário depois do submit
« Resposta #6 Online: 13 de Junho de 2011, 13:21 »
O seu form tá assim:
<form METHOD="POST">?
Advogado e analista de sistema cearense.
Twitter: @glaydson

Offline maurov

  • Usuário Ubuntu
  • *
  • Mensagens: 446
    • Ver perfil
Re: mantendo dados no formulário depois do submit
« Resposta #7 Online: 13 de Junho de 2011, 13:50 »
sim,
Citar
<form action="insfup.php" method="post" name="Mural" id="Mural">
<input type="text" name="nome" value="<?php echo "$_SESSION[nome]"; ?>">

se troco o session por post, já era.

Offline maurov

  • Usuário Ubuntu
  • *
  • Mensagens: 446
    • Ver perfil
Re: mantendo dados no formulário depois do submit
« Resposta #8 Online: 13 de Junho de 2011, 15:58 »
fiquei com a impressão de que o script em php do formulário perde o post por ir até outro arquivo realizar a operação. Não sei se pode ser isso.

Offline fpissarra

  • Usuário Ubuntu
  • *
  • Mensagens: 246
    • Ver perfil
    • Lost in the e-Jungle
Re: mantendo dados no formulário depois do submit
« Resposta #9 Online: 13 de Junho de 2011, 16:54 »
O sistema tem um arquivo de formulário e outro arquivo de inserção, php.
Com o código:
Citar
<input value="<?php echo $_POST[nome]; ?>" type="text" ...>
o dado digitado no formulário não aparece na tela.

Para testar, criei (mesmo não sendo indicado) um $_SESSION[nome]=$_POST[nome]; no início , e com:
Citar
<input type="text" name="nome" value="<?php echo "$_SESSION[nome]"; ?>">
e aparece o valor no formulário.

Por orientações recebidas no fórum, prefiro fazer direto o POST. Só não sei porque ele não mostra o dado digitado.

Só por curiosidade... você usou como está ($_POST[nome]) ou tentou $_POST["nome"], com o nome do input field entre aspas?

http://php.net/manual/en/reserved.variables.post.php

Offline maurov

  • Usuário Ubuntu
  • *
  • Mensagens: 446
    • Ver perfil
Re: mantendo dados no formulário depois do submit
« Resposta #10 Online: 14 de Junho de 2011, 09:34 »
Sem aspas, formato:
value="<?php echo "$_POST[nome]"; ?>"
aparece o campo em branco.

Com aspas dentro dos colchetes, no formato:
"<?php echo "$_POST['nome']"; ?>
não aparece nada, nem o formulário, tipo erro de php.

Offline agente100gelo

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.369
  • @Ceará
    • Ver perfil
Re: mantendo dados no formulário depois do submit
« Resposta #11 Online: 14 de Junho de 2011, 10:04 »
Coloca aí todo o código da página.
Advogado e analista de sistema cearense.
Twitter: @glaydson

Offline maurov

  • Usuário Ubuntu
  • *
  • Mensagens: 446
    • Ver perfil
Re: mantendo dados no formulário depois do submit
« Resposta #12 Online: 14 de Junho de 2011, 11:09 »
Tem um header no final do login.php. Este login é chamado por um require nas telas de inserção. Parece que isto está sendo problemático. Vou tentar a alterar e volto aqui. Segura.

Offline agente100gelo

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.369
  • @Ceará
    • Ver perfil
Re: mantendo dados no formulário depois do submit
« Resposta #13 Online: 14 de Junho de 2011, 13:53 »
Vê se não tem um form anterior sem ser fechado </form>.
Outra, altera para method=GET e veja as variáveis na URL chamada.
Advogado e analista de sistema cearense.
Twitter: @glaydson

Offline maurov

  • Usuário Ubuntu
  • *
  • Mensagens: 446
    • Ver perfil
Re: mantendo dados no formulário depois do submit
« Resposta #14 Online: 14 de Junho de 2011, 16:51 »
Parece que o problema está na arquitetura do sistema, que está assim:
index.html -> tem form que possui action=login.php
setvar.php -> pega usuario e senha do post e guarda em session (para poder executar de novo nos require seguintes)
login.php -> abre conexão mysql, seleciona banco e redireciona via header:location para cadastro.html
cadastro.html -> tem form que possui action=inserecad.php
inserecad.php -> tem um require login.php

Quando o inserecad.php é executado, faz require do login.php cujo header faz voltar ao cadastro.php, com tela em branco.
A arquitetura melhor a usar parece não ser esta.