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

Problema com formulário de login e com a funcão mysql_result


edgarmoreira

Pergunta

Olá! Estou fazendo um upgrade no meu site devido os antigos mysql foram evoluidos para mysqli, bom estou tendo problemas com o formulário de login, alguém poderia me ajudar, vou mandar o código e o erro:

 

Código: 

<?php
include("Config.php");
function LimparTexto($texto){
$texto=str_replace(array("<", ">", "\\", "/", "=", "'", "?"), "", $texto);
return $texto;
}
$login = LimparTexto($_POST["login"]);
$senha = LimparTexto($_POST["senha"]);
$resultado = mysqli_query($GLOBALS["___mysqli_ston"], "SELECT * FROM usuarios WHERE login = '$login' ");
$linhas = mysqli_num_rows($resultado);
while ($linha = mysqli_fetch_array($resultado)){
$rank = $linha["cargo"];
$foto = $linha["foto"];
}
if ($linhas == ){
header("Location: logar.php?fail=aviso");
}else {
    if ($senha != mysql_result($resultado, , "senha")){
    header("Location: logar.php?fail=incorreto");
    }else{
    if ($rank == Locutor){
    session_start();
    $_SESSION["login_user"] = $login;
    $_SESSION["senha_user"] = $senha;
    $_SESSION["rank"] = $rank;
    $_SESSION["foto"] = $foto;
    header("Location: index.php");
    }else {
    $rank == Administrador;
    session_start();
    $_SESSION["login_user"] = $login;
    $_SESSION["senha_user"] = $senha;
    $_SESSION["rank"] = $rank;
    $_SESSION["foto"] = $foto;
    header("Location: index.php");
    }
    }
    }
((is_null($___mysqli_res = mysqli_close($conecta))) ? false : $___mysqli_res);
?>

erro ao efetuar o login:


Warning: mysql_result() expects parameter 1 to be resource, object given in /home/radioult/public_html/Admin/FuncLogar.php on line 18

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/radioult/public_html/Admin/FuncLogar.php:18) in/home/radioult/public_html/Admin/FuncLogar.php on line 30

Warning: Cannot modify header information - headers already sent by (output started at /home/radioult/public_html/Admin/FuncLogar.php:18) in /home/radioult/public_html/Admin/FuncLogar.php on line35

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Olá!

Tente assim:

Arquivo connect.php

<?php

//  variáveis para conexão com o banco de dados
$host = 'localhost';
$user = 'root';
$password = '';
$database = 'scriptbrasil';

// estabelecer conexão com o mysql
$sqli = new mysqli($host, $user, $password);

// verificar se houve erro na conexão
if ($sqli->connect_error) {
    // se houve erro, mostra erro na tela
    echo "<p>Erro ao Conectar: $sqli->connect_error</p>";
}
// alterar o tipo de codificação da conexão com o banco de dados,  para utf8
if (!$sqli->set_charset('utf8')) {
    echo "<p class='error'>O charset não é utf8: $sqli->error</p>";
}

// selecionar/abrir o banco de dados para trabalhar
if (!$sqli->select_db($database)) {
    // se o banco de dados não for encontrado
    echo "<p class='error'>O banco de dados <b>$database</b>, não existe, chefe!</p>";
}

Arquivo que processa o login:

<?php

require 'connect.php';

function LimparTexto($texto) {
    $texto = str_replace(['<', '>', '\\', '/', '=', "'", '?'], '', $texto);
    return $texto;
}

$login = LimparTexto($_POST['login']);
$senha = LimparTexto($_POST['senha']);
// executa a query
$result = $sqli->query("SELECT * FROM usuarios WHERE login = '$login' ");
// pega o número de resultados
$linhas = $result->num_rows;

if ($linhas == ) {
    header('Location: logar.php?fail=aviso');
} else {
    // pega os dados do usuário
    $dados = $result->fetch_all(MYSQLI_ASSOC);

    // passa o cargo pra variável $rank
    $rank = $dados['cargo'];

    // passa a foto pra variável $foto
    $foto = $dados['foto'];

    // verifica se a senha confere com a senha do banco de dados
    if ($senha != $dados['senha']) {
        header('Location: logar.php?fail=incorreto');
    } else {
        session_start();
        $_SESSION['login_user'] = $login;
        $_SESSION['senha_user'] = $senha;
        $_SESSION['rank'] = $rank;
        $_SESSION['foto'] = $foto;
        header('Location: index.php');
    }
}
$sqli->close();
?>

Em php, aspas duplas são diferentes de aspas simples. Só use aspas duplas se for necessário!

veja: http://www.agenciadewebsites.com.br/?p=351

Link para o comentário
Compartilhar em outros sites

  • 0
Em 07/04/2016 at 20:58, lowys disse:

Olá!

Tente assim:

Arquivo connect.php


<?php

//  variáveis para conexão com o banco de dados
$host = 'localhost';
$user = 'root';
$password = '';
$database = 'scriptbrasil';

// estabelecer conexão com o mysql
$sqli = new mysqli($host, $user, $password);

// verificar se houve erro na conexão
if ($sqli->connect_error) {
    // se houve erro, mostra erro na tela
    echo "<p>Erro ao Conectar: $sqli->connect_error</p>";
}
// alterar o tipo de codificação da conexão com o banco de dados,  para utf8
if (!$sqli->set_charset('utf8')) {
    echo "<p class='error'>O charset não é utf8: $sqli->error</p>";
}

// selecionar/abrir o banco de dados para trabalhar
if (!$sqli->select_db($database)) {
    // se o banco de dados não for encontrado
    echo "<p class='error'>O banco de dados <b>$database</b>, não existe, chefe!</p>";
}

Arquivo que processa o login:


<?php

require 'connect.php';

function LimparTexto($texto) {
    $texto = str_replace(['<', '>', '\\', '/', '=', "'", '?'], '', $texto);
    return $texto;
}

$login = LimparTexto($_POST['login']);
$senha = LimparTexto($_POST['senha']);
// executa a query
$result = $sqli->query("SELECT * FROM usuarios WHERE login = '$login' ");
// pega o número de resultados
$linhas = $result->num_rows;

if ($linhas == ) {
    header('Location: logar.php?fail=aviso');
} else {
    // pega os dados do usuário
    $dados = $result->fetch_all(MYSQLI_ASSOC);

    // passa o cargo pra variável $rank
    $rank = $dados['cargo'];

    // passa a foto pra variável $foto
    $foto = $dados['foto'];

    // verifica se a senha confere com a senha do banco de dados
    if ($senha != $dados['senha']) {
        header('Location: logar.php?fail=incorreto');
    } else {
        session_start();
        $_SESSION['login_user'] = $login;
        $_SESSION['senha_user'] = $senha;
        $_SESSION['rank'] = $rank;
        $_SESSION['foto'] = $foto;
        header('Location: index.php');
    }
}
$sqli->close();
?>

Em php, aspas duplas são diferentes de aspas simples. Só use aspas duplas se for necessário!

veja: http://www.agenciadewebsites.com.br/?p=351

 

<?php

require 'Config.php';

function LimparTexto($texto) {
    $texto = str_replace(['<', '>', '\\', '/', '=', "'", '?'], '', $texto);
    return $texto;
}

$login = LimparTexto($_POST['login']);
$senha = LimparTexto($_POST['senha']);
// executa a query
$result = $sqli->query("SELECT * FROM usuarios WHERE login = '$login' ");
// pega o número de resultados
$linhas = $result->num_rows;

if ($linhas == ) {
    header('Location: logar.php?fail=aviso');
} else {
    // pega os dados do usuário
    $dados = $result->fetch_all(MYSQLI_ASSOC);

    // passa o cargo pra variável $rank
    $rank = $dados['cargo'];

    // passa a foto pra variável $foto
    $foto = $dados['foto'];

    // verifica se a senha confere com a senha do banco de dados
    if ($senha != $dados['senha']) {
        header('Location: logar.php?fail=incorreto');
    } else {
        session_start();
        $_SESSION['login_user'] = $login;
        $_SESSION['senha_user'] = $senha;
        $_SESSION['rank'] = $rank;
        $_SESSION['foto'] = $foto;
        header('Location: index.php');
    }
}
}
$sqli->close();
?>

 

ERRO : 

Parse error: syntax error, unexpected ')' in /home/asbhostc/public_html/estacionamento/FuncLogar.php on line 17

<?php

require 'Config.php';

function LimparTexto($texto) {
    $texto = str_replace(['<', '>', '\\', '/', '=', "'", '?'], '', $texto);
    return $texto;
}

$login = LimparTexto($_POST['login']);
$senha = LimparTexto($_POST['senha']);
// executa a query
$result = $sqli->query("SELECT * FROM usuarios WHERE login = '$login' ");
// pega o número de resultados
$linhas = $result->num_rows;

if ($linhas == ) {
    header('Location: logar.php?fail=aviso');
} else {
    // pega os dados do usuário
    $dados = $result->fetch_all(MYSQLI_ASSOC);

    // passa o cargo pra variável $rank
    $rank = $dados['cargo'];

    // passa a foto pra variável $foto
    $foto = $dados['foto'];

    // verifica se a senha confere com a senha do banco de dados
    if ($senha != $dados['senha']) {
        header('Location: logar.php?fail=incorreto');
    } else {
        session_start();
        $_SESSION['login_user'] = $login;
        $_SESSION['senha_user'] = $senha;
        $_SESSION['rank'] = $rank;
        $_SESSION['foto'] = $foto;
        header('Location: index.php');
    }
}
}
$sqli->close();
?>

 

ERRO : 

Parse error: syntax error, unexpected ')' in /home/asbhostc/public_html/estacionamento/FuncLogar.php on line 17

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...