我有一个简单的联系表单,它将两个变量发布到PHP,然后我将其插入到数据库中。
<?php
$username = $_POST["username"];
$password = $_POST["password"];
$db->query("INSERT INTO users (username,password) VALUES ('$username', '$password')");
?>
我现在已经创建了login.php,我希望用户能够使用存储在数据库中的信息进行登录。我并不担心安全问题,我只是想让自己放松一下。允许用户使用用户名和密码登录的最简单方法是什么?
答案 0 :(得分:0)
假设您不需要任何安全性。我会做这样的事情:
$db->query("SELECT * from `users` where username = :username AND password = :password");
用用户输入替换用户名和密码。
警告:请勿在生产环境中使用此功能。这是SQL注入漏洞。
您执行查询,检查查询行数,如果它等于1
,则表示有一个用户username
和password
。如果它等于0
就意味着,它就找不到了。然后,您可以显示错误或其他任何内容。
伪代码中有这样的东西:
if(rowCount == 1) {
// log the user in
}
// Invalid credentials. Print some errors.
如果您需要安全性,请使用PDO或mysqli
功能。因为mysql_*
函数已弃用且不再维护。并考虑使用password_hash
API对您的密码进行哈希处理。
答案 1 :(得分:0)
error_reporting(0);
session_start();
include_once '../example.php';
/***************************** Step 2 ****************************/
if(isset($_REQUEST['admsubmit']))
{
$result=executeQuery("select * from adminlogin where admname='".htmlspecialchars($_REQUEST['name'],ENT_QUOTES)."' and admpassword='".md5(htmlspecialchars($_REQUEST['password'],ENT_QUOTES))."'");
// $result=mysqli_query("select * from adminlogin where admname='".htmlspecialchars($_REQUEST['name'])."' and admpassword='".md5(htmlspecialchars($_REQUEST['password']))."'");
if(mysqli_num_rows($result)>0)
{
$r=mysqli_fetch_array($result);
if(strcmp($r['admpassword'],md5(htmlspecialchars($_REQUEST['password'],ENT_QUOTES)))==0)
{
$_SESSION['admname']=htmlspecialchars_decode($r['admname'],ENT_QUOTES);
header('Location: admwelcome.php');
}else
{
echo "Check Your user name and Password.";
}
}
else
{
echo "Check Your user name and Password.";
}
closedb();
}
浏览上面的代码。通过登录凭据表单检查登录页面重定向的简单示例。