Autor Tópico: Como usar formularios em php?  (Lida 6877 vezes)

Offline simon

  • Usuário Ubuntu
  • *
  • Mensagens: 110
    • Ver perfil
Como usar formularios em php?
« Online: 11 de Dezembro de 2008, 12:26 »
Resolvi aproveitar as férias pra fazer um curso de php pelo iped. Copiei um codigo para enviar um formulário e aparecer a palavra enviada mas não acontece nada quando eu clico em enviar. Sei que a pergunta pode parecer boba mas é porque eu ainda to aprendendo. O codigo é esse:
Código: [Selecionar]
<html>
<head><title>formulario</title></head>
<body>
<?
if ($texto!="")
echo "voce digitou $texto<br>"
?>
<form method=post action="<? echo "$PATH_INFO"; ?>">
<input type="text" name="texto" value="" size=10>
<br>
<input type="submit" name="sub" value="enviar">
</form>
</body>
</html>

Offline agente100gelo

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.369
  • @Ceará
    • Ver perfil
Re: Como usar formularios em php?
« Resposta #1 Online: 11 de Dezembro de 2008, 12:42 »
Não é $texto e sim $_POST["texto"]. É uma variável que vem de um form POST.

Advogado e analista de sistema cearense.
Twitter: @glaydson

Offline felipeborges

  • Usuário Ubuntu
  • *
  • Mensagens: 651
    • Ver perfil
    • felipe@borges:~# Liberdade não tem Preço!
Re: Como usar formularios em php?
« Resposta #2 Online: 11 de Dezembro de 2008, 12:50 »
com o path info o valor do input do formulário é "carregado" na memória, o erro está no action do formulário. Onde:

Código: [Selecionar]
echo "$PATH_INFO"; ?>
Está usando aspas duplas "" assim como o código HTML do formulário. Neste caso, quando não está se lidando com strings e etc... você pode simplesmente colocar:

Código: [Selecionar]
<?php 

echo $PATH_INFO

?>



Sem aspas, vide que PATH_INFO é uma variavel já "definida" do PHP.

Não deixe de consultar o manual para saber mais sobre PATH_INFO.
Meu blog sobre GNU/Linux
Debian Lenny e Gentoo.

Offline simon

  • Usuário Ubuntu
  • *
  • Mensagens: 110
    • Ver perfil
Re: Como usar formularios em php?
« Resposta #3 Online: 11 de Dezembro de 2008, 16:26 »
Não é $texto e sim $_POST["texto"]. É uma variável que vem de um form POST.

 Esse lance do $_POST resolveu meu problema. Nesse fórum a gente aprende mais do que em qualquer curso.  Valeu !!! ;D

Offline LinuxMan

  • Usuário Ubuntu
  • *
  • Mensagens: 9
    • Ver perfil
Re: Como usar formularios em php?
« Resposta #4 Online: 20 de Dezembro de 2008, 09:31 »
Vou dar uma força para a galera...
... mostrando um exemplo de uso de um formulário em php.
Arquivo index.html
Código: [Selecionar]
<html>
<head><title></title></head>
<body>
<form action="soma.php" method="post">
Soma<br>
<input type="text" name="campo1">+<input type="text" name="campo2">=
<input type="submit" value="somar">
</form>
</body>
</html>

No arquivo à cima temos a tag form, que possui a propriedade action indicando onde serão enviados os valores do formulário, também possui a propriedade method que seta a forma de envio que é post(Pode ser post ou get, mas para usar get você deverá mudar as váriaveis do arquivo php abaixo de "$_POST" para "$_GET").
Temos dois inputs de texto com nomes campo1 e campo2.
E por fim temos um botão que vai mandar o browser enviar os dados.

Arquivo soma.php
Código: [Selecionar]
<html>
<head><title></title></head>
<body>
Soma<br>
<?=$_POST["campo1"] ?>+<?=$_POST["campo2"] ?>=<?=($_POST["campo1"]+$_POST["campo2"]) ?><br><br>
<a href="index.html">voltar</a>
</form>
</body>
</html>

