Jump to content
Fórum Script Brasil
  • 0

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


edgarmoreira
 Share

Question

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 to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.1k
×
×
  • Create New...