Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, estou lendo o livro Teach yourself PHP 4 in 24 hours e fazendo uns exerícios.
Agora cheguei no capítulo que trata de formulários.
Criei o arquivo "listing9.2.php" que tem o seguinte código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Listing 9.2 A simple HTML form</title>
</head>
<body>
<form action="listing9.3.php" method="get">
<input type="text" name="user" />
<br>
<textarea name="address" rows="5" cols="40">
</textarea>
<br>
<input type="submit" name="hit it!" />
</form>
</body>
</html><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Listing 9.3 Reading input from the form in Listing 9.2</title>
</head>
<body>
<?php
print "Welcome <b>$user</b><p>\n\n";
print "Your address is:<p>\n\n<b>$address</b>";
?>
</body>
</html>Notice: Undefined variable: user in C:\EasyPHP 3.0\www\listing9.3.php on line 10
Welcome
Notice: Undefined variable: address in C:\EasyPHP 3.0\www\listing9.3.php on line 11
Your address is:
Alguém saberia qual o problema?
Realmente funcionou, na verdade com $_GET, mas a idéia é a mesma...
Esse register_globals que tu disse é configuração do apache? Se for, então no servidor da faculdade ele está on e aqui em casa não? E por que não é bom? Mais fácil de hackear?
>
Faltou receber os $_POST... o segundo arquivo só funcionaria com se o register_globals estivesse on, que não é bom.
<?php
print 'Welcome <b>'.$_POST['user'].'</b><p>'."\n\n";
print 'Your address is:<p>'."\n\n".'<b>'.$_POST['address'].'</b>';
?>Mais adiante no livro tem um exemplo que usa o $HTTP_POST_VARS e $HTTP_GET_VARS, aí num exemplo tem um código assim:
foreach($HTTP_POST_VARS as $key=>$value)
print "$key == $value<br>\n";
Ele novamente funciona muito bem no servidor da faculdade, mas no meu localhost ele não funciona.
Tentei então usar algo como $_POST['HTTP_POST_VARS'] mas também não deu...
Agora pesquisando na internet li que o $HTTP_POST_VARS foi trocado pelo $_POST, então mudei isso naquele código que coloquei no último post e funcionou, mas de qualquer forma, não deveria funcionar os dois, por motivos de compatibilidade?
veja:
http://br2.php.net/manual/pt_BR/tutorial.oldcode.php
"Os antigos arrays $HTTP__VARS, como os $HTTP_POST_VARS, ainda existem até a versão do PHP 3"*
Esse livro que você está lendo, é bem antigo, hein!?
Em vez de $HTTP_POST_VARS, use $_POST.
Sobre o register_globals:
Valeu aí pelos links.
E o livro é meio antiguinho mesmo. Não sei qual o ano, mas o php 4 estava sendo lançado, então ele trazia algumas das novidades, mas acho que grande parte do código é relativo ao 3 mesmo. Não me importei muito com a versão por que recém estou aprendendo, aí depois quero pegar a bíblia, aí sim vou querer a versão mais nova...
>
veja:
http://br2.php.net/manual/pt_BR/tutorial.oldcode.php
"Os antigos arrays $HTTP__VARS, como os $HTTP_POST_VARS, ainda existem até a versão do PHP 3"*
Esse livro que você está lendo, é bem antigo, hein!?
Em vez de $HTTP_POST_VARS, use $_POST.
Sobre o register_globals: