Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

  • Conteúdo Similar

    • Por Rodrigo Bigas
      Olá colegas, 
      Desenvolvi um sistema simples de boletim escolar. Conforme os dados são inseridos nas textfields ao clicar no botão Resultado, deverá mostrar em uma JTable. O problema é que a última coluna (resultado) da JTable tem que estar dentro de uma condição if/else para setar se o aluno está "aprovado", "em recuperação" ou "reprovado conforme a condição". Estou com dificuldades em descobrir qual é o método correto que seta este resultado de forma dinâmica. Segue os prints:
       
      Conforme o código e o print acima, o sistema funciona somente para a primeira linha, porque está setando de forma estática, obtendo os valores do índice e coluna, qual seria o método para setar o valor de forma dinâmica do índice e coluna?
    • Por stefanyprs
      //modelo.html <!DOCTYPE html> <html lang="pt-br"> <head>     <meta charset="UTF-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Hora do dia</title>     <link rel="stylesheet" href="estilo.css"> </head> <body onload="carregar()">     <header>         <h1> Hora do dia </h1>         </h1>     </header>     <section>         <div id="msg">             msg         </div>         <div id="foto">             <img class="imagem" src="fotomanha.jpg" alt="foto do dia">         </div>     </section>     <footer>         <p>&copy; Rodapé </p>     </footer>     <script src="script.js"></script> </body> </html>   //script.js function carregar () {     var msg = window.document.getElementById('msg')     var img  = window.document.getElementsByClassName('imagem')      var data = new Date()     var hora = data.getHours()          msg.innerHTML = 'Agora são ' + hora + ' horas'          if (hora >= 0 && hora < 12){         //Bom dia         img.src = 'fotomanha.jpg'         } else if (hora >= 12 && hora < 18){         //Boa tarde         img.src = 'fototarde.jpg'      } else {         //Boa noite         img.src = 'fotonoite.jpg'     } }   //estilo.css body{     background-color: aqua;     font: normal 15pt Arial; } header{     color:rgb(255, 255, 255);     text-align: center; } section{     background: white;     border-radius: 10px;     padding: 15px;     width: 500px;     margin:auto;     box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.329);      } footer{     color:white;     text-align: center;     font-style: italic;   } div{     text-align: center; } .imagem{     width: 500px;    /* largura da imagem */     height: 350px;   /*  altura da imagem  */     margin-top: 10px; /* margem do topo */ }
    • Por biakelly
      Oi,
       
       não estou conseguindo fazer isso, podem me ajudar?
       
      <?php $botaoaluno = mysql_query("SELECT aluno FROM escola WHERE colegio_id='$colid'",$db); $alunoativo = mysql_num_rows($botaoaluno); if ($alunoativo = 1) { ?> <?php $pegaralunos = mysql_query("SELECT alunosdisponiveis FROM tabelasalunos WHERE userID='{$_SESSION['userid']}' and alunosID='{$objauALN["alunID"]}'", $db); $classe = mysql_num_rows($pegaralunos); if ($classe > 0) { ?> <button name="geraralunos">Aluno presente</button> <?php } else { ?> <button name="geraralunos">Aluno faltante</button> <? } } else{ ?> <p>Não tem aluno</p> <?php } ?> o que eu preciso, se o alunoativo for igual a 1, fazer o próximo IF, mas se ele for igual a 0 mostrar a mensagem (não tem aluno)
    • Por Dinho Nunes LC
      Como posso adicionar uma terceira opção a essa td?
       
      Funciona assim.
       
      <td align="center"> <?php if ($usuario['dia'] - $usuario['uso'] <= -1) {echo "Expirado";} else {echo "Em ", $usuario['dia'] - $usuario['uso'], " Dias";} ?> </td>
       
      Resultado atual.
       
      if ($usuario['dia'] - $usuario['uso'] <= -1) {echo "Expirado";}  ~ Exibe Expirado / Está Ok
      = 0 Exibindo "Em 0 Dias"
      else {echo "Em ", $usuario['dia'] - $usuario['uso'], " Dias";}  ~ Exibe a subtração dos dias. / Está Ok
       
      Resultado pretendido
       
      if ($usuario['dia'] - $usuario['uso'] <= -1) {echo "Expirado";} Exibe Expirado / Está Ok
      = 0 Exibir a palavra "Hoje"
      else {echo "Em ", $usuario['dia'] - $usuario['uso'], " Dias";} Exibe a subtração dos dias. / Está Ok
    • Por Gildvan Arley
      <?php $data = date("d/m/Y"); $fimVip = $exibir_pag["fimvip"]; $dataPag = $exibir_pag["data"]; if ($fimVip == NULL){ echo "<span class='label label-danger'>Aguardando Pagamento</span>"; } else if ($fimVip < $data){ echo "<span class='label label-success'>Vip ativado</span>"; } else if ($fimVip == $data){ echo "<span class='label label-info'>Acaba hoje</span>"; } else if ($fimVip > $data){ echo "<span class='label label-danger'>Vip Removido</span>"; } ?> Estou com um problema
      o else só esta indo ate o Vip Ativado o restante não vai mais.
      assim que o jogador se cadastra ele recebe a data como NULL de pagamento, por isso usei ali $fimVip == NULL
       
      Print do painel
      http://prntscr.com/po5ph2
×

Informação importante

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