Váriaveis globais no PHP

Publicado por em 08/06/2004

[ Hits: 21.103 ]

 


Váriaveis globais no PHP



Quando você instala o Apache e o PHP na unha, muitas vezes não dá certo a passagem dos valores de um campo de um formulário HTML para uma página PHP. Quando você tenta "ecoar" o valor da variável na tela, não sai nada e você não sabe mais o que fazer.

A razão de tudo isso pode ser uma simples configuração de passagem de variáveis globais do PHP. Para testar se é só isso, crie um script de teste da seguinte maneira:

<?
   phpinfo();
?>

Salve o arquivo na pasta do Apache (no caso do meu é em /var/www/htdocs). Abra essa página usando o navegador de sua preferência através da URL:

http://localhost/teste.php

Procure nesse arquivo um subtópico chamado register_globals e verifique se está 'On'. Caso não esteja faça o seguinte:

Copie o arquivo php.ini-dist (esse arquivo está na pasta do PHP que foi criada depois que você descompactou o binário) com o seguinte comando:

# cp php.ini-dist /usr/local/lib/php.ini

Agora faça as modificações necessárias no arquivo que você copiou. Digite:

# mcedit /usr/local/lib/php.ini

Procure dentro desse arquivo a seguinte expressão:

register_globals=Off

Haverá mais de um lugar onde existirá essa expressão. Mude todos os lugares onde estiverem 'On' para 'Off', deixando da seguinte maneira:

register_globals=On

Salve o arquivo e reinicie o Apache. Agora abra novamente a página PHP que criamos e procure novamente a expressão register_globals e você verá que está On. :)

Pronto, seus programas deverão funcionar normalmente agora!

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Tudo em Um - Site pessoal sobre PHP, HTML, CSS etc

10 dicas de otimização em programação PHP

Classe para validação de formulários em PHP

Funções com nomes variáveis em PHP, isso existe sim!

Cuidados de segurança com o PHP

  

Comentários
[1] Comentário enviado por aleacastro em 08/06/2004 - 14:53h

No próprio site php.net eles falam que o ideal é deixar off pelo simples motivo de segurança, se você deixa "on" todas as váriaveis passadas pelo formulário viram variáveis no php podendo ocasionar vários problemas de segurança, o ideal é usar $_GET['variavel'] para get, $_POST['variavel'] para post e $_REQUEST['variavel'] para os dois casos. Qualquer dúvida www.php.net

[2] Comentário enviado por wilbil em 15/06/2004 - 18:40h

si isso e ideal

mas tem um problema se vc nao abilitar esta opcao de global vc nao consigra ter variaveis globais dentro que um script

exemplo
<?php

function teste($tamanho,$dormitorio){
global $casa;
if ($tamanho == 0) $casa="casa grande";
else $casa="casa pequena";

if($dormitorio== 0) $dorm="porra para que tudo isso";
else $dorm="porra que minusculo";

return $casa;
}
$casa=teste(0,0);
/*
deste modo ele so iria retornar a casa mas eu quero o dorm tambem
*/

global $dorm;

echo "$casa ------ $dorm";
?>

pronto estou aproveitando alguma das variaveis geradas

[3] Comentário enviado por leosg em 06/08/2004 - 09:34h

ai galera,
no meu caso ta tudo com on,
so que mesmo assim minhas variavies nao funcionam.
e eu nao estava usando o $_POST[] e $_GET[]
e meu sistema e muito grade,,, para fazer todas essas alteracoes..
o que posso fazer para resolver isso..

leo

[4] Comentário enviado por everton3x em 05/05/2009 - 16:19h

Não precisa habilitar Registers Global se você utilizar o código abaixo:

foreach($_POST as $name => $value){
$$name = $value;
}

Pode-se utilizar com GET e REQUEST.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts