Pular para o conteúdo

Váriaveis globais no PHP

Dica publicada em PHP / Avançado
zidvlauns
Hits: 24.262 Categoria: PHP Subcategoria: Avançado
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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:

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
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!

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
Nenhuma dica encontrada.

Lista de discussão de desenvolvedores PHP de Minas Gerais

Plugin com controle de acesso para CakePHP 3

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

CakePHP/HtmlHelper - Fazendo submit em formulário

Nasce site sobre Zend Framework

#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

Entre na sua conta para comentar.