我有一个用户表
id_agent name agent_center agent_name agent_password
1 black ABCE black 1234
2 white XYZ white 1234
我有另一个用于存储ip的表
id_center center_name ipdetails
1 ABCE 118.102.244.52,127.0.0.1 //black ip 118.102.244.52
2 XYZ 192.168.0.1,123.87.65.43
3 LKA
现在,如果我尝试使用agent_name=black
和agent_password=1234
进行登录,则会检查第二个表是否存在与用户相关的center_name
中的IP。在这种情况下{{1}如果ABCE中存在该用户的ip,它将提前或拒绝。我可以从一个函数中检查。
我已经有一个从表格中的单行检查ip的函数
center_name=ABCE
然后调用index.php文件中的函数,如
function check_ip_detailss($center_id,$center_name){
$sql_IP=mysql_query("SELECT * FROM center_listt WHERE center_name='$center_name' AND ipdetails LIKE '%$center_id%'");
$nos=mysql_num_rows($sql_IP);
if($nos){
$ip_mess="";
} else {
$ip_mess="<h1 align=\"center\" style=\"font-size:24px\">Your IP(".$center_id.") is currently inactive.
<br/><br/>Please contact your system administrator for inquiries.</h1>";
}
return $ip_mess;
}
?>
它正在检查的表
$center_ip_status=check_ip_details($_SERVER['REMOTE_ADDR'],"Cegura FT");
if($center_ip_status!=''){
echo $center_ip_status;exit;
}
if($_SESSION["login_id"]){
header("location:home.php");exit;
}
//if found it open the login form here.
我该怎么做一个能检查用户id_center agent_center ip
1 LKM 122.23.32.54,123.56.87.82,321,45,65,34,881.43.23.45
然后在第二个表中查找该用户的ip的函数
答案 0 :(得分:1)
根据中心名称连接2个表,使用where子句检查名称和密码,并使用FIND_IN_SET检查IP地址。
示例代码。要知道他们是否可以登录,只需要检查此查询是否返回一行。
SELECT *
FROM users a
INNER JOIN centers b
ON a.agent_center = b.center_name
WHERE a.agent_name = 'black'
AND a.agent_password = '1234'
AND FIND_IN_SET('118.102.244.52', b.ipdetails) > 0
但与标准化数据库设计相比,这不会有效
编辑 - 用于在传递用户名,密码和IP地址时检查详细信息的php函数: -
<?php
function check_ip_details_for_user($agent_name, $agent_password, $center_id)
{
$ip_mess="";
$sql = "SELECT a.agent_center
FROM users a
INNER JOIN centers b
ON a.agent_center = b.center_name
WHERE a.agent_name = '".mysql_real_escape_string($agent_name)."'
AND a.agent_password = '".mysql_real_escape_string($agent_name)."'
AND FIND_IN_SET('".mysql_real_escape_string($center_id)."', b.ipdetails) > 0";
$query = mysql_query($sql);
$nos = mysql_num_rows($query);
if(!$nos)
{
$ip_mess="<h1 align=\"center\" style=\"font-size:24px\">Username or password not correct for this ip address.
<br /><br />Please contact your system administrator for inquiries.</h1>";
}
return $ip_mess;
}
?>