登录代码将仅使用md5加密密码登录

编程入门 行业动态 更新时间:2024-10-26 16:27:28
本文介绍了登录代码将仅使用md5加密密码登录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我已经创建了一个登录+注册站点.注册页面可以正常工作,也可以登录,只是当我必须输入密码时,我必须使用加密版本md5 ... 我已经完成了注册页面,以便他们的密码得到加密.我该如何在登录页面上设置密码,以便他们无需输入md5密码,而只需输入普通密码?

I've created a login + register site. The register page works fine, login too except that when I have to write in my password I have to write in the encrypted version, the md5... I've done in register page so that their password gets encrypted. How can I make in login page so that they dont need to write their md5 password, just their normal one?

register.php看起来像:

The register.php looks like:

<? $reg = @$_POST['reg']; //declaring variables to prevent errors $fn = ""; //First Name $ln = ""; //Last Name $un = ""; //Username $em = ""; //Email $em2 = ""; //Email 2 $pswd = ""; //Password $pswd2 = ""; // Password 2 $d = ""; // Sign up Date $u_check = ""; // Check if username exists //registration form $fn = strip_tags(@$_POST['fname']); $ln = strip_tags(@$_POST['lname']); $un = strip_tags(@$_POST['username']); $em = strip_tags(@$_POST['email']); $em2 = strip_tags(@$_POST['email2']); $pswd = strip_tags(@$_POST['password']); $pswd2 = strip_tags(@$_POST['password2']); $d = date("Y-m-d"); // Year - Month - Day if ($reg) { if ($em==$em2) { // Check if user already exists $u_check = mysql_query("SELECT username FROM users WHERE username='$un'"); // Count the amount of rows where username = $un $check = mysql_num_rows($u_check); if ($check == 0) { //check all of the fields have been filed in if ($fn&&$ln&&$un&&$em&&$em2&&$pswd&&$pswd2) { // check that passwords match if ($pswd==$pswd2) { // check the maximum length of username/first name/last name does not exceed 25 characters if (strlen($un)>25||strlen($fn)>25||strlen($ln)>25) { echo "The maximum limit for username/first name/last name is 25 characters!"; } else { // check the maximum length of password does not exceed 25 characters and is not less than 5 characters if (strlen($pswd)>30||strlen($pswd)<5) { echo "Your password must be between 5 and 30 characters long!"; } else { //encrypt password and password 2 using md5 before sending to database $pswd = md5($pswd); $pswd2 = md5($pswd2); $query = mysql_query("INSERT INTO users VALUES ('','$un','$fn','$ln','$em','$pswd','$d','0')"); die("<h2>Welcome to InstaWord!</h2>Login to your account to get started ..."); } } } else { echo "Your passwords don't match!"; } } else { echo "Please fill in all of the fields"; } } else { echo "Username already taken ..."; } } else { echo "Your E-mails don't match!"; } } ?> <table class="homepageTable"> <tr> <td width="60%" valign="top"> <h2>Share your texts!</h2> <img src="img/animation.gif" width="930"> </td> <td width="40%" valign="top"> <h2>Sign up</h2> <form action="#" method="post"> <input type="text" size="25" name="fname" placeholder="First Name" value="<? echo $fn; ?>"> <input type="text" size="25" name="lname" placeholder="Last Name" value="<? echo $ln; ?>"> <input type="text" size="25" name="username" placeholder="Username" value="<? echo $un; ?>"> <input type="text" size="25" name="email" placeholder="Email" value="<? echo $em; ?>"> <input type="text" size="25" name="email2" placeholder="Repeat Email" value="<? echo $em2; ?>"> <input type="password" size="25" name="password" placeholder="Password"> <input type="password" size="25" name="password2" placeholder="Repeat Password"> <br /> <input type="submit" name="reg" value="Sign Up!"> </form> </td> </tr> </table> </body> </html>

login.php看起来像这样:

And the login.php looks like this:

<?php session_start(); //This displays your login form function index(){ echo "<form action='?act=login' method='post'>" ."Username: <input type='text' name='username' size='30'><br>" ."Password: <input type='password' name='password' size='30'><br>" ."<input type='submit' value='Login'>" ."</form>"; } //This function will find and checks if your data is correct function login(){ //Collect your info from login form $username = $_REQUEST['username']; $password = $_REQUEST['password']; //Connecting to database $connect = mysql_connect("myserver", "username", "password"); if(!$connect){ die(mysql_error()); } //Selecting database $select_db = mysql_select_db("database_name", $connect); if(!$select_db){ die(mysql_error()); } //Find if entered data is correct $result = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password'"); $row = mysql_fetch_array($result); $id = $row['id']; $select_user = mysql_query("SELECT * FROM users WHERE id='$id'"); $row2 = mysql_fetch_array($select_user); $user = $row2['username']; if($username != $user){ die("Username is wrong!"); } $pass_check = mysql_query("SELECT * FROM users WHERE username='$username' AND id='$id'"); $row3 = mysql_fetch_array($pass_check); $email = $row3['email']; $select_pass = mysql_query("SELECT * FROM users WHERE username='$username' AND id='$id' AND email='$email'"); $row4 = mysql_fetch_array($select_pass); $real_password = $row4['password']; if($password != $real_password){ die("Your password is wrong!"); } //Now if everything is correct let's finish his/her/its login session_register("username", $username); session_register("password", $password); echo "Welcome, ".$username." please continue on our <a href=index.php>Index</a>"; } switch($act){ default; index(); break; case "login"; login(); break; } ?>

请帮助我解决此问题...

Please help me fix this...

推荐答案

您在登录时未使用md5进行检查....

You are not using md5 to check while login....

使用 $ password = md5($ _ REQUEST ['password']);在您的login function()中.

这将使用普通密码,并在数据库中使用加密版本进行检查,然后成功登录用户.

This will take the normal password and check it with encrypted version in database and then will successfully log the user in.

希望这会有所帮助.

更多推荐

登录代码将仅使用md5加密密码登录

本文发布于:2023-10-25 00:00:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1525366.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:密码   代码

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!