Sessões e formulários em PHP
Suponha que temos dois arquivos PHP. Vamos
no arquivo test1.php colocar um formulário que pergunta
ao usuário dois números:
<form method="GET">
<input name="num1">
<input name="num2">
<input type="submit">
</form>
Neste mesmo arquivo, vamos colocar o código de processamento do formulário. Neste código, vamos gravar os dados dos inputs na sessão:
<?php
session_start();
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
Um detalhe importante: no arquivo, o código de processamento do formulário deve ficar antes do próprio formulário. Por quê: porque neste código estamos trabalhando com a sessão, e portanto não deve haver nenhuma saída para a tela antes disso.
Agora, vamos no arquivo test2.php encontrar a
soma dos números salvos na sessão:
<?php
if (!empty($_SESSION)) {
echo $_SESSION['num1'] + $_SESSION['num2'];
}
?>
Em que sequência tudo isso deve
funcionar? Primeiro, o usuário acessa a
página test1.php, preenche o formulário
e clica no botão. Depois disso, ele volta
para test1.php, mas agora com os dados
do formulário enviados. Ao fazer isso, ele entra na condição
na qual escrevemos os dados do formulário na sessão.
Em seguida, o usuário deve acessar manualmente a
página test2.php - e lá ele verá
a soma dos números inseridos.
Você pode perguntar: por que complicar assim? Afinal,
poderia ter enviado o formulário diretamente para a página
test2.php. A questão é que, neste
caso, a conveniência está no fato de que o próprio formulário e o código
do seu processamento ficam na mesma página.
Isso, é claro, nem sempre é conveniente, mas às vezes
é necessário.
Em uma página, usando um formulário, pergunte ao usuário o sobrenome, nome e idade. Grave esses dados na sessão. Ao acessar outra página, exiba esses dados na tela.