Jump to content
Sign in to follow this  
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.';}
  
  }
?>

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.';

 

}

 

 

 

 

 

 

}

}

?>

Share this post


Link to post
Share on other 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";
}

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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/

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By 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)
    • By 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
    • By 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
    • By Ericles Boanova
      Olá,
      Estou desenvolvendo um Guia de Solução para pessoas que estão com problemas técnicos com seu notebook.
      Basicamente, no meu banco de dados (Mysql) está cadastrado id_pergunta, pergunta, sim e nao.
       
      Ex:
      id_pergunta pergunta sim não 1 Equipamento está carregado? 2 5 2 Equipamento sofreu alguma queda recentemente? 3 4 3 Entre em contato com uma autorizada para verificar se seu equipamnto possui garantia n/a   4 Faça drenagem de energia no equipamento .. .. 5 Entao carregue! .. ...  
      Então, é basicamente este o ponto que estou com dificuldades.
      Preciso transpor esta lógica do banco de dados para o php.
      Terá uma tela onde haverá diversos problemas genéricos (não liga, não da boot, etc) e a partir da seleção de uma dessas opções irá puxar a primeira questão do banco.
      Com base na resposta desta questão, será buscada a próxima questão ou será finalizado, caso o problema seja resolvido.
      Como faço o código php para este caso? para que fique nesse looping até a solução?
       
    • By JurisCode
      Eu criei um código que faz o seguinte:
       
      Ele pega siglas de uma tabela de dados e apresenta apenas as siglas constantes entre as variáveis $origem e $destino.
       
      Depois eu faço um explode e pesquiso cada sigla em outra tabela, procurando o que significa aquela sigla.
       
      Faço um foreach e dentro do foreach um select na tabela que tem o significado de cada sigla (tabela cidades)
       
      peço para imprimir na tela, mas imprime só o último resultado. Onde como faço para aparecer todos?
      if ($_COOKIE['user'] == 0) { ?> <!-- parte que vaia aparecer quando o usuário não estiver logado --> <?php  }  elseif ($_COOKIE['user'] > 0 && $origem == " " && $destino == " ")  { ?> <!-- Esta parte vai aparecer só quando o usuário estiver logado. vAI CRIAR UM FORMULÁRIO DE BUSCA-->     <section id='about' class="s-about">         <div class="row section-header has-bottom-sep" data-aos="fade-up">             <div class="col-full">                 <h3 class="subhead subhead--dark">PROCURAR CARONAS</h3>                 <h1 class="display-1 display-1--light">Você está procurando uma carona</h1>             </div>         </div> <!-- end section-header -->         <div class="row about-desc" data-aos="fade-up">             <div class="col-full">                 <p>                 No formulário abaixo selecione as cidades de origem e de destino - O sistema vai identificar qual a direção em que você está pretendendo ir e vai listar as rotas possíveis.                 </p>         <p align="center"> <?php $sql = 'SELECT id, sigla, cidade FROM cidades order by cidade'; $result = $conn->query($sql); echo '<form method=get action="#about"><SELECT name="origem" style="font-size: 25px; font-weight: bold; display: inline-block;">'; if ($result->num_rows > 0) {     while($row = $result->fetch_assoc()) {         echo '<OPTION value="' . $row["sigla"]. '">' . $row["cidade"] . '</option>';               }} else {               echo "0 results";               }               echo '</select> | '; $result = $conn->query($sql); echo '<SELECT name="destino" style="font-size: 25px; font-weight: bold; display: inline-block;">'; if ($result->num_rows > 0) {     while($row = $result->fetch_assoc()) {         echo '<OPTION value="' . $row["sigla"]. '">' . $row["cidade"] . '</option>';               }} else {               echo "0 results";               }               echo '</select> <Input type="submit" value="Procurar"> </form>'; ?>             </div>         </div> <!-- end about-desc -->          <!-- end about-stats -->         <div class="about__line"></div>     </section> <!-- end s-about -->       </p> <!-- Final da parte de procurar caronas --> <?php  } elseif (!empty($_GET['origem']) && !empty($_GET['destino'])) { <!-- ESTA PARTE É O RESULTADO DA BUSCA FEITA PELO FORMUÁRIO --> $origem = $_GET['origem']; $destino = $_GET['destino']; $sql = "SELECT * FROM rotas WHERE rota LIKE '%$origem%$destino%' limit 2"; $result = $conn->query($sql); echo utf8_encode('<section id=about" class="s-about"> <div class=col-full> <P>A descrição do trajeto abaixo apresenta TODA A LINHA. Para escolher a melhor linha, observe a partir do seu ponto de partida. Caso queira, você pode ainda clicar em cada rota para ver por onde cada rota passa</p>'); if ($result->num_rows > 0) {     while($row = $result->fetch_assoc()) {         echo '<p style="background-color: #000000; color: #FFFFFF;">' . utf8_encode($row['descricao']) . ' - ';         $rotatotal = $row['rota'];         $positioni = mb_strpos($rotatotal, $origem);         $positionf = mb_strpos($rotatotal, $destino);         $totalstr = mb_strlen($rotatotal);         $rotaescol = mb_substr($rotatotal, $positioni, $positionf - $positioni + 2);         $rotarray = explode(' ', $rotaescol);         foreach($rotarray as $ct);         {         $sql2 = "SELECT * FROM cidades WHERE sigla = '$ct'";         $rescit = $conn->query($sql2);         if ($rescit->num_rows > 0) {         while($row2 = $rescit->fetch_assoc()) {         echo ' - '. $row2['cidade'];         }}         else{         echo '';         }         }}}               } else {               echo '<section id="about" class="s-about">0 resultsNão era para estar aparecendo isto."</section>';               }               echo '</div></section> | '; <!-- FINAL DO SCRIPT -->  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.