Váriaveis globais no PHP

Publicado por em 08/06/2004

[ Hits: 21.501 ]

 


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

CakePHP - Trocar model no controller

Driblando o REGISTER GLOBALS OFF

Documentação do CodeIgniter em português

PHPBurn e PHP Cupé: Dois novos frameworks PHP nacionais

Lista de discussão de desenvolvedores PHP de Minas Gerais

  

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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts