Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Problemas com ifs


Batz

Question

Ae pessoal!

To começando mexer com php, to fazendo um sitezinho pra testar

ai eu comecei a fazer cadastro de usuários e coloquei alguns ifs para que mensagens de erro apareçam quando alguns

parâmetros não sejam cumpridos.

O código php ficou assim:

(vish ia por o código dentro dum spoiler pra organizar um pouco o tópico mas deu um erro 404, kkkkk)

<?php
 mysql_select_db('job');
 $con = conectar();
 $aa_log = $_POST["aa_log"];
 $aa_psw = $_POST["aa_psw"];
 $aa_psw2 = $_POST["aa_psw2"];
 $aa_remb = $_POST["aa_remb"];
 $aa_cod = $_POST["aa_cod"];
 $aa_sql = "SELECT login FROM handjob";
 $aa_chk = mysqlexecuta($con,$aa_sql);

 include 'config.php'; //INCLUIR A CONEXAO
 include 'mysqlexecuta.php'; //EXECUTA O SCRIPT DE SEGURANCA

 if ($aa_cod == "azarath"){
  if (!($aa_log == $aa_chk)){
   if ($aa_psw == $aa_psw2){ 
   $sql = "INSERT INTO handjob (login, senha, lembrete) Values('$aa_log','$aa_psw','$aa_remb')";
   $res = mysqlexecuta($con,$sql);
   echo ?> <tr><td><p align='center' class='b4_lala'><?php "O Usuário ".$aa_log." foi cadastrado com sucesso!"?></p></td></tr><?php;
   ?><tr><td> <p align='center' class='b4_lala2'><a href='aa.html'>Fazer Login</a></td></tr><?php
   } 
   else {
   echo ?> <tr><td> <p align='center' class='b4_lala'><?php "Sua senha e confirmação de senha estão com valores diferentes!" ?></p>
   </td></tr><?php;
   ?><tr><td><p align='center' class='b4_lala2'><a href='aa_new.html'>Voltar ao Cadastro</a></td></tr><?php
   }
  }
  else {
  echo ?> <tr><td><p align='center' class='b4_lala'><?php "O Usuário ".$aa_log." já existe, escolha outro nome!"?></p></td></tr><?php;
  ?><tr><td><p align='center' class='b4_lala2'><a href='aa_new.html'>Voltar ao Cadastro</a></td></tr><?php 
  }
 }
 else {
 echo ?><tr><td><p align='center' class='b4_lala'><?php "O código chave que você inseriu está incorreto!"?></p></td></tr><?php;
  ?><tr><td><p align='center' class='b4_lala2'><a href='index.html'>Voltar ao Home</a></td></tr><?php 
 }
?>

Quando eu rodo o site e tento cadastrar alguém, não importa se eu preenchi os campos corretamente ou não, a unica coisa que aparece

são os 4 links ( 1 de quando era pra dar certo e os outros 3 que estao no else) e o banco de dados permanece inalterado

O que esta errado no codigo (ou apenas os deuses não querem que eu consiga fazer esse negocio, kkkk) ?

já to a mais de duas horas mudando sinais de lugar e tentando outras combinações mas ate agr não deu certo =(

Se alguém curte eletronica aew ouça: Swedish House Mafia - Greyhound ; )

Edited by Batz
Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

fio, tu usou if { } else {} else {} else {}

o if só pode ter somente um else...

então faça

if (condição 1) {

codigo aqui ...

} elseif (condição 2) {

codigo aqui...

} elseif (condição 3) {

codigo aqui...

} else {

codigo aqui...

}

Link to comment
Share on other sites

  • 0

Ea blew!

Bem você disse sobre eu usar varios ifs e pah, eu usei uma sequencia de if dentro de if e pra cada if existe um else,

ou seja criei uma sequencia de condições e pra cada condição não cumprida existe uma mensagem de erro diferente

Mas como sou um novato, não custa nada testar né? Vai que funciona...

então tranformei aquele código nesse:

<?php
 mysql_select_db('job');
 $con = conectar();
 $aa_log = $_POST["aa_log"];
 $aa_psw = $_POST["aa_psw"];
 $aa_psw2 = $_POST["aa_psw2"];
 $aa_remb = $_POST["aa_remb"];
 $aa_cod = $_POST["aa_cod"];
 $aa_sql = "SELECT login FROM handjob";
 $aa_chk = mysqlexecuta($con,$aa_sql);

 include 'config.php'; //INCLUIR A CONEXAO
 include 'mysqlexecuta.php'; //EXECUTA O SCRIPT DE SEGURANCA

   if (!($aa_cod == "azarath")){
    echo ?><tr><td><p align='center' class='b4_lala'><?php "O código chave que você inseriu está incorreto!"?></p></td></tr><?php;
    ?><tr><td><p align='center' class='b4_lala2'><a href='index.html'>Voltar ao Home</a></td></tr><?php 
   }
    elseif ($aa_log == $aa_chk){
    echo ?> <tr><td><p align='center' class='b4_lala'><?php "O Usuário ".$aa_log." já existe, escolha outro nome!"?></p></td></tr>       <?php;
    ?><tr><td><p align='center' class='b4_lala2'><a href='aa_new.html'>Voltar ao Cadastro</a></td></tr><?php 
   }
   elseif (!($aa_psw == $aa_psw2)){ 
    echo ?> <tr><td> <p align='center' class='b4_lala'><?php "Sua senha e confirmação de senha estão com valores diferentes!" ?></p>
    </td></tr><?php;
    ?><tr><td><p align='center' class='b4_lala2'><a href='aa_new.html'>Voltar ao Cadastro</a></td></tr><?php
   }
   else {
    $sql = "INSERT INTO handjob (login, senha, lembrete) Values('$aa_log','$aa_psw','$aa_remb')";
    $res = mysqlexecuta($con,$sql);
    echo ?> <tr><td><p align='center' class='b4_lala'><?php "O Usuário ".$aa_log." foi cadastrado com sucesso!"?></p></td></tr><?php;
    ?><tr><td> <p align='center' class='b4_lala2'><a href='aa.html'>Fazer Login</a></td></tr><?php
   } 
?>

Então quando eu rodei...

TADAAA! Aconteceu a mesma coisa que antes....

Mas valeu pela atenção....

Link to comment
Share on other sites

  • 0

cara, agora percebi que voce não ecoou a msg de erro

apenas colocou <?php "O código chave que você inseriu está incorreto!"?>, e assim por diante...

da um echo antes disso ai...

e outra, não precisa abrir um monte de tag <?php

faz tudo numa coisa só e a tabela, formulario e tal, você consegue montar tudo usando echo também

ou coisa, mysqlexecuta é o que??

alguma classe que voce criou pra adicionar??

outra coisa, na verdade é $aa_cod != "azarath"

talvez seja esse o erro.

Link to comment
Share on other sites

  • 0
echo ?><tr><td><p align='center' class='b4_lala'><?php "O código.....
Sim eu ecoei :) , uma das vantagens da linguagem php é essa, quando você abre ela denovo ela continua deonde parou, por

isso eu fiquei abrindo e fechando o php.

E antes de fazer desse jeito eu tentei fazer todos os comandos dentro do echo mas o problema que dava era maior ainda,

me parece que o echo não reconhece os comando de table ou sei lá, só sei que quando eu tentei por tudo no echo ele

acabou ecoando trechos do código, ai eu mostrei pra um amigo meu e ele disse pra fazer a parte do html separada da do php e

depois que eu fiz separado o negocio ficou menos feio.

ou coisa, mysqlexecuta é o que??

alguma classe que voce criou pra adicionar??

O mysqlexecuta é isso aki:

<?php
/*
$id - Ponteiro da Conexão
$sql - Cláusula SQL a executar
$erro - Especifica se a função exibe ou não(0=não, 1=sim)
$res - Resposta
*/
function mysqlexecuta($id,$sql,$erro = 1) {
    if(empty($sql) OR !($id))
       return 0; //Erro na conexão ou no comando SQL
   if (!($res = @mysql_query($sql,$id))) {
      if($erro)
        echo "Ocorreu um erro na execução do Comando SQL no banco de dados. Favor Contactar o Administrador.";
      exit;
   }
    return $res;
 }
?>

Esse arquivo eu copiei do que meu professor passou no meu curso técnico,

serve para fazer conexão com banco de dados e executar comandos sql.

Está em um arquivo separado apenas para organização e para evitar repetições.

outra coisa, na verdade é $aa_cod != "azarath"

:) Adivinhe! Sim eu já tentei dessa forma, dei uma lida em alguns manuais de sql e vi que ambas as formas estão corretas

Afinal ele fará o seguinte: ele verá $aa_cod não é igual a "azarath" e retornará false mas como antes do parenteses temos um ! o boolean será invertido retonado true da mesma forma que se ele checasse se $aa_cod é diferente de "azarath" ele iria retornar true

Obrigado pela atenção! :)

Link to comment
Share on other sites

  • 0

num sabia disso hehe, nunca tinha tentado dessa forma...

enfim, dps q eu me ligay do echo la antes de fechar o código ?> haha.. desconsidera isso q eu tinha falado..

ta dificil ver o erro então cara...

seguinte, tem um site chamado www.phpbrasil.com

la tem um fórum, e os nego de lá são feras

tenta la, talvez eles consigam resolver ^_^

Link to comment
Share on other sites

  • 0

Mais uma vez valeu ae a atenção blew, mas eu consegui arrumar sozinho o negocio (nada como uma boa noite de sono!)

o código acabou ficando assim:

<?php
include 'config.php'; //INCLUIR A CONEXAO
include 'mysqlexecuta.php'; //EXECUTA O SCRIPT DE SEGURANCA
$con = conectar();
$aa_log = $_POST["aa_log"];
$aa_psw = $_POST["aa_psw"];
$aa_psw2 = $_POST["aa_psw2"];
$aa_remb = $_POST["aa_remb"];
$aa_cod = $_POST["aa_cod"];
mysql_select_db('job');
$aa_sql = "SELECT login FROM handjob WHERE login = '$aa_log'";
$aa_chk = mysqlexecuta($con,$aa_sql);

if ($aa_cod == "azarath"){
  if (!(mysql_num_rows($aa_chk)==1)){
   if ($aa_psw == $aa_psw2){ 
   $sql = "INSERT INTO handjob (login, senha, lembrete) Values('$aa_log','$aa_psw','$aa_remb')";
   $res = mysqlexecuta($con,$sql);
   ?> <tr><td><p align='center' class='b4_lala'><?php echo "O Usuário $aa_log foi cadastrado com sucesso!";?></p></td></tr><?php
   ?><tr><td> <p align='center' class='b4_lala2'><a href='aa.html'>Fazer Login</a></td></tr><?php
   } 
   else {
   ?> <tr><td> <p align='center' class='b4_lala'><?php echo "Sua senha e confirmação de senha estão com valores diferentes!"; ?></p>
   </td></tr><?php 
   ?><tr><td><p align='center' class='b4_lala2'><a href='aa_new.html'>Voltar ao Cadastro</a></td></tr><?php
   }
  }
  else {
  ?> <tr><td><p align='center' class='b4_lala'><?php echo "O Usuário $aa_log já existe, escolha outro nome!";?></p></td></tr><?php
  ?><tr><td><p align='center' class='b4_lala2'><a href='aa_new.html'>Voltar ao Cadastro</a></td></tr><?php 
  }
}
else {
  ?><tr><td><p align='center' class='b4_lala'><?php echo "O código chave que você inseriu está incorreto!";?></p></td></tr><?php 
  ?><tr><td><p align='center' class='b4_lala2'><a href='index.html'>Voltar ao Home</a></td></tr><?php 
}
?>

Eu apenas mudei uma coisa ou outra de lugar e pronto! Funcionou!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...