webForumDet fria alternativet

password

5 svar · 375 visningar · startad av Ella

EllaMedlem sedan mars 200927 inlägg
#1

Har en inloggningssida med input type password. Har även satt "password" som function i mySQL. Min fråga är hur jag bakar in det i min kod så att det fungerar korrekt?


<?php
$host="localhost";
$username="***";
$password="***";
$db_name="***";
$tbl_name="members";

mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword']; 

$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

if($count==1){

session_register("myusername");
session_register("mypassword"); 
header("location:sida3.php");
}
else {
echo "Fel Anv&auml;ndarnamn eller L&ouml;senord";
}
?>
MeleaMedlem sedan juli 20033 147 inlägg
#2

Använd MD5() istället för PASSWORD(). PASSWORD() krypterar bara en väg, det finns alltså inget sätt att få veta vad hieroglyferna betyder.

Om du använder MD5() kan du skriva såhär:

$mypassword = md5($mypassword);
drewMedlem sedan mars 2007845 inlägg
#3

md5() är också envägskryptering.

EllaMedlem sedan mars 200927 inlägg
#4

Hmm...så här? (ändrat till md5 i mySQL också)

$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword']; 

$myusername = stripslashes($myusername);
$mypassword = md5($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

Får inte det att fungera. :(

Ska jag ha med md5 i $sql? Liknande det här?

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password=md5('$mypassword')";
drewMedlem sedan mars 2007845 inlägg
#5

$mypassword = md5($mypassword); räcker. Men du måste göra det vid registrering när lösenordet sparas också.

I databasen ska det vara en vanlig varchar.

EllaMedlem sedan mars 200927 inlägg
#6

Underbart! Bockar och bugar... :)

131 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)