então, eu não curto muito esse recurso e prefiro trabalhar com ele desligado. claro que ele tem, lá as suas utilidades, mas suponhamos que eu esteja trabalhando com sessões, dados de formulário e usando o (útil) php?dir:
beleza! eu tenho register_globals ativado e só preciso chamar o $area e o $contador diretamente pelo nome, sem precisar de frescuras como $area=$_GET['area'];.
sem pensar, eu crio um formulário que trate de outro assunto, onde exista um input com o nome 'contador'. pronto! tá feita a merreba! pior ainda se eu trabalho num script que trabalhe com sessões e preciso definir uma variável de sessão chamada 'contador' com o valor 'true'.
se o register_globals estiver ativado, essas variáveis vão se misturar e formar uma bagunça enorme que vai me custar pelo menos uns bons quartos de hora quebrando a cabeça pra descobrir o que está de errado.
com ele desativado, posso trabalhar com essas mesmas variáveis, utilizando o seguinte:
$_GET['contador];
$_POST['contador'];
$_SESSION['contador'];
e por aí vai.
claro que se eu tomar bastante cuidado, posso evitar que esse tipo de coisa aconteça, mas num projeto grande, é quase impossível evitar esse tipo de erro. fica mais fácil desativar (ou simplesmente não usar, se você não tiver acesso ao php.ini) e gastar uns segundos a mais para usar as variáveis predefinidas no PHP.
afinal, se fosse bom, não viria desativada no PHP
existem alguns quesitos de segurança também, mas não me aprofundei nesse assunto ainda.
a questão é: quais as vantagens de se ativar e de se desativar o register_globals?
Pergunta
Edenfall
então, eu não curto muito esse recurso e prefiro trabalhar com ele desligado. claro que ele tem, lá as suas utilidades, mas suponhamos que eu esteja trabalhando com sessões, dados de formulário e usando o (útil) php?dir:
na url temos:
beleza! eu tenho register_globals ativado e só preciso chamar o $area e o $contador diretamente pelo nome, sem precisar de frescuras como $area=$_GET['area'];.
sem pensar, eu crio um formulário que trate de outro assunto, onde exista um input com o nome 'contador'. pronto! tá feita a merreba! pior ainda se eu trabalho num script que trabalhe com sessões e preciso definir uma variável de sessão chamada 'contador' com o valor 'true'.
se o register_globals estiver ativado, essas variáveis vão se misturar e formar uma bagunça enorme que vai me custar pelo menos uns bons quartos de hora quebrando a cabeça pra descobrir o que está de errado.
com ele desativado, posso trabalhar com essas mesmas variáveis, utilizando o seguinte:
claro que se eu tomar bastante cuidado, posso evitar que esse tipo de coisa aconteça, mas num projeto grande, é quase impossível evitar esse tipo de erro. fica mais fácil desativar (ou simplesmente não usar, se você não tiver acesso ao php.ini) e gastar uns segundos a mais para usar as variáveis predefinidas no PHP.
afinal, se fosse bom, não viria desativada no PHP
existem alguns quesitos de segurança também, mas não me aprofundei nesse assunto ainda.
a questão é: quais as vantagens de se ativar e de se desativar o register_globals?
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.