Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1073
Sexo: Masculino
Localização: Ourinhos, SP

Input type hidden não passa valores

02-05-2013 07:57

Olá! Bom dia! Preciso de ajuda numa situação com formulários.

Tenho o seguinte formulário, onde os campos input são do tipo text, e que funciona corretamente:

Arquivo 1.php
<html> <body>   <form action="2.php" method="post"> Name: <input type="text" name="fname"> Age: <input type="text" name="age"> <input type="submit"> </form>   </body> </html>  

Arquivo 2.php
<html> <body>   Welcome <?php echo $_POST["fname"]; ?>!<br> You are <?php echo $_POST["age"]; ?> years old.   </body> </html>  

Transformo os campos input do tipo text para o tipo hidden, e funciona normalmente:

Arquivo 1.php
  <html> <body>   <form action="2.php" method="post"> <input name="fname" type="hidden" id="fname" value="Pedro" /> <input name="age" type="hidden" id="age" value="37" /> <input type="submit"> </form>   </body> </html>  

Arquivo 2.php
<html> <body>   Welcome <?php echo $_POST["fname"]; ?>!<br> You are <?php echo $_POST["age"]; ?> years old.   </body> </html>  

Porém, usando input do tipo hidden, se no action chamo o mesmo arquivo, não consigo enviar os valores do campo input hidden para o arquivo de destino se este é chamado com "windows.location.href":

Arquivo 1.php
  <html> <body>   <? if($_POST['submit']){ echo ("<script language='javascript'>window.location.href=\"2.php\";</script>"); } ?>   <form action="#" method="post"> <input name="fname" type="hidden" id="fname" value="Antonio" /> <input name="age" type="hidden" id="age" value="45" /> <input type="submit" name="submit" > </form>   </body> </html>  

Arquivo 2.php
<html> <body> Welcome <?php echo $_POST["fname"]; ?>!<br> You are <?php echo $_POST["age"]; ?> years old. </body> </html> 

E o mesmo ocorre quando uso header('Location: 2.php');:
Arquivo 1.php
<? ob_start(); ?> <html> <body> <? if($_POST['submit']){ header('Location: 2.php'); /* echo ("<script language='javascript'>window.location.href=\"2.php\";</script>"); */ } ?> <form action="#" method="post"> <input name="fname" type="hidden" id="fname" value="Antonio" /> <input name="age" type="hidden" id="age" value="45" /> <input type="submit" name="submit" > </form> </body> </html>  <? ob_end_flush(); ?>

Arquivo 2.php
<html> <body> Welcome <?php echo $_POST["fname"]; ?>!<br> You are <?php echo $_POST["age"]; ?> years old. </body> </html>

Por quê, onde chamo o próprio arquivo através do action, e chamo o arquivo de destino através de "windows.location.href", os valores do campo input hidden não são enviados para o arquivo de destino? Fiz todos meus formulários dessa maneira, através de "windows.location.href", enviando os valores para a página chamada através de variáveis nesse comando (não sei se posso dizer assim), e resgatando os valores através de _GET (no exemplo que dei ficaria assim: echo ("<script language='javascript'>window.location.href=\"2.php?valor=$valor\";</script>"); e resgato o valor no arquivo de destino com $valor = $_GET['valor '];). Mas eu gostaria de enviar os valores através de input hidden, por ser mais seguro, conforme li. Mas por uma questão da forma como fiz a validação, preciso chamar o mesmo arquivo no action do formulário e chamar a página de destino através de echo ("<script language='javascript'>window.location.href=\"2.php?valor=$valor\";</script>");. Como faço para os valores de input hidden irem para o arquivo de destino dessa forma?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17403
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Input type hidden não passa valores

02-05-2013 14:39

Existe basicamente 2 formas de enviar os dados, por GET ou POST.
Nesse exemplo de enviar os dados para o mesmo documento, depois usar o location.href você não usa nenhum dos 2 métodos.

O que seria mais ou menos seguro, seria você aqui

if($_POST['submit']){ header('Location: 2.php'); } 

Salvar os dados em uma SESSION antes do header. Ai os dados estarão disponíveis chamando a SESSION com o nome que salvou.
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1073
Sexo: Masculino
Localização: Ourinhos, SP

Input type hidden não passa valores

03-05-2013 10:25

Eu vou concluir uma parte do código em que estou mexendo e deixar para ver isso no final. Se perceber que isso me consumirá muito tempo, vou deixar como está, publicar o site e alterar com ele funcionando. Depois voltarei a este tópico. Obrigado, novamente.
0
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 166
Nome: Bruno Bandeira
Sexo: Masculino
Contato:

Input type hidden não passa valores

03-05-2013 17:54

Eu não entendi porque você quer enviar o formulário pra ele mesmo para pegar os mesmos dados.
Simplesmente para coloca-los no hidden?

Não faz muito sentido e você vai ter uma aplicação no minimo redundante.
Agora imagine que você tem um considerável numero de formulário e você vai fazer essa transição toda vez.

Se você procura segurança, existem outros meios.
Abraços!
0

Quem está online

Usuários navegando neste fórum: Google Adsense [Bot]