Jump to content
tibi

Register Globals

Recommended Posts

tibi

Olá boas noites, antes demais, desculpem pela extensão do texto  :)

Estive a consultar o link em baixo,

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

Para ser sincero sinto me um pouco perdido ao ler aquilo, também é verdade que não sou grande programador  :thumbsup:

Pelos vistos é mais seguro trabalhar com register_globals com o valor Off  nos servidores.

Os sites que tenho desenvolvido até agora, contem linhas do género:

$GLOBALS["config"]["db_host"] = "localhost"; (isto é so um exemplo)

Na frase em baixo que copiei  do php.net:

"No PHP 4.2.0 e posteriores, o valor default da diretiva register_globals é off. Esta é a maior modificação no PHP. Tendo register_globals off afeta o conjunto de variáveis pré-definidas disponíveis no escopo global. POr exemplo, para ler DOCUMENT_ROOT você usará $_SERVER['DOCUMENT_ROOT'] em vez de $DOCUMENT_ROOT, ou $_GET['id'] da URL http://www.example.com/test.php?id=3 em vez de $id, or $_ENV['HOME'] em vez de $HOME."

Para ir buscar o id do URL, eu uso $id = $_GET["id"]. Isto está mal!?

Vendo isto no XAMPP, não me aparecia aviso nenhum, mas agora com a nova versão surgem avisos na página toda  :down:

exemplos:

Notice: Undefined index: page in

NOTICE: USE OF UNDEFINED CONSTANT NOME

Qual acham a melhor solução, para aos poucos ir actualizando os sites. O que devo usar para trocar o código que tenho?

Tenho que mexer nos ficheiros todos onde use $GLOBALS?

Por exemplo, na linha que dou de exemplo, como deveria declarar db_host? Neste exemplo podia escrever directamente aquando do mysql_select_db, mas imaginemos que fosse outro valor.

Obrigado,

Se recomendarem um link onde possa aprender também ajuda

Share this post


Link to post
Share on other sites
brunoais

Pessoalmente, usar coisas como:

Para ir buscar o id do URL, eu uso $id = $_GET["id"]. Isto está mal!?

É um desperdício mas não está errado.

Só vale a pena fazer algo desse tipo se usares esse dado mais que 18x (testes feitos em alguns computadores).

Em relação aos erros que estás a indicar. Isso está relacionado com outra coisa. Se mostrares o código relevante perante esses erros (gerlamente, todo o código que é executado antes dessas variáveis) podemos ajudar-te a resolver-te esses erros.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
morsa

Boas :)

Nas versões anteriores à versão 5 do PHP as variáveis eram globais em todo o escopo do PHP. A partir da versão 5 deixaram de o ser (devido a esse register_globals = Off).

Podes colocar a On mas não recomendo não só por questões de segurança mas porque podes ter má execução do código por esses motivos.

Se o que pretendes é, por exemplo, passar a chave de uma página por parâmetro não vejo qualquer problema.

Imagina, que a página 1 é a home e a página 2, os contactos.

http://example.com/index.php?id=1 fazes o include("home.php") e http://example.com/index.php?id=2 fazes include("contactos.php"); não há qualquer problema e o código que estás a usar é o correcto.

$id = $_GET['id'] 

vais obter o parâmetro 'id' que passas pelo método GET do request HTTP (o que vês no url);

o teu erro

 Notice: Undefined index: page in

é porque estás a tentar obter, por exemplo, $_GET['page in'] que, óbviamente não existe. Verifica o que estás a passar no URL e o que estás a obter através das variáveis. Undefined index -> o indice não foi definido (' page in ');

Só uma nota de rodapé: cuidado com o que passas pelos parâmetros GET pois o utilizador pode ser "malandro".

Espero ter ajudado.

1abraço

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.