Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Toscano

problemas com php5

Recommended Posts

Eu ussava o php4 e pegava informacoes do meu formulario diretamente como variaveisexemplo: se tivese um campo com o nome - idade eu recuperava so colocando na minha pagina de retorno $idade;porem agora instalei o php5 e ele nao pega, alguem sabe como configurar para pegaR?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não me lembro se é possível no php5, mas no php.ini existe uma diretiva, register_globals. Troca o valor dela.É recomendável manter seu valor em OFF, por questões de segurança, e portabilidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom... Agora você vai pegar as variáveis assim: $idade=$_POST['idade']; (coloca isso logo no início do arquivo pra todas as variáveis que vêm de um formulário)Depois você usa igual como antes: "SELECT idade FROM tabela where idade='$idade'";É melhor deixar o register_globals OFF mesmo!Falou?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso deseje criar dinamicamente todas as variáveis vindas por exemplo, de POST, isso resolve:

foreach($_POST as $chave=>$valor) {$$chave = $valor;}

Pra cada chave do array, será criada uma var com o nome da chave, e seu conteúdo.Eu particularmente prefiro chamar pelo array, e não criar novas variáveis com o mesmo valor. É só uma sugestão. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é um problema mesmo... Pois register_globals é uma das maiores brechas de segurança do PHP (pelo menos é uma das mais utilizadas) e para resolver isso você vai ter q varrer seu código e incluir uma linha como a q o asanoli mostrou.

 

Se estiver com muita preguiça ou se seu sistema for muito grande e crítico, vale a pena instalar outra instância do apache com PHP4 para rodar somente esse sistema, pois senão todos seus sistemas estarão comprometidos. Em termos de recursos não é muito econômico, mas o tempo q você vai gastar é bem menor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

, mas o tempo q você vai gastar é bem menor.

foreach($_POST as $chave=>$valor){$$chave = $valor;}

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas o tempo q você vai gastar é bem menor.

foreach($_POST as $chave=>$valor){$$chave = $valor;}

Mas daí vai deixar a mesma brecha que o register_globals = on deixava.Sinceramente, eu não vejo pq tanto dor de cabeça pra uma coisa tão simples. Se você não declara uma variável não há razão pra uma variável existir, se ela vier de outra página você deveria declarar explicitamente que ela vem de outra página, coisas como essas são "boas práticas de programação"...Mas se você tiver milhares de variáveis vindo de um formulário, joga o nome de todas elas em um array, e usa o esquema que o marcio postou, mas fazendo uma verificação se tal var está dentro do array, ficaria mais seguro... ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.