Olá! Quarta Feira, 19 de Novembro de 2008.


Dicas CódigoFonte.net
Quarta Feira, 10 de Dezembro de 2003

Variáveis e seus cuidados

O PHP é uma linguagem bastante dinâmica, flexível e criativa.
Uma de suas grandes façanhas é o envio de dados pelo navegador, declarando como variável global todo o conteúdo repassado por QUERY_STRING (GET) ou por POST, deixando alguns inconvenientes em se tratando de segurança oferecida ao seu script.

Algumas vezes utilizamos variáveis temporárias em laços (while, for, do ..while) e condições (if..elseif..else) em que na maioria das vezes são deixadas em branco e, imaginem só, podemos modificá-las ao repassar conteúdo pela QUERY_STRING, modificando, assim, todo o desenrolar do nosso script.

Como exemplo, imaginem só:
  <?php
while (empty($a)) {
  $b  ;
  if ($b >= 10)
    $a = 1;
  echo “Olá $b
”;
}
?>  


Podemos observar que foram utilizadas duas variáveis, $a e $b, sendo a primeira para controle do laço e a segunda para a saída do laço, alterando o valor de $a.

O nosso erro erro esta no seguinte: se repassarmos em nosso script os seguintes valores: script.php?a=123 e script.php?b=4.
No primeiro o laço não seria executado pois a variável $a não estaria mais limpa. Já no segundo, o laço seria executado menos vezes, não exibindo os dados desejados pelo programador.

Para contornar esse problema poderíamos setar dados para as variáveis, como em:
  <?php
$a = 0;
$b = 0;
?>  


Ou destruí-los, como em:
  <?php
unset($a);
unset($b);
?>  


Uma outra maneira e bem mais segura e aconselhada (porém o mais incomodo) de se trabalhar com variáveis seria deixar como off o campo register_globals do seu php.ini (tanto para Windows como para Linux), pois assim você teria um maior controle em cima das variáveis, escolhendo quais realmente seriam necesárias ao seu script, utilizando, para isso, $HTTP_*_VARS[ nome ] para receber suas variáveis.

Para o envio de dados por GET temos:
  <?php
$a = $HTTP_GET_VARS[ a ];
$b = $HTTP_GET_VARS[ b ];
?>  

Comentários do artigo [Novo comentário]

Nenhum comentário, seja o primeiro a comentar.
Para adicionar um comentário você deve efetuar o login

Gostou do CódigoFonte.net? Quer indicar a um amigo?
Preencha os campos a seguir.
Seu Nome:
Seu E-mail:
E-mail de seu Amigo:




Melhor Visualizado com
800x600 de Resolução

CodigoFonte.net » CodigoFonte.eti.br » Procurando o que comprar? » MeuMural.com.br » Todos os Direitos Reservados © 2002/2008

Procurando Notebooks, Câmeras Digitais, iPhones?

CompreDeTudo.com