[Ajuda] [PHP verificar] Verificar senha para login
#1

Alguйm poderia me ajudar como a como fazer a verificaзгo de senha correta pra fazer sistema de login assim como no meu server pro meu site do server? Seria de grande ajuda pra eu comeзar a estudar e pra ter uma base pras pessoas se guiarem, porque as que eu achei aqui estгo todas OFFs ou defasadas

login server
Код:
new Senha[64];
SHA256_PassHash(inputtext,HASH_SENHA,Senha,64);
mysql_format(ConnectMYSQL, query, sizeof(query), "SELECT * FROM accounts WHERE Senha = '%e' AND Username ='%s'", Senha, GetName(playerid));
mysql_pquery(ConnectMYSQL, query, "OnLogin", "d", playerid);
Код:
forward OnLogin(playerid); public OnLogin(playerid) {
	new rows, fields;
	cache_get_row_count(rows);
	cache_get_field_count(fields);
	if(rows) { OnPlayerLogin(playerid); }
	else { ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Incorrect Password!", "Please enter a correct password in order to log-in\nPress log-in to continue", "Log-in", "Quit"); }
	return 1;
}
login.php
Код:
<center>
	<h2>Login</h2>
	<form role="form" method="POST" action="actions/verificar.php"> 
	<div class="container_login">
	<label><b>Username</b></label>
	<input type="text" placeholder="Enter Username" name="usr" required>
	<br>
	<label><b>Password</b></label>
	<input type="password" placeholder="Enter Password" name="psw" required>
	<br>
	<button type="submit">Login</button>
	</div>
</center>
Alguйm poderia dar uma base de como seria o verificar.php?
Reply
#2

Nгo precisa de verificar.php, use esse script abaixo em MySQLi, altere o salt no hash e os dados de sua database:
PHP код:
<html>  
    <head>  
        <title> SAMP </title>
    </head> 
    
    <body>
        <?php
        $conexao 
mysqli_connect("host""user""password""database");
        
        
session_start(); 
        
        if(isset(
$_SESSION['Nome']))
        {
            echo 
"Vocк jб estб logado como <strong>$_SESSION[Nome]</strong>!";
            exit();
        } 
        if(isset(
$_POST['usr']) && isset($_POST['psw']) && isset($_POST['botao'])) 
        { 
            
$usuario mysqli_real_escape_string($conexao$_POST['usr']);  
            
$senha strtoupper(hash("sha256"$_POST['psw'] . $HASH_SENHA));  
             
            
$query mysqli_query($conexao"SELECT UserID, Username, Senha FROM accounts WHERE Username='$usuario' AND Senha='$senha' LIMIT 1");  
            
            if(
mysqli_num_rows($query) < 1)  
            {
                
//usuбrio ou senha invбlidos 
                
$loginFail 1;
            }
            else 
            { 
                
//login efetuado 
                
$dados mysqli_fetch_assoc($query);  
                
$_SESSION['ID'] = $dados['UserID'];  
                
$_SESSION['Nome'] = $dados['Username'];
                
$_SESSION['Senha'] = $dados['Senha']; 
                
header("location: login.php");   
            }  
        }
        
?> 
        <center>  
            <h2>Login</h2>
            <?php if(isset($loginFail)) echo "ERRO: Usuбrio ou senha invбlidos!"?>
            <form role="form" method="post" action="">   
                <div class="container_login">
                    <label><b>Username</b></label>  
                    <input type="text" placeholder="Enter Username" name="usr">  
                    <br>  
                    <label><b>Password</b></label>  
                    <input type="password" placeholder="Enter Password" name="psw">  
                    <br>
                    <button type="submit" name="botao">Login</button>  
                </div>
            </form>
        </center> 
    </body>  
</html>
Reply
#3

Nossa que cуdigo simples e organizado +rep

Porйm aqui nгo estб funcionando, sempre entra como senha incorreta, alguma ideia do que pode ser?

Sу modifiquei pra:
PHP код:
    <?php
    $conexao 
mysqli_connect($hostname$username$password$database);
    
session_start(); 
    if(isset(
$_SESSION['Nome']))
    {
        echo 
"Vocк jб estб logado como <strong>$_SESSION[Nome]</strong>!";
        exit();
    } 
    if(isset(
$_POST['usr']) && isset($_POST['psw']) && isset($_POST['botao'])) 
    { 
        
$usuario mysqli_real_escape_string($conexao$_POST['usr']);  
        
$senha hash("sha256"$HASH_SENHA$_POST['psw']);
         
        
$query mysqli_query($conexao"SELECT UserID, Username, Senha FROM accounts WHERE Username='$usuario' AND Senha='$senha' LIMIT 1");  
        
        if(
mysqli_num_rows($query) < 1)  
        {
            
//usuбrio ou senha invбlidos 
            
$loginFail 1;
        }
        else 
        { 
            
//login efetuado 
            
$dados mysqli_fetch_assoc($query);  
            
$_SESSION['ID'] = $dados['UserID'];  
            
$_SESSION['Nome'] = $dados['Username'];
            
$_SESSION['Senha'] = $dados['Senha']; 
            
header("location: login.php");
        }  
    }
    
?> 
    <center>  
        <h2>Login</h2>
        <?php if(isset($loginFail)) echo "ERRO: Usuбrio ou senha invбlidos!"?>
        <form role="form" method="post" action="">   
            <div class="container_login">
                <label><b>Username</b></label>  
                <input type="text" placeholder="Enter Username" name="usr">  
                <br>  
                <label><b>Password</b></label>  
                <input type="password" placeholder="Enter Password" name="psw">  
                <br>
                <button type="submit" name="botao">Login</button>  
            </div>
        </form>
    </center>
E antes do <html> fiz um
PHP код:
<?php
require_once('config.php');
?>
E meu config.php й:
PHP код:
<?php
$hostname 
'localhost';
$username 'root';
$database 'samp';
$password 'msdm15';
$HASH_SENHA 'KOSDXEABXLPQWAEOIEOXP';
?>
Reply
#4

usa DOF2 isso й bem mais erast
Reply
#5

Eu errei colocando vнrgula entre o salt e o texto, quando devia ser um ponto para unir as variбveis, ficando:
PHP код:
$senha hash("sha256"$HASH_SENHA $_POST['psw']); 
@EDIT
Se mesmo com isso ocorrer de novo, й porque o php estб retornando o hash em minъsculas e o PAWN em maiъsculas, devendo adicionar:
PHP код:
$senha strtoupper(hash("sha256"$HASH_SENHA $_POST['psw'])); 
Reply
#6

Bela base!
Reply
#7

Aqui tambйm estб dando esse problema de senha incorreta, de qualquer jeito obrigado por estar tentando ajudar reputado!
Reply
#8

Tente:
PHP код:
$senha strtoupper(hash("sha256"$_POST['psw'] . $HASH_SENHA)); 
Reply
#9

Quote:
Originally Posted by RodrigoMSR
Посмотреть сообщение
Tente:
PHP код:
$senha strtoupper(hash("sha256"$_POST['psw'] . $HASH_SENHA)); 
Funcionou! Obrigado +rep!
Reply
#10

Agora ta funcionando, vlw rodrigo!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)