Algumas definições:
$_POST: é o vetor de variáveis recebidas pelo metodo post.
$_GET: é o vetor de variáveis recebidas pelo metodo get.
$_POST["nome do input do formulário"].
Explicando o código à cima:
<?=$_POST["campo1"] ?>: vai printar na página o valor do input campo1.
<?=$_POST["campo2"] ?>: vai printar na página o valor do input campo2.
<?=$_POST["campo1"] ?>: vai printar na página o valor do input campo1.
<?=($_POST["campo1"]+$_POST["campo2"]) ?>: vai printar na página a soma dos inputs campo1 e campo2.

Bom fim de semana e Feliz Natal.

Para os novatos, lembrando que tem que estar usando um servidor com php!!!!!

Offline fabioal

  • Usuário Ubuntu
  • *
  • Mensagens: 39
  • Liga dos Dinos
    • Ver perfil
Re: Como usar formularios em php?
« Resposta #5 Online: 20 de Dezembro de 2008, 09:58 »
Outra forma de receber dados de um formulário em PHP é o import_request_variables.

Com o import_request_variables você consegue receber tanto $_POST ou $_GET usando apenas um comando, por exemplo:

Tenho um formulário com 4 campos, no método POST: nome, sobrenome, endereco e cidade.
Usando o comando $_POST, teria que colocar um comando para chamar cada váriavel:

Código: [Selecionar]
$var_nome = $_POST['nome'];
$var_sobrenome = $_POST['sobrenome'];
$var_endereco = $_POST['endereco'];
$var_cidade = $_POST['cidade'];

Se eu usar o comando import_request_variables, ficaria assim:

Código: [Selecionar]
import_request_variables['p', 'var_'];
O primeiro parâmetro do import_request_variables é o tipo (p = Post, g = Get), o segundo parâmetro é opcional. No caso acima eu usei uma string 'var_', então todos os campos de formulário virão com o nome de 'var_' + o nome do campo do formulario, ou seja, se o campo de formulário se chama cidade, será atribuída a uma variável $var_cidade.

Não sou muito bom para explicar, mas abaixo tem o link da página do manual do PHP que explica bem o funcionamento da função:
http://www.php.net/manual/pt_BR/function.import-request-variables.php

[]'s

Offline agente100gelo

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.369
  • @Ceará
    • Ver perfil
Re: Como usar formularios em php?
« Resposta #6 Online: 20 de Dezembro de 2008, 11:34 »
Outra forma de receber dados de um formulário em PHP é o import_request_variables.

Com o import_request_variables você consegue receber tanto $_POST ou $_GET usando apenas um comando, por exemplo:

Tenho um formulário com 4 campos, no método POST: nome, sobrenome, endereco e cidade.
Usando o comando $_POST, teria que colocar um comando para chamar cada váriavel:

Código: [Selecionar]
$var_nome = $_POST['nome'];
$var_sobrenome = $_POST['sobrenome'];
$var_endereco = $_POST['endereco'];
$var_cidade = $_POST['cidade'];

Se eu usar o comando import_request_variables, ficaria assim:

Código: [Selecionar]
import_request_variables['p', 'var_'];
O primeiro parâmetro do import_request_variables é o tipo (p = Post, g = Get), o segundo parâmetro é opcional. No caso acima eu usei uma string 'var_', então todos os campos de formulário virão com o nome de 'var_' + o nome do campo do formulario, ou seja, se o campo de formulário se chama cidade, será atribuída a uma variável $var_cidade.

Não sou muito bom para explicar, mas abaixo tem o link da página do manual do PHP que explica bem o funcionamento da função:
http://www.php.net/manual/pt_BR/function.import-request-variables.php

[]'s

Faz um tempão que programo em PHP e nunca tinha visto esta função.
Boa dica. Para um formulário grande ajuda muito na diminuição da digitição.
Advogado e analista de sistema cearense.
Twitter: @glaydson