gpt4 book ai didi

php - MYSQL 检查任一表中是否存在值 : login script

转载 作者:行者123 更新时间:2023-11-29 23:18:52 25 4
gpt4 key购买 nike

我正在尝试创建一个登录脚本,该脚本检查两个表以查看数据库中是否存在用户名和密码。

设置两张表的目的是一张供供应商/外部用户使用,另一张供内部用户使用。

我在使用 NOT EXISTS 的 MYSQL 查询中遇到困难。这会导致查询显示错误“哎呀!”用户名或密码组合不正确'。

有人可以告诉我我哪里出了问题吗?谢谢

session_start();
include("config.php");

$tbl_name="supplier_users";
$tbl_name2="internal_users";
$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 NOT EXISTS (select * from $tbl_name where username = {$myusername} and password = {$mypassword}) AND NOT EXISTS (select * from $tbl_name2 where username = {$myusername} and password = {$mypassword})";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
$row=mysql_fetch_array($result);

if($count==1) {
session_start();
$_SESSION['user']=$myusername;
$_SESSION['username']=$row['First_Name'];

if(isset($_SESSION['val'])) {
$_SESSION['val']=$_SESSION['val']+1;
} else {
$_SESSION['val']=1;
header("location:../dashboard.php");
}
} else {
echo mysql_error();
$_SESSION['message2'] = '<div id="message_box2"><div class="boxclose" id="boxclose" onclick="this.parentNode.parentNode.removeChild(this.parentNode);"></div><h23>Oooops!</h23><p>The Username and Password Combination do not match. Please try again.</p> </div>';
header("location:../index.php");
}

ob_end_flush();

最佳答案

保持简单

我认为您没有充分的理由不执行两次单独的检查。将其变成一个函数,并以表名作为参数,您就可以重用该代码。像这样的事情:

function getUserCount($table,$username,$password)
{
$query = "SELECT username
FROM $table
WHERE username = '$username' AND password = '$password'";
$result = mysql_query($query);
return mysql_num_rows($result);
}

(未经测试)但是,如果您的系统确实非常安全,请查找有关安全性的更多建议。另外,PHP 的 mysql 扩展已被弃用。

关于php - MYSQL 检查任一表中是否存在值 : login script,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27522016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com