18. januar 2007 - 18:51Der er
21 kommentarer og 1 løsning
Mysql/php crypterer user password
Hej, jeg har nogle problemer med at sætte et login op, så derfor hentede jeg en pakke på nettet, men desværre efter man registrere bliver det password man skrev crypteret og derefter skal man skrive DET CRYPTEREDE! password for at logge ind...
Jeg kan sende min rod mappe med filerne til jer hvis i gider at hjælpe...
Man skulle da helst ikke skrive det krypterede password for at logge ind. Hvordan ser den side ud hvor man opretter en bruger, og den hvor man logger ind?
//connect to the db server , check if uname exist include('config.php'); $query=("Select * from user where uname='$name'"); $result= mysql_query($query); $num=mysql_num_rows($result); if ($num > 0) {//Username already exist header( "Location:Messages.php?msg=6" ); exit(); }else{ //if username does not exist insert user details $query=( "INSERT INTO user (uname, pw,email,date_joined,ip,level) VALUES ('$name',password('$pw1'),'$email',NOW(),'$ip','Normal')"); if (@mysql_query ($query)) { header("location:login.php?reg=1"); exit; } } mysql_close(); } ?>
yep. man plejer at lægge et krypteret password ind i databasen. Lad os sige mit password skal være "test1234".
det smider jeg så f.eks ind i db: md5("test1234") .. Så ligger mit password i DB som noget volapyk. Når jeg så skal logge ind bruger jeg mit password "test1234", så spørger den om md5("test1234") er lig med det volapyk der står i databasen, og det vil det være
Det var fordi du i Fil1 sagde at den skulle smide et krypteret password i DB. Men i Fil2, stod der den skulle matche et plaintext password med et krypteret, og det vil aldrig virke :)
<? function userexist($username){ include('config.php'); $result=mysql_query("Select * from user where uname='$username'") or die(mysql_error()); //$result= mysql_query($query);
if(mysql_num_rows($result)>0)
return true;//username exist else return false;//username not in db }
function sendpass($user){ include("config.php"); $result =mysql_query("Select pw from user where uname='$user'") or die(mysql_error()); //$result= mysql_query($query); if(mysql_num_rows($result)>0) return true;//password exist else return false;//password not in db }
function filledin($form_vars){ foreach($form_vars as $key=> $value) { if(!isset($key) || ($value == '')) return false; } return true; }
function changepw($name){ $query="Select pw from user where uname='$name'" or die(mysql_error()); $result= mysql_query($query);
if(mysql_num_rows($result)>0){ for ($i=0; $i<mysql_num_rows($result); $i++) { $row = mysql_fetch_assoc($result);
$pass=$row['pw']; echo ' <center><form name="form1" method="post" action="forgotten.php">'; echo 'Please fill in the following:<br>';
} } } function update($newpass,$uname){ if(isset($_POST['submit'])){ //1. Check fields are filled in if (!filledin($form_vars)){ echo "Please ensure that you have filled in ALL fields."; exit; }else{ $newpass=$_POST['newpass'];
}
include "config.php"; $query="Update user SET pw='$newpass' Where uname=$uname Limit 1 "; $result=mysql_query($query); if(mysql_affected_rows()==1){ echo "Record number <b>$id</b> has been updated"; }else{ echo "Could not update record number <b>$id</b> because " .mysql_error() . ""; } } } ?>
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.