rockito 0 Denunciar post Postado Janeiro 2, 2009 Olá Estou começando no PHP e para fazer uns exercícios decidi criar uma página com 2 inputs de texto que no caso verificariam a data de nascimento e o mes e assim depois denominariam qual o signo da pessoa segundo os dados colocados nos inputs de texto. O problema é que estou tento problemas no uso de IF - THEN - ELSEIF no PHP. Vejam o código verifica.php que é responsável por fazer a verificação do dia e mês mostrando assim o signo: <?php $dia = $_POST['dia']; $mes = $_POST['mes']; $signo; if ($mes = 3 and $dia >= 21 or $mes = 4 and $dia <= 20) $signo = ("Áries"); elseif ($mes = 4 and $dia >= 21 or $mes = 5 and $dia <= 20) $signo = ("Touro"); echo $signo; ?> O problema é que sempre ele está mostrando o signo de Áries http://forum.imasters.com.br/public/style_emoticons/default/natal_w00t.gif Sim, ainda não terminei de colocar os outros signos pois não consegui passar dessa verificação, sendo assim, quando conseguir acertar isso posso passar a fazer a verificação dos próximos meses/dias. Espero que alguém possa me mostrar onde estou errando. Obrigado. Abraços Rafael Compartilhar este post Link para o post Compartilhar em outros sites
Otata 4 Denunciar post Postado Janeiro 2, 2009 para compara se um valor eh igua ao ourto você usa p == $dia = $_POST['dia']; $mes = $_POST['mes']; $signo; if ($mes == 3 and $dia >= 21 or $mes == 4 and $dia <= 20) $signo = ("Áries"); elseif ($mes == 4 and $dia >= 21 or $mes == 5 and $dia <= 20) $signo = ("Touro"); echo $signo; o = é atribuição T+ Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Janeiro 2, 2009 eu sugiro fazer um switch switch($mes){ case 1: if($dia < 21) { echo alguma coisa }else{ echo alguma coisa } break; case 2: .... Compartilhar este post Link para o post Compartilhar em outros sites
rockito 0 Denunciar post Postado Janeiro 2, 2009 Olá Otata Obrigado pela resposta rápida e certeira ;) Funcionou perfeitamente. Obrigado. Qualquer coisa volto a postar. Abraços :P ------ Edit Não havia visto a postagem de Igor.php. Obrigado pela dica também amigo, como disse anteriormente estou iniciando em PHP. Por isso mais tarde vou tentar fazer do modo que falou ;) Abraços Compartilhar este post Link para o post Compartilhar em outros sites
eibon 2 Denunciar post Postado Janeiro 2, 2009 Cadeias de ifs/else ifs/else(s) tem melhor desempenho. Mas claro...em determinados casos um é mais interessante que o outro. Compartilhar este post Link para o post Compartilhar em outros sites
rockito 0 Denunciar post Postado Janeiro 2, 2009 Hi for all ! Venho aqui postar o 'projeto final'. Ficou bem simples .. :P Index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>Verificação de Signo</title> </head> <body> <center> <b><font face="Prestige Elite Std" size="+4">Verificação de Signos</font></b><br><br> <img src="http://www.psicoastro.com/img/signos.gif" align="center" /><br><br><br> <u><font color="red"><b>Meses:</b></font></u><ol type="1" start="1"> <tt><li>Janeiro</li> <li>Fevereiro</li> <li>Março</li> <li>Abril</li> <li>Maio</li> <li>Junho</li> <li>Julho</li> <li>Agosto</li> <li>Setembro</li> <li>Outubro</li> <li>Novembro</li> <li>Dezembro</li></tt> </ol> <form name="form" method="post" action="verifica.php"> <tt>Entre com o <u>dia</u> do seu <b>nascimento</b>:</tt> <input type="text" name="dia" /> <br /> <tt>Entre com o <u>mês</u> do seu <b>nascimento</b>:</tt> <input type="text" name="mes" /> <br /> <br /> <input type="submit" name="submeter" value="Qual meu signo ?"/> </center> </form> </body> </html> verifica.php <?php $dia = $_POST['dia']; $mes = $_POST['mes']; $signo; if ($mes == 3 and $dia >= 21 or $mes == 4 and $dia <= 20) $signo = ("Áries"); elseif ($mes == 4 and $dia >= 21 or $mes == 5 and $dia <= 20) $signo = ("Touro"); elseif ($mes == 5 and $dia >= 21 or $mes == 6 and $dia <= 20) $signo = ("Gêmeos"); elseif ($mes == 6 and $dia >= 21 or $mes == 7 and $dia <= 20) $signo = ("Cancêr"); elseif ($mes == 7 and $dia >= 21 or $mes == 8 and $dia <= 20) $signo = ("Leão"); elseif ($mes == 8 and $dia >= 21 or $mes == 9 and $dia <= 20) $signo = ("Virgem"); elseif ($mes == 9 and $dia >= 21 or $mes == 10 and $dia <= 20) $signo = ("Libra"); elseif ($mes == 10 and $dia >= 21 or $mes == 11 and $dia <= 20) $signo = ("Escorpião"); elseif ($mes == 11 and $dia >= 21 or $mes == 12 and $dia <= 20) $signo = ("Sagitário"); elseif ($mes == 12 and $dia >= 21 or $mes == 1 and $dia <= 20) $signo = ("Capricórnio"); elseif ($mes == 1 and $dia >= 21 or $mes == 2 and $dia <= 20) $signo = ("Aquário"); elseif ($mes == 2 and $dia >= 21 or $mes == 3 and $dia <= 20) $signo = ("Peixes"); echo "<tt><center>Seu Signo é <b>$signo</tt><center></b>"; ?> Quem ver algum erro, ou quiser dar alguma sugestão será bem vindo :D Abraços Compartilhar este post Link para o post Compartilhar em outros sites
eibon 2 Denunciar post Postado Janeiro 2, 2009 Checa se os valores vieram vazios... if(isset($_POST['dia']) && isset($_POST['mes'])){ if(trim($_POST['dia']) != '' && trim($_POST['mes'] != '')){ //Seu code } else { //Mensagem de erro } } E só pra brincar: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>Verificação de Signo</title> <script> window.onload = function(){ var select = document.getElementsByName("dia")[0]; for(j = 1;j <= 31;j++){ var option = document.createElement("option"); option.setAttribute('value', j); option.appendChild(document.createTextNode('Dia'+j)); select.appendChild(option); } var ol = document.getElementsByTagName("ol")[0]; for(i = 0;i <= ol.childNodes.length;i++){ ol.childNodes[i].nodeName; if(ol.childNodes[i].nodeName.toLowerCase() == 'li'){ ol.childNodes[i].setAttribute('onClick', 'preencheMes(this.innerHTML);'); } } } function preencheMes(value){ document.getElementsByName('mes')[0].value = value.substring(4, value.length-5); } </script> </head> <body> <center> <b><font face="Prestige Elite Std" size="+4">Verificação de Signos</font></b><br><br> <img src="http://www.psicoastro.com/img/signos.gif" align="center" /><br><br><br> <u><font color="red"><b>Meses:</b></font></u><ol type="1" start="1"> <tt><li>Janeiro</li> <li>Fevereiro</li> <li>Março</li> <li>Abril</li> <li>Maio</li> <li>Junho</li> <li>Julho</li> <li>Agosto</li> <li>Setembro</li> <li>Outubro</li> <li>Novembro</li> <li>Dezembro</li></tt> </ol> <form name="form" method="post" action="verifica.php"> <tt>Selecione o <u>dia</u> do seu <b>nascimento</b>:</tt> <select name="dia"> <option selected="selected">Selecione</option> </select> <br /> <tt>Entre com o <u>mês</u> do seu <b>nascimento</b>:</tt> <input type="text" name="mes" readonly="readonly" value="[Clique no mes]" /> <br /> <br /> <input type="submit" name="submeter" value="Qual meu signo ?"/> </center> </form> </body> </html> askaokspasa... Tomei o tópico como resolvido... Compartilhar este post Link para o post Compartilhar em outros sites
rockito 0 Denunciar post Postado Janeiro 2, 2009 Opa eibon Valeu ! Mais não entendi como ficaria para incluir o código para verificar os campos vazios. :S Abraços :P Compartilhar este post Link para o post Compartilhar em outros sites