Ir para conteúdo
Entre para seguir isso  
carloshenrique1991

ELSE não funciona

Recommended Posts

 

O "echo 'Usuário não encontrado no banco de dados.';}" não aparece na tela caso o login e senha estejam incorretos, alguém sabe oque pode estar acontecendo?

 

 

<form name="pLogarForm" class="pLogarForm" method="post" action=""></form>

 

<?php
  if (isset($_GET['userEntrar'])) {
	
    $login = $_POST["userEmail"];
    $senha = $_POST["userSenha"];
    $sql = mysql_query("SELECT * FROM explo_us WHERE loginexplo = '$login' AND senhaexplo = '$senha'") or die(mysql_error());
    $row = mysql_num_rows($sql);
  
    if($row > 0 ){
      if (!isset($_SESSION)) {
        session_start();
        $_SESSION["userEmail"] = $_POST["userEmail"];
        $_SESSION["userSenha"] = $_POST["userSenha"];}
    }else{
		echo 'Usuário não encontrado no banco de dados.';}
  
  }
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você poderia postar o resultado da sua query ?

 

Um detalhe , recomendo ja passar para PDO. Pode não ser a solução do cod que você esta usando, mas abaixo tem um cod que eu usava para realizar login de usuários.

class Conexao{
	
	public static $instance;
		
	public static function getInstance(){ 
	
		if (!isset(self::$instance)){ 
			
			self::$instance = new PDO('mysql:host=localhost;dbname=Banco', 'usuario', 'senha', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
			self::$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
			self::$instance->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_EMPTY_STRING); 
		} 
		
		return self::$instance; 
	} 
}
require_once'Conexao.php'
class Usuario{
   
	private $banco;  //banco de dados utilizado
	public $tabela; //tabela que sera usada na consulta
	public $senha;	 // senha de login usuario;
	public  $user; // usuario
	
	function __construct(){
		
		$this->dadosBanco();
	}
	
	private function dadosBanco(){
		
		$this->tabela = "nome da tabela";
	}
	
	public function validaUsuario($user,$senha){
		
		$this->usuario = $user; //recebe o usuario
		$this->senha = $senha;
		
		try{ 
			
			$sql = "SELECT nome,usuario FROM ".$this->tabela." where usuario = '".$this->usuario."' and senha = '".$this->senha."'";
			$stmt = Conexao::getInstance()->prepare($sql);
			$stmt->execute(); //procura um usuario no banco com o mesmo login e senha ('case sensitive')
		
			if($stmt->rowCount() == 1){
				
				return true;
			} else {
				
				return false;
			}
			
		} catch (Exception $e){ 
			
			print "Ocorreu um erro ao tentar executar esta ação";
			echo  "Erro: Código: " . $e-> getCode() . " Mensagem: " . $e->getMessage();
		} 
	}
	
	public function logaUsuario($user,$senha){
		
		$this->usuario = $user;
		$this->senha = $senha;
		
		if($this->validaUsuario($user,$senha)){ //se o retorno da funcao for verdadeiro
			 
			 if(!isset($_SESSION)) { //inicia a sessao
                session_start();
            }
			
			try{ 
			
					$sql = "SELECT id,nome,usuario FROM ".$this->tabela." where usuario = '".$this->usuario."' and senha = '".$this->senha."'";
					$stmt = Conexao::getInstance()->prepare($sql);
					$stmt->execute();
					$linha = $stmt->fetchAll(PDO::FETCH_ASSOC);
		
					if($stmt->rowCount() == 1){
				
						$_SESSION['usuario_id'] = $linha[0]['id'];
						$_SESSION['usuario_nome'] = $linha[0]['nome'];
						$_SESSION['usuario_login'] = $linha[0]['usuario'];
						$_SESSION['usuario_logado'] = true;
						
						return true;
					}
			
				} catch (Exception $e){ 
			
				print "Ocorreu um erro ao tentar executar esta ação";
				echo  "Erro: Código: " . $e-> getCode() . " Mensagem: " . $e->getMessage();
			} 
		} else {
			
			return false;
		}
	}
	
	public function usuarioLogado(){
		
		 if (!isset($_SESSION)) { //inicia a sessao
                session_start();
            }
		
		if($_SESSION['usuario_logado']){ //se a sessao $_SESSION['usuario_logado'] for igual a TRUE , retorna verdadiro
			
			return true;
		
		}else {
			
			return false;
		}
		
	}
	
	public function logof(){
		 
		 if(!isset($_SESSION)){ //inicia a sessao
			session_start();
		}
		 
		 $_SESSION['usuario_logado'] == false; 	//DEFINE A SESSAO DE USUARIO LOGADO COMO FALSO;
		 session_destroy();						//DESTROI A SESSAO;
	}
	    
}

Na sua pagina do formulário , você pode submeter o formulário para ela mesma ou para uma outra pagina . Ex:

 

RealizaLogin.php

 

Nela , você chama o arquivo com a classe require_once 'Usuário.php';

<php
$usuario = new Usuario(); // Instancia a classe
$user = 'admin';
$senha = '1234';
$usuario->logaUsuario($user,$senha);
?>

Para verificar se tem usuário logado , você chama a Classe usuário novamente

$usuario = new Usuario();

if ($usuario->usuarioLogado() === false) { // Não há um usuário logado, redireciona pra tela de login

header("Location: /views/login.php");
exit;

}

Para deslogar o usuario :

$usuario = new Usuario();

$usuario->logof();

Sei que a resposta ficou grande , mas acredito que fique melhor dessa forma .

Qualquer coisa, posta ae.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
if (isset($_GET['userEntrar'])) {

$login = $_POST["userEmail"];
$senha = $_POST["userSenha"];
$sql = mysql_query("SELECT * FROM explo_us WHERE loginexplo = '$login' AND senhaexplo = $senha'") or die(mysql_error());
$row = mysql_num_rows($sql);

if($row > 0 ){

 

if (!isset($_SESSION)) {
session_start();
$_SESSION["userEmail"] = $_POST["userEmail"];
$_SESSION["userSenha"] = $_POST["userSenha"];
}else{
echo 'Usuário não encontrado no banco de dados.';

 

}

 

 

 

 

 

 

}

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não funcionou pq o Else e referente ao if do session:

if (!isset($_SESSION))
{

----

}
else
{

}
else
{
  echo "usuario não encontrado no banco de dados";
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá...

Realmente o seu "else" está referenciando o if da ($_SESSION).

Tente fazer a condição como : if($row !== 1){ erro } else { continua }, pois se houver erro ele já para no começo.

Tente estudar e fazer algo como o h_felix te passou, mysql já está obsoleta dependendo da versão do php que está usando.

Estude PDO para conexões e excessões para tratar os erros ;D

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse é um típico problema que a simples Indentação correta ajuda a identificar. Por isso é tão importante indentar o código ;)

 

Também é importante dizer que seu código está vulnerável a SQL Injection. Filtre os dados de entrada ou use Prepared Statements

 

 

PS: funções mysql_* estão obsoletas desde o PHP 5.5 e já foram removidas no PHP 7. Prefira usar MySQLi ou PDO. Veja mais aqui: http://rberaldo.com.br/mysql-obsoleto-php/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

  • Conteúdo Similar

    • Por nicolasbessa
      Boa tarde!
       
      Como aplicar a regra abaixo em um select?

      Regra Join
      Quando o campo substr(x, 1,1)  ='1'
      montar a chave de pesquisa:
      y = '8' AND y1 =  'L'||lpad( x1, 2)) 

      Quando o campo substrt(x, 1,1) for igual ='A'
      montar a chave de pesquisa:
      y = '8' AND y1 =  'M'||lpad( x1, 2)) 
       
      obrigado!
    • Por alecram28
      Bom dia.
      Tenho o seguinte exercicio para fazer, comecei a fazer mas nao consigo terminar e nao sei se é bem isso. 
      Se alguem puder me ajudar, sou iniciante. Obrigado!
       
      Questao: Usando HTML, CSS e JS, escreva um algoritmo que leia o código de uma operação a partir o teclado e que realize a operação associada a esse código. O código é um valor inteiro. Os códigos
      e operações são listados abaixo:
      1 Área de um retângulo. Os valores da base e da altura do retângulo devem ser informados pelo usuário. OBS: aretângulo = base * altura.
      2 Área de um triângulo. Os valores da base e da altura do triângulo devem ser informados pelo usuário. OBS: atriângulo = (base * altura) / 2.
      3 Área de um círculo. O valor do raio do círculo deve ser informado pelo usuário. OBS: acírculo = 3,14 * (raio)2
      4 Área de um trapézio. Os valores da base maior, da base menor e da altura do trapézio devem ser informados pelo usuário. OBS: atrapézio = [(base maior + base menor) * altura] / 2.
       
       
       
      Meu código:
      html:
       
      <!DOCTYPE html>
      <html lang="pt-br">
      <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Área figuras</title>
      <link rel="stylesheet" href="pratica06exercicio04.css">
      <script src="pratica06exercicio04.js" type="text/javascript"></script>
      </head>
      <body>
      <main>
      <h1>Área de Figuras Geométricas</h1>
      <h3>Informe o número da operação desejada:</h3>
      <h4>1- Área Retângulo<br>2-Área Triângulo<br>3-Área Círculo<br>4-Área Trapézio</h4>
      <div class="numero">Código <input type="number"id="cod"></div>
      <button onclick="codigo()">OK</button>
      <div id="operandos"></div>
      <div id="resultado"></div>
      </main>
      </body>
      </html>
       
       
       
       
      js:
       
      function codigo() {
      var c = document.getElementById("cod");
      switch (c) {
      case '1':
      operandosRetangulo()
      break;
      case '2':
      operandosTriangulo()
      break;
      case '3':
      operandosCirculo()
      break;
      case '4':
      operandosTrapezio()
      break;
       
      }
      }
       
      function limparTela() {
      var operandos = document.getElementById("operandos");
      var resultado = document.getElementById("resultado");
      operandos.style.display = "none";
      resultado.style.display = "none";
      }
       
      function operandosCirculo() {
      limparTela();
      var operandos = document.getElementById("operandos");
      operandos.innerHTML = "Informe o raio: <input type='number' id='raio'>" +
      "<br/>" + "<button onclick='areaCirculo ()'>OK</button>";
      operandos.style.display = "block";
      }

       
      function operandosRetangulo() {
      limparTela();
      var operandos = document.getElementById("operandos");
      operandos.innerHTML = "Informe a base: <input type='number' id='base'>" +
      "<br/>" +
       
      "Informe a altura: <input type='number'id='altura'>" +
      "<br/>" +
      "<button onclick='areaRetangulo ()'>OK</button>";
      operandos.style.display = "block";
      }
       
      function operandosTriangulo() {
      limparTela();
      var operandos = document.getElementById("operandos");
      operandos.innerHTML = "Informe a base: <input type='number' id='baset'>" +
      "<br/>" +
       
      "Informe a altura: <input type='number'id='alturat'>" +
      "<br/>" +
      "<button onclick='areaTriangulo ()'>OK</button>";
      operandos.style.display = "block";
      }
       
      function operandosTrapezio() {
      limparTela();
      var operandos = document.getElementById("operandos");
      operandos.innerHTML = "Informe a base maior: <input type='number' id='basema'>" +
      "<br/>" +
      "Informe a base menor: <input type='number' id='baseme'>" +
      "<br/>" +
       
      "Informe a altura: <input type='number'id='alturaz'>" +
      "<br/>" +
      "<button onclick='areaTrapezio ()'>OK</button>";
      operandos.style.display = "block";
      }

       
      function areaCirculo() {
      var raioSTR = document.getElementById("raio").value;
      var raio = parseFloat(raioSTR);
      var area = 3.14 * Math.pow(raio, 2);
      var resultado = document.getElementById("resultado");
      resultado.innerHTML = area;
      resultado.style.display = "block";
      }

       
      function areaRetangulo() {
      var baseSTR = document.getElementById("base").value;
      var alturaSTR = document.getElementById("altura").value;
      var base = parseFloat(baseSTR);
      var altura = parseFloat(alturaSTR);
      var area = base * altura;
      var resultado = document.getElementById("resultado");
      resultado.innerHTML = area;
      resultado.style.display = "block";
      }
       
      function areaTriangulo() {
      var bt = document.getElementById("baset").value;
      var at = document.getElementById("alturat").value;
      var baset = parseFloat(bt);
      var alturat = parseFloat(at);
      var areat = (bt * at) / 2;
      resultado.innerHTML = areat;
      resultado.style.display = "block";
      }
       
      function areaTrapezio() {
      var bma = document.getElementById("basema").value;
      var bme = document.getElementById("baseme").value;
      var az = document.getElementById("alturaz").value;
      var areatra = ((bma + bme) * az) / 2;
      resultado.innerHTML = areatra;
      resultado.style.display = "block";
       
      }

       
       
       
       
       
    • Por eXtremedlL
      Olá pessoal, bom dia!
       
      Estou tentando fazer um programa onde preciso ler o nome e o salário (bruto) do funcionário e posteriormente informar ao mesmo qual será salário liquido (já descontando a % do INSS).  Porém, quando digito um salario acima de R$1501, quem tem um desconto de 11%, o sistema me retorna a resposta do desconto de 10%. Alguém poderia me dizer aonde estou errando? (Acredito que sintaxe para o else está incorreta).
       
      //Exercicio 32 - Salario vs Desconto #include <iostream> using namespace std; int main ( ) { float dp9, dp10, dp11, sb, scd, sl; char name[100]; dp9 = 0.09; dp10 = 0.10; dp11 = 0.11; cout<<endl<<"CALCULE O SEU SALARIO (JA DESCONTADO O VALOR % DO INSS)"<<endl; cout<<endl<<"De R$0 a R$800 = 09%; de R$ 801 a 1500 = 10%; de 1501 ou mais = 11%"<<endl; cout<<endl<<"AVISO: NAO UTILIZE VIRGULA. USE SOMENTE PONTO FINAL."<<endl; cout<<"MAS SO USE PONTO PARA REPRESENTAR CENTAVOS. EX: 11111.11"<<endl; cout<<endl; system ("pause"); cout<<endl<<"Digite o seu nome: "; cin>>name; cout<<endl<<"Informe o seu salario bruto: "; cin>>sb; if ( sb <= 800.99 ) { scd = sb * dp9; sl = sb - scd; cout<<endl<<"Solicitante: "<<name<<endl; cout<<endl<<"Salario liquido (-9% INSS) = R$"<<sl<<endl; } else if ( sb >= 801.00 || ( 801.00 == 1500.99 ) ) { scd = sb * dp10; sl = sb - scd; cout<<endl<<"Solicitante: "<<name<<endl; cout<<endl<<"Salario liquido (-10% INSS) = R$"<<sl<<endl; } else if ( sb >= 1501.0 ) { scd = sb * dp11; sl = sb - scd; cout<<endl<<"Solicitante: "<<name<<endl; cout<<endl<<"Salario liquido (-11% INSS) = R$"<<sl<<endl; } cout<<endl; system ("pause"); return (0); }  
    • Por quimera
      Pessoal sempre tive uma dúvida quanto a isto, será que não há um comparador usando multi-valores exemplo:
      function teste(obj){ if(obj != (false || 'teste' || 2)){ return true; } return false; } //Acho feio dessa forma function multiIf(obj){ if(obj != false || obj != 'teste' || obj != 2)){ return true; } return false; } // e dessa forma usa muito código pra pouca coisa function funcSwitch(obj) { switch (obj) { case false: return false; break; case 'teste': return false; break; case 2: return false; break; } return true; }  
    • Por betomunhoz
      bom estou fazendo um codigo simples de um app de consulta de preço tipo de mercado, porém não estou conseguindo fazer o if para quando não encontrar o código de barras no banco de dados apresentar a mensagem de código não encontrado, ele está apresentando a mensagem em qualquer codigo que passo... abaixo esta o código:
      <div align="center" style="color:#0000FF"> <?php     $servidor = "localhost";     $usuario = "root";     $senha = "senha1";     $dbname = "teste";     //Criar a conexao     $conn = mysqli_connect($servidor, $usuario, $senha, $dbname);          $pesquisar = $_POST['pesquisar'];     $result_produtos = "select * from cadpro inner join arqbar where cadpro.codpro01=arqbar.codpro and arqbar.codbarra='$pesquisar'";     $resultado_produtos = mysqli_query($conn, $result_produtos);          if($result_produtos = 0) {         while($rows_produtos = mysqli_fetch_array($resultado_produtos)){         echo '<font size="20" style="color:#000000"'.">";         echo "".$rows_produtos['descpro01']."<br>";         echo '<font size="20" style="color:#FF0000"'.">";         echo 'R$  ' . number_format($rows_produtos['prevend01'], 2, ',', '.');     }         }      else {         echo '<font size="20" style="color:#FF0000"'.">";         echo "PRODUTO NÃO LOCALIZADO!";     }          ?> </div>     <script>     window.setTimeout("history.back(-2)", 3000);     </script>     
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.