if...else.... "Não funciona!!!"

Enviada por Nathan 
Nathan
if...else.... "Não funciona!!!"
16 de January de 2017 às 11:01PM
Olá amigos, tenho 14 anos, e sou iniciante no php, porém pretendo criar um sistema de login e cadastro... Muitos deve está pensando: Nossa!! Isso e fácil... Mas eu tento e não consigo entender... Vamos falar do problema agr.

Tenho a pag index.php nela tem o formulário de cadastro com tudo ok.. Nesse formulário o action="php/registrando.php"..

Tudo Ok... Mas eu queria criar condições para o usuário se cadastrar.. ai me veio a ideia de usar o if e o else.
Tudo ok tb os duas primeiras condições foram ok, mas a terceira ficou loca... ela simplesmente não respeita as condições estabelecidas eu ja tentei usar o = ja tentei o != nada dá certo.... alguém me ajuda... Vou deixar os documentos em baixo... no qual o que eu escrever com o CAPSLOCK significa o if que n "funciona".


O problema e que a condição é $pass = $pass2 (Se as duas senhas for igual) ele continua... Ou seja, se as senhas forem iguais ele continua, até ai tudo certo, porém quando eu coloco no formulário as duas senhas diferentes ele continua como se fosse iguais.

Achei que eu teria colocado as duas variáveis para o mesmo campo no formulário, verifiquei o código e não achei erro. Coloquei echo $pass; e echo $pass2 e quando recarregava a pag os valores eram diferentes. (EX.: Preenchi o formulário 1 com aaa e o formulário 2 com bbb ou seja $pass = aaa; $pass2 = bbb; quando dava echo nos dois saia ("aaabbb"))

Para fazer o test citado acima eu tirei a criptografia md5 da variavel $pass, e $pass2. Porém mesmo com as duas variáveis sem md5 o erro continuou.

AQUÉM ME AJUDA


index.php (OBS.: coloquei apenas a parte do formulário.)

<form name="cadastro" action="php/registrando.php" method="post">

<input type="text" name="nick" placeholder="Nick ou Apelido" id="nick" title="Digite seu Nick ou Apelido"><br>
<input type="text" name="nome" placeholder="Nome" id="nome" title="Digite seu nome">
<input type="text" name="sobrenome" placeholder="Sobrenome" id="sobrenome" title="Digite seu sobrenome"><br>
<input type="email" name="email" placeholder="E-Mail" id="email" title="Digite seu e-mail"><br>
<input type="password" name="pass" placeholder="Senha" id="pass" title="Digite sua senha">
<input type="password" name="pass2" placeholder="Repita Sua Senha" title="Digite novamente sua senha" id="pass2"><br>
<input type="text" name="nasc" placeholder="Data de Nascimento" id="nasc" title="Digite sua data de nascimento"><br>
<span id="termos"><input type="checkbox" name="termos"> Eu concordo com os <a href="">Termos</a> e li a <a href="">Política de Dados</a>.<br></span>
<input type="submit" name="botao" id="botao_cadastro" value="Cadastrar"><input type="reset" name="limpar" id="limpar_cadastro" value="Limpar">

</form>


php/registrando.php (OBS.: Tirei uma parte do cod então não entranha ver a variável $idade > 13, e nem a variavel $conn)

<?php

$nick = $_POST['nick'];
$nome = $_POST['nome'];
$sobrenome = $_POST['sobrenome'];
$email = $_POST['email'];
$pass = md5($_POST['pass']);
$pass2 = md5($_POST['pass2']);
$nasc = $_POST['nasc'];
$termos = $_POST['termos'];

if ($nick != null && $nome != null && $sobrenome != null && $email != null && $pass != null && $pass2 != null && $nasc != null && $termos != null){

if ( $idade > 13 ){

IF ( $pass = $pass2 ) {

if ( $nome != $sobrenome ) {

mysqli_query($conn, "INSERT INTO user(nick, nome, sobrenome, email, pass, nasc) VALUES ('$nick', '$nome', '$sobrenome', '$email', '$pass', '$nasc')");

} else {

?><script>window.alert("Informe seu sobrenome corretamente!");</script><?php

}

} ELSE {

?><script>window.alert("As senhas não se coincidiram!");</script><?php

}

} else {

?><script>window.alert("Você não tem idade para participar da nossa comunidade!");</script><?php

}

} else {

?><script>window.alert("Você deixou algum campo vazio!");</script><?php

}

?>
Jayme A. C. Gimenez
Re: if...else.... "Não funciona!!!"
18 de January de 2017 às 06:45PM
Para usar IF ( $pass = $pass2 ), tem que ser IF ( $pass == $pass2 ) . Senão, fica louco messsssmo!

Entendeu? Para comparar valores, o igual tem que ser == .

Para setar valores, aí sim, o sinal de igual é o convencional: $variavel1 = $variavel2. Note que, aqui, não estou comparando; estou decretando que $variavel1 passará a ter o valor de $variavel2.
Eduardo Molina
Re: if...else.... "Não funciona!!!"
20 de January de 2017 às 07:07PM
Boa tarde, embora não seja a sua duvida, vamos ver maneiras de organizar seu codigo eu reparei ali, que tu colocou esta linha ...

if ($nick != null && $nome != null && $sobrenome != null && $email != null && $pass != null && $pass2 != null && $nasc != null && $termos != null){

Em vez disso voce poderia simplesmente em seu formulario colocar algo como...

<input type="text" name="nome" placeholder="Nome" id="nome" title="Digite seu nome" required>


Isto é ao por "required" enquanto o usuario não digitar alguma coisa ali, ele não permite que o formulario avance. Ou seja é 1 verificação a menos para teu codigo realizar.


Sinais no PHP

= significa que voce ira receber um conteudo, isto é $var = 1; /*variavel $var recebe o valor 1*/
== significa comparação ou seja $a = 1; $b =1; Se ($a == $b) { faz alguma coisa} senao {faz outra coisa}
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.