PHP Register page

11/01/2013 10:24 xSincex#1
Hey Leute, undzwar hab ich mich dazu entschlossen bisschen php unter die Lupe zu nehmen.

Ich hab da ein Problem, undzwar möchte ich ne simple register aufbauen.

Nur ich scheitere grade an dem, das er kein salt benutzen soll und ich nicht weis wie ich es umschreibe.


Ich hoffe ihr könnt mir helfen ich wäre echt dankbar.


PHP Code:
<?php
    
//retrieve our data from POST
    
$username $_POST['username'];
    
$password1 $_POST['password1'];
    
$password2 $_POST['password2'];
    
$email $_POST['email'];
     
    if(
$password1 != $password2)
    
header('Location: registration.html');
     
    if(
strlen($username) > 30)
    
header('Location: registration.html');
    
    
    
//Das hier soll weg und durch normale Buchstaben/Zahlen erstezt werden also kein Salt password.
    
$hash hash('sha256'$password1);
     
    function 
createSalt()
    {
    
$text md5(uniqid(rand(), true));
    return 
substr($text03);
    }
     
    
$salt createSalt();
    
$password hash('sha256'$salt $hash);
    

    
$conn mysql_connect('localhost''root''');
    
mysql_select_db('login'$conn);
     
    
//sanitize username
    
$username mysql_real_escape_string($username);
     
    
$query "INSERT INTO member ( username, password, email, salt )
    VALUES ( '
$username', '$password', '$email', '$salt' );";
    
mysql_query($query);
     
    
mysql_close();
     
    
header('Location: login.php');
    
?>
11/01/2013 13:52 Shawak#2
So?

PHP Code:
<?php 
    
//retrieve our data from POST 
    
$username $_POST['username']; 
    
$password1 $_POST['password1']; 
    
$password2 $_POST['password2']; 
    
$email $_POST['email']; 
      
    if(
$password1 != $password2
    
header('Location: registration.html'); 
      
    if(
strlen($username) > 30
    
header('Location: registration.html'); 
 
    
$conn mysql_connect('localhost''root'''); 
    
mysql_select_db('login'$conn); 
      
    
$password hash('sha256'$password1); 
    
$username mysql_real_escape_string($username); 
    
$email mysql_real_escape_string($email); 
      
    
$query "INSERT INTO member ( username, password, email, salt ) 
    VALUES ( '
$username', '$password', '$email', '');"
    
mysql_query($query); 
      
    
mysql_close(); 
      
    
header('Location: login.php'); 
    
?>
11/01/2013 14:07 xSincex#3
nicht ganz jetzt kommt da so ein gekritzel raus

9f86d081884c7d659a2feaa0c55ad015

Ich meinte z.b. wenn ich ein Account erstelle mit

ID: Test
Password: Test


Das er es exakt so in der Db anzeigen soll.

Aber danke für deine hilfe.
11/01/2013 14:50 tolio#4
es macht aber keinen sinn passwörter plain in der db zu speichern, deswegen wird nur der hash gespeichert
11/01/2013 14:55 xSincex#5
Das es kein sinn macht ist mir bewusst, dennoch kann ich mit gehashten passwörten nix anfangen da diese nicht angenommen werden.
11/01/2013 15:39 Shawak#6
Wie können gehashte Passwörter nicht angenommen werden?
11/02/2013 00:54 EngelEatos#7
Quote:
Originally Posted by Shawak View Post
Wie können gehashte Passwörter nicht angenommen werden?
Vielleicht Datenbank falsch konfiguriert.

PHP Code:
//an Shawak's Code (post1) orientiert
<?php 
    
//retrieve our data from POST 
    
$username $_POST['username']; 
    
$password1 $_POST['password1']; 
    
$password2 $_POST['password2']; 
    
$email $_POST['email']; 
      
    if(
$password1 != $password2
    
header('Location: registration.html'); 
      
    if(
strlen($username) > 30
    
header('Location: registration.html'); 
 
    
$conn mysql_connect('localhost''root'''); 
    
mysql_select_db('login'$conn); 
      
     
    
$username mysql_real_escape_string($username); 
    
$email mysql_real_escape_string($email); 
      
    
$query "INSERT INTO member ( username, password, email ) 
    VALUES ( '
$username', '$password1', '$email');";
    
mysql_query($query); 
      
    
mysql_close(); 
      
    
header('Location: login.php'); 
    
?>
du musst die datenbank dementsprechend ändern, d.h. 'Salt'-Spalte raus
#nicht getestet
11/02/2013 02:00 Shawak#8
@EngelEatos: Du hast vergessen das Password zu escapen, böse.
11/02/2013 11:16 xSincex#9
@EngelEatos


Danke jetzt geht alles ;)
11/02/2013 13:04 jibi1996#10
mysql_close();

What? : >
11/04/2013 22:18 xxfabbelxx#11
moved