Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
nie chodzi hashowanie md5 [php] - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: nie chodzi hashowanie md5 [php] (/thread-nie-chodzi-hashowanie-md5-php)



nie chodzi hashowanie md5 [php] - kamil133 - 12-06-2011

Kiedy się loguje to pisze ze nie istnieje czyli jest else. Jest to powodem kodowania md5, gdyż jak usune to kodowanie to na innym koncie nie zahashowanym mi się zalogowuje nie wiem czemu niechce mi to chodzić.

I co mi radzicie zrobić, żeby w innych funkcjach dało się używać id tego usera bo jak daje w func.php global $id to mi w innych funkcjach nie działa. Dlaczego?


To jest moje logowanie:
Kod:
<table>
    <form id="login" action="login.php" method="POST">
    <tr><td>Login: </td><td><input type="text" name="email"/><br/></td>
    <td>Haslo: </td><td><input type="password" name="password"/></td><br/>
    <td><input type="submit" name="submit" class="text" value="Loguj"/></td></tr>
    </form>
    </table>



Kod PHP:
<?php
    session_start
();
     
    include (
"func.php");
     
     
     
     
    
$row get_user($_POST['email'],$_POST['password']);
     
    if (
$row)
    {
    
$_SESSION['id'] = $row['email'];
    
$_SESSION['username'] = $row['name'];
    
header("Location: postac.php");
    exit;
     
    }
    else
    {
    echo 
"NIe istnieje";
    }
    
?>

To jest mój func.php:

Kod PHP:
<?php
    
function db_connect()
    {
     
    
$conn mysql_connect("localhost","kamil","kamilw1");
     
    if (!
$conn)
    {
    echo 
mysql_error();
    exit;
    }
    if (!
$db mysql_select_db("kalorie"))
    {
    echo 
mysql_error();
    exit;
    }
     
    return 
$conn;
    }
     
     
     
    function 
get_user($useremail,$userpassword)
    {
     
    
db_connect();
    
$userpassword md5($userpassword);
    
$query sprintf("
    SELECT * FROM user WHERE login='
$useremail' AND haslo='$userpassword'");
     
    
$result mysql_query($query);
    
$row mysql_fetch_assoc($result);
    
$id $row['id'];
    global 
$id;
    return 
$row;
    }
    
?>



RE: nie chodzi hashowanie md5 [php] - Sosna - 13-06-2011

Jeśli chodzi o md5 nie napisałeś zbyt jasno co i jak, ale ogólnie rzecz biorąc idea jest taka, że przy tworzeniu konta zapisujesz w bazie danych hasło zaszyfrowane w md5, a później sprawdzasz je z tym podanym przy logowaniu, po jego zaszyfrowaniu w md5 (tzn. $password != md5($password) ).

Poza tym poczytaj sobie o sesjach w php.
Po pierwsze nie widzę gdzie ją rozpocząłeś (chodzi o taką linijkę):

Kod PHP:
session_register($row['login']); 

Nie widzę też gdzie sprawdzasz poprawność hasła z loginem. Mówiąc krótko, twój kod jest naprawdę pomieszany, poczytaj sobie o tworzeniu systemu logowania.