Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

brunoguitarman

[Resolvido] Formulário

Recommended Posts

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

e o arquivo "listing9.3.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">
<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>

Bom, até aí sem problemas, parece que tudo está certo. Quando rodo isso pelo servidor da faculdade ele executa corretamente, mas quando tento rodar aqui em casa (tenho o EasyPHP instalado default) ele não roda como deveria e exibe no navegador o seguinte:

 

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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>';
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

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>';
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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:

http://br2.php.net/manual/pt_BR/security.globals.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

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:

http://br2.php.net/manual/pt_BR/security.globals.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.