Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde amigos,
Bom gostaria de saber o que pode esta acontecendo com meu php, ele esta se perdendo nas variaveis.
Exemplo
<?php
session_start();
$nome = $_POST['nome'];
if($_POST){
echo "POST: ".$nome."<br/>";
echo "SESSION: ".$_SESSION['nome'];
}else{
$_SESSION['nome'] = "Diego";
}
?>
<form action="" method="post" enctype="multipart/form-data">
<input type="text" name="nome" id="nome" value="Diego Silva" /><input type="submit" value="ok" />
</form>
Quando clico no submit, ele me imprimi o seguinte resultado:
POST: Diego Silva
SESSION: Diego Silva
O certo era para imprimir:
POST: Diego Silva
SESSION: Diego
O que pode esta acontecendo.
Questão de validação bacana seu questionamento é certo.
Mais quanto ao resultado disso em um servidor normal com php 5.4 a impressão seria daquele formulario seria outra.
Ja resolvi o problema meu nobre.
A questão é que o servidor que realizei este é a versão do php ter o register_globals On.
Obrigado por tentar resolver o problema não citado no post.
Mais ja resolvi o problema.
>
Primeiro isso aqui está errado:
if($_POST)
Nunca coloque o que pode não existir de forma concreta, coloque depois de testar seu valor:
//O que você vai fazer se alguém enviar um monte de espaços no lugar do "nome real"
if( isset( $_POST['nome'] ) && ! empty( trim( $_POST['nome'] ) ) )
//Agora você seta
$nome = $_POST['nome'];
//...
O problema é que este exemplo que você deu é genérico e não reflete o problema real, geralmente a galera envia perguntas genéricas para tentar resolver outros problemas reais.
Informe o problema real dentro de um código real porque este ai funciona, mas não deve funcionar lá no seu script por outros motivos.
Gostaria de fechar o tópico por gentileza.