Jag håller på och knåpar med ett par saker och en av dem är att skapa ett loginsystem, detta skall även innehålla lite funktioner bundna till den inloggade personen. Vad jag behöver hjälp med är 1. lite snabb respons på hur jag kodar (håller på och lär mig samtidigt) 2. hur man "saltar" ett lösenord (ursäkta om den frågan lät konstig, noobig eller liknande har hört frasen hos någon och gissar att den har att göra med säkrare lösenord) så duger md5hash som jag gör nu? eller bör man ha något säkrare. Hur praktiskt är det att använda säg av ännu tyngre skydd?
<?php
if(
isset( $_POST['username'] ) &&
isset( $_POST['password'] ) &&
isset( $_POST['mail']
)
{
if( strlen( $_POST['username'] ) < 4 )
{
$feedback[] = 'Please use more then 4 characters in the username';
}
elseif( strlen( $_POST['password'] ) < 4 )
{
$feedback[] = 'Please use more then 4 characters in the password';
}
elseif( $_POST['password'] == $_POST['username'] )
{
$feedback[] = 'Honestly how dumb are you? Who uses the username as a password?';
}
elseif( strlen( $_POST['password'] ) < 0 )
{
$feedback[] = 'Please add your e-mail adress!';
}
else
{
require_once( 'inc/dbconnect.inc.php' );
$username = mysql_real_escape_string( $_POST['username'] );
$password = md5( $_POST['password'] );
$sqlCheckForDuplicate = "SELECT id FROM users WHERE username = '". $username ."'";
if( mysql_num_rows( mysql_query( $sqlCheckForDuplicate ) ) == 0 )
{
$sqlRegUser = "INSERT INTO users( username, password, mail ) VALUES('". $username ."','". $password ."','". $mail ."')";
if( !mysql_query( $sqlRegUser ) )
{
$feedback[] = 'Error: the database were unresponsive retry in 5 seconds';
}
else
{
$feedback[] = 'You are now one step closer to God';
}
}
else
{
$feedback[] = 'The username are in use please choose another one.';
}
}
else
{
$feedback[] = 'Error: The process was aborted due to the fact of you being a moron';
}?>
class user
{
bool isOnline() {}
void login() {}
void logout() {}
int getId() {}
string getName() {}
[...] // litet annat bös
}
Klassen gör egentligen ingenting annat än att hantera sessioner och ev. cookies. Den använder singleton, men det skulle gå lika bra att göra alla metoder statiska.
Om jag inte läser fel så tvättar du inte emailadressen, medans du gör det för usernamn och password (om än via md5). Det är nog dåligt.
Oh give me a clone, my very own clone,
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!
Oh give me a clone, my very own clone,
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!
tackar, vad det gäller att salta? Var det en "korrekt" term eller grep jag efter luft där ? såg även andra småsaker med scriptet som att mailen pekar emot password osv osv. (påpeka icke detta )