Witam,
mecze sie juz z moim hashowaniem pare dni i dalej nie mam pojecia dlaczego to wszystko nie dziala.Rejestracja uzytkowniak przebiega bezproblemowo, jednak przy logowaniu nie widzi uzytkownikow i wywala blad, ze nie ma takiego uzytkowniaka. Zastanawiam sie czy przy dodawniu przy logowaniu soli do hasla, nie ma innego wyniku i dlatego nie przepuszcza. Od patrzenia na ten caly kod juz mam metlik, moze ktos z Was umie zobaczyc co jest tam nie tak?
Logowanie
<?php
require_once "polaczenie_z_baza.php";
//nawiazanie polaczenia z baza
$polaczenie = mysqli_connect($host, $db_user, $db_password, $db_name);
//@ - wyciszenie bledow
mysqli_select_db($polaczenie,"projekt");
if($polaczenie->connect_errno!=0)
{
echo "Error: ".$polaczenie->connect_errno; }
else
{//polaczenie nawiazane:
$login = $_POST['login'];
$haslo =$_POST['haslo'];
$saltQuery = "SELECT salt FROM uzytkownik WHERE login ='$login'";
$result = mysqli_query($polaczenie, $saltQuery); //or die(mysql_error());
$row = mysqli_fetch_assoc($result);
$result->free();
if ($result = $polaczenie->query($saltQuery)) {
}
$salt = $row['salt'];
$saltedPW = $salt. $haslo;
$hashedPW = hash('sha256', $saltedPW);
//zapytanie sql
$sql = "select * from uzytkownik where login ='$login' and haslo = '$hashedPW'";
//wyslanie zapytania do bazy:
if($rezultat = $polaczenie->query($sql))
{
$liczba_wierszy = $rezultat->num_rows;
if($liczba_wierszy == 1)
{//pobranie danych z bazy danych:
//pobranie NAZW indeksow tablicy
$wiersz = $rezultat->fetch_assoc();
$_SESSION['Imie'] = $wiersz['Imie'];
$_SESSION['Nazwisko'] = $wiersz['Nazwisko'];
$_SESSION['email'] = $wiersz['email'];
$_SESSION['login'] = $wiersz['login'];
//zwolnienie
$rezultat->free();
//przykladowe wypisanie na ekran:
Echo "witaj ".$_SESSION['Imie']." ".$_SESSION['Nazwisko']; header('Location: index.php'); //do usuniecia potem
Echo'<a href="index.php">powrot do index.php</a>'; }
else
{// 0 wierszy -> nie udalo sie zalogowac!
$_SESSION['msg']='<sman style="color:red">Nieprawidlowy login lub haslo!</span>';
header('Location: index.php'); }
}
else{
Echo"Error:<br/>Zle zapytanie sql<br/>"; }
//zamkniecie polaczenia z baza:
$polaczenie->close();
}
?>
Rejestracja:
<?php
require_once "polaczenie_z_baza.php";
//nawiazanie polaczenia z baza
$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
//@ - wyciszenie bledow
//nie nawiazano polaczenia z baza
if($polaczenie->connect_errno!=0)
{
echo "Error: ".$polaczenie->connect_errno; }
else
{//polaczenie nawiazane:
//pobranie danych z formularza
$haslo2 = $_POST['haslo2'];
$nazwisko = $_POST['nazwisko'];
$imie = $_POST['imie'];
$email = $_POST['email'];
//*************************kodowanie "SÓL"***************************
$salt = bin2hex(mcrypt_create_iv
(32
, MCRYPT_DEV_URANDOM
));
$saltedPW = $haslo1 . $salt;
$hashedPW = hash('sha256', $saltedPW);
//zapytanie sql
//do sprawdzenia, czy login nie jest juz zajety
$sql_login = "select * from uzytkownik where login ='$login'";
//do sprawdzenia, czy email nie jest juz zajety
$sql_email = "select * from uzytkownik where email ='$email'";
$sql_email="INSERT INTO `projekt`.`uzytkownik` (`id`, `Imie`, `Nazwisko`, `email`, `login`, `haslo`, salt) VALUES (NULL, '$imie', '$nazwisko', '$email', '$login', '$hashedPW', '$salt')";
?>
Z gory dziekuje za pomoc.
Ten post edytował cvanyy 16.11.2015, 22:06:11