Como usar formularios em php?

Iniciado por simon, 11 de Dezembro de 2008, 12:26

tópico anterior - próximo tópico

simon

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:

<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>

agente100gelo

Não é $texto e sim $_POST["texto"]. É uma variável que vem de um form POST.

Advogado e analista de sistema cearense.
Twitter: @glaydson

felipeborges

com o path info o valor do input do formulário é "carregado" na memória, o erro está no action do formulário. Onde:

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:


<?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.

simon

Citação de: agente100gelo online 11 de Dezembro de 2008, 12:42
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

LinuxMan

Vou dar uma força para a galera...
... mostrando um exemplo de uso de um formulário em php.
Arquivo index.html
<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
<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!!!!!

fabioal

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:

$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:

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

agente100gelo

Citação de: fabioal 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:

$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:

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