Ir para conteúdo
Fórum Script Brasil
  • 0

Erro Após Implementar Sistema De Login


Gelowks

Pergunta

Olá galera, beleza?

É o seguinte, depois que eu coloquei um sistema de login por sessão, todos os arquivos com mysql_fetch_array() dão este erro:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\arquivos de programas\easyphp1-8\www\ultrax\admin\xxx.php on line x

O arquivo que verifica se está logado é este:

verifica_session.php

<?php
session_start();
if (isset($_SESSION["login_usuario"]) AND isset($_SESSION["senha_usuario"])) {
    $login_usuario = $_SESSION["login_usuario"];
    $senha_usuario = $_SESSION["senha_usuario"];
}else{
echo "Você não efetuou o login.<br />";
echo '<a href="./login.php">logar</a>';
exit();/*caso não tinha session.. quer dizer.. ele não logou*/
} /*aqui primeiro ele checa para ver se exite essas Sessoes, e depois ele coloca o valor das sessoes nessas variaveis... para fazermos os testes!*/

if(!(empty($login_usuario) OR empty($senha_usuario)))
{
//acessa ao banco de dados
include('../path_phpbb.php');
include(".".$path_phpbb."/config.php");
$connect = mysql_connect($dbhost, $dbuser, $dbpasswd) or die(mysql_error());
mysql_select_db($dbname, $connect) or die('Erro ao se conectar com o banco de dados');
$resultado = mysql_query("SELECT * FROM ".$table_prefix."users WHERE  username='$login_usuario'");
if (mysql_num_rows($resultado) == 1)/*caso exista esse login.. vamos testar a senha então*/
{
   if (MD5($senha_usuario) != mysql_result($resultado, 0, "user_password"))
   {
       unset ($_SESSION["nome_usuario"]);/*apaga a session que existia mas era errada..*/
       unset ($_SESSION["sehna_usuario"]);
       echo "Você não efetuou o login.";
       exit();
   }
}else {
       unset ($_SESSION["nome_usuario"]);
       unset ($_SESSION["sehna_usuario"]);
       echo "Você não efetuou o login.";
       exit();
}

}else{
echo "Você não efetuou o login.";
exit();/*caso das sessions estarem vazias*/
}
?>

Nas páginas que necessitam de estar logado, tem um include para este arquivo, se eu retiro o include a página funciona normalmente, mais não impede a entrada de users deslogados =/

Oque eu faço?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Bom nesse sistema parece que o usuário nunca será logado, pois em todas situações a session será destruída. Ou tem alguma coisa que não estou vendo?

Vou postar aqui o login.php:

<?php 
define('IN_PHPBB', true);
$acao = (isset($_GET['acao'])) ? addslashes($_GET['acao']) : FALSE;
if($acao == ''){
header("location: ./login.php?acao=login");
exit;
}
header("Pragma: no-cache");

if($acao== "logar"){
include('../path_phpbb.php');
include(".".$path_phpbb."config.php");
$connect = mysql_connect($dbhost, $dbuser, $dbpasswd)or die(mysql_error());
mysql_select_db($dbname, $connect) or die('Erro ao se conectar com o banco de dados');

$login = (isset($_POST['usuario'])) ? addslashes($_POST['usuario']) : FALSE;
$senha = (isset($_POST['senha'])) ? addslashes($_POST['senha']) : FALSE;

$resultado = mysql_query("SELECT * FROM ".$table_prefix."users WHERE username='$login'");
$contagem = mysql_num_rows($resultado);
if ($contagem) {
    while ($dados = mysql_fetch_array($resultado))
    {    
        $sql_senha = $dados['user_password'];
        $sql_login = $dados['username'];
        $sql_level = $dados['user_level'];
    }
    if ($senha == MD5($sql_senha) || $login == $sql_login || $sql_level = '1')
    {
           session_start();
           $_SESSION["login_usuario"] = $login;
           $_SESSION["senha_usuario"] = $senha;
           header("Location: ./index.php");
    }
    else {
            echo 'Usuário/senha errado!';
            exit;
        }
    }
    else {
        echo 'Usuário/senha errado!';
        exit;
    }
}

if($acao== "logout"){
session_start();
$_SESSION = array();
session_destroy();
header("Location: ./login.php?acao=login");
}

if( $acao == "login"){
 echo '<form action="login.php?acao=logar" method="post">
            <br />
            <span class="gen">Login:</span>
            <input name="usuario" type="text" /><br />
<span class="gen">Senha:</span> <input name="senha" type="password" /><br />
<input type="submit" value="Logar-se" />
            <br />
            <br />
          </form>';
}
include('page_footer.php');
?>

No verifica_session.php, não deleta a sessão, pois mesmo com aquele unset, depois de rolar uma página com o include, para o verifica_session.php, se eu ir para outra com o include, ele abre também...

Só vai pedir o login se eu rodar login.php?acao=logout

Abraços.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,4k
    • Posts
      652,3k
×
×
  • Criar Novo...