PaLobo Posted August 16, 2006 at 11:48 AM Report #44594 Posted August 16, 2006 at 11:48 AM Boas pessoal. Mais uma vez estou encalhado e preciso da vossa ajuda. Já tenho o meu fomr a bombar bem com as fotos aleatórias e tudo isso, mas por algum motivo não consigo pôr a validação a funcionar. Quero validar se o user clicou no raio button e caso não o tenha feito então que apareça um texto por baixo do radio button que ficou mal. Já tentei fazer uns ifs com a opção isset ($_POST['valor']) mas por algum motivo não funciona. O que poderá estar a falhar? http://s4.bitefight.com.pt/c.php?uid=20666
kingless Posted August 16, 2006 at 12:13 PM Report #44606 Posted August 16, 2006 at 12:13 PM Tens que colocar if(!isset($_POST['valor'])) { die( 'Não selecionou xxxx' ); }
PaLobo Posted August 16, 2006 at 01:24 PM Author Report #44627 Posted August 16, 2006 at 01:24 PM Fiz um pequeno teste... pelo que percebo, o isset retorna 0 ou 1, dependendo se a variável está "set" ou não. Fiz portanto um pequeno teste. Criei um form com un text input e um submit. O código para validar, coloquei: <?php //valida.php if(isset($_POST['nome'])){ echo $_POST['nome']; } else{ echo "Algo falhou!"; } Pelo que sei, se preencher o texto na página anterior, o meu output será o que preenchi, caso contrário, o output será "Algo falhou!", certo? O que se passa, é que a 1ª situação confirma-se, mas se não preenceher nada, tenho como output uma págia vazia... O que se passa. Será erro estúpido de newbie?? http://s4.bitefight.com.pt/c.php?uid=20666
karva Posted August 16, 2006 at 02:31 PM Report #44639 Posted August 16, 2006 at 02:31 PM experimenta assim: <?php //valida.php $nome = $_POST['nome']; if(!isset($nome)){ echo "Algo falhou"; } else{ echo $nome; } a funcao isset, nao devolve 0 e 1, devolve sim um valor boleano (true, se a variável ta definida, e false se a variavel nao ta definida) Proud LEIC-A@IST student!
PaLobo Posted August 16, 2006 at 05:37 PM Author Report #44671 Posted August 16, 2006 at 05:37 PM ... a funcao isset, nao devolve 0 e 1, devolve sim um valor boleano (true, se a variável ta definida, e false se a variavel nao ta definida) experimenta assim: <?php //valida.php $nome = $_POST['nome']; if(!isset($nome)){ echo "Algo falhou"; //Apenas devolve uma página em branco!!!!! } else{ echo $nome; } Estou a ficar maluco!!! Tenho isto alojado no Dreamhost logo dúvido que seja algo mal configurado... http://s4.bitefight.com.pt/c.php?uid=20666
PaLobo Posted August 16, 2006 at 05:40 PM Author Report #44674 Posted August 16, 2006 at 05:40 PM estou a perder tempo que não tenho com este erro estúpido. Acho que vou optar por algo do género: if ($_POST['name'] == null){ //código } else{ //código } Depois com mais tempo e cabeça tento perceber o que está a falhar, muito embora não vejo o que possa ser. Já simplifiquei ao máximo o exemplo e mesmo assim não dá...!!!??? Obrigado a todos pelo feedback... Podem contar com mais uma ou outra pergunta de PHP entreetanto. 😛 http://s4.bitefight.com.pt/c.php?uid=20666
Guest id194 Posted August 16, 2006 at 06:38 PM Report #44688 Posted August 16, 2006 at 06:38 PM os valores nos formularios, quer estejam preenchidos ou não, serão sempre enviados e definidos. ou seja, o teu campo "nome" se não estiver preenchido, não faz diferença ao isset() porque a variavel $_POST['name'] está definida, apenas não tem nenhum conteudo, é igual ao fazeres $bla = ""; a variavel $bla ira ficar definida, mas esta vazia. ou seja, usa antes a função empty(). funciona da mesma forma, mas apenas vai verificar se a variavel tem conteudo ou esta vazia. se tiveres a certeza que a variavel $_POST['nome'] vai estar definida onde usares o empty(), então faz isso, directo, se poderá ou não estar indefinida, usa o isset() e dps o empty() tipo: if(isset($var) && !empty($var)
kingless Posted August 16, 2006 at 08:30 PM Report #44716 Posted August 16, 2006 at 08:30 PM os valores nos formularios, quer estejam preenchidos ou não, serão sempre enviados e definidos. ou seja, o teu campo "nome" se não estiver preenchido, não faz diferença ao isset() porque a variavel $_POST['name'] está definida, apenas não tem nenhum conteudo, é igual ao fazeres $bla = ""; a variavel $bla ira ficar definida, mas esta vazia. ou seja, usa antes a função empty(). funciona da mesma forma, mas apenas vai verificar se a variavel tem conteudo ou esta vazia. se tiveres a certeza que a variavel $_POST['nome'] vai estar definida onde usares o empty(), então faz isso, directo, se poderá ou não estar indefinida, usa o isset() e dps o empty() tipo: if(isset($var) && !empty($var) Não é preciso colocar assim if(isset($var) && !empty($var) pode-se simplesmente colocar if(empty($var)) { echo "ERRO"; }
PaLobo Posted August 16, 2006 at 09:58 PM Author Report #44734 Posted August 16, 2006 at 09:58 PM Então deixem-me ver se percebi... Suponhamos que o meu form é enviado para ele próprio... Posso ter uma validação inicial if(isset()) para determinar se é a primeira vez que o form é visualizado, depois de submetido utilizo então o empty()? De forma muito sucinta... <?php //form1.php if (isset($_POST['nome'])){ echo "<form name='form1' method='post' action='form1.php'>"; echo "input type='text' name='nome' value='' >"; ... echo "</form>"; } elseif{ if(empty($_POST['nome'])){ echo "tem que preencher o nome..."; } else{ echo "Olá ". $_POST['nome']; } ?> P.S. Não liguem muito ao código... hoje já não etou com muita cabeça para estas coisas... 😛 http://s4.bitefight.com.pt/c.php?uid=20666
Guest id194 Posted August 18, 2006 at 12:45 AM Report #44953 Posted August 18, 2006 at 12:45 AM Não é preciso colocar assim if(isset($var) && !empty($var) pode-se simplesmente colocar if(empty($var)) { echo "ERRO"; } isso vai depender do error_reporting, eu na minha maquina tenho a reportar tudo, e ha muitos hosts que fazem o mesmo. se fizeres apenas o empty() sem validações anteriores a verificar se viste de tal form e caso n tenhas vindo, vais ter um notice a dizer que a variavel n esta definida...
kingless Posted August 18, 2006 at 03:10 AM Report #44959 Posted August 18, 2006 at 03:10 AM Não é preciso colocar assim if(isset($var) && !empty($var) pode-se simplesmente colocar if(empty($var)) { echo "ERRO"; } isso vai depender do error_reporting, eu na minha maquina tenho a reportar tudo, e ha muitos hosts que fazem o mesmo. se fizeres apenas o empty() sem validações anteriores a verificar se viste de tal form e caso n tenhas vindo, vais ter um notice a dizer que a variavel n esta definida... Nem mereces uma resposta 😛
Guest id194 Posted August 18, 2006 at 01:42 PM Report #45008 Posted August 18, 2006 at 01:42 PM não percebi, ms tasse
PaLobo Posted August 18, 2006 at 02:03 PM Author Report #45012 Posted August 18, 2006 at 02:03 PM Vá crianças.... Portem-se bem... 😄 http://s4.bitefight.com.pt/c.php?uid=20666
kingless Posted August 18, 2006 at 08:16 PM Report #45096 Posted August 18, 2006 at 08:16 PM não percebi, ms tasse Eu disse que não mereces uma resposta porque estas a tentar mostrar que estas certo enquanto que estas errado. Faz o seguinte cria um codigo simples que mostre um Warning só para eu ver PS: O meu servidor tem error_reporting E_ALL.
PaLobo Posted August 19, 2006 at 11:50 AM Author Report #45229 Posted August 19, 2006 at 11:50 AM AAAARRRRRRRGGGGGHHHHHHH!!!!!! ? Ando aqui a matar a cabeça para tentar perceber porque é que o meu script para validar o meu conteudo não funciona quando o problema está no form!!!! ERRO estúpido de newbie!!!!! Tinha: <form action="valid.php" method="post"> ... 4 <input name='f1.1' type='radio' value='4'> 5 <input name='f1.1' type='radio' value='5'> 6 <input name='f1.1' type='radio' value='6'> ... <input type='submit' name='Submit' value='Submit'> depois... <?php //valid.php include('func.php'); valid($_POST['f1.1']); ?> Tanto quanto sei, PHP não suporta pontos nos nomes das variáves e eu tinha "f1.1" AAARRRGGGHHHHH!!!!! Por vezes a minha noobice irrita-me tanto!!!!! Mudei o nome do input e violá... os meus teste já funcionam. Agora só falta corrigir toda porcaria que fiz a tentar resolver este "erro" do PHP. ? http://s4.bitefight.com.pt/c.php?uid=20666
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now