PHP访问系统-或在函数中
我正在努力使用户访问系统更容易 我有阶级和职能:PHP访问系统-或在函数中,php,mysql,Php,Mysql,我正在努力使用户访问系统更容易 我有阶级和职能: public static function hasaccess($nid) { self::onlylogged(); if (isset($_SESSION['userid'])) { $sessionid = $_SESSION['userid']; }else{ return FALSE; die(); } global $pdo; $stmt
public static function hasaccess($nid)
{
self::onlylogged();
if (isset($_SESSION['userid'])) {
$sessionid = $_SESSION['userid'];
}else{
return FALSE;
die();
}
global $pdo;
$stmt = $pdo->prepare('SELECT `access` FROM `users` WHERE `id` = :userid LIMIT 1');
$stmt->bindValue( ':userid', $sessionid);
$stmt->execute();
#return $stmt;
#$accesarray[];
if($stmt->rowCount() > 0 && !empty($stmt)){
$key = $stmt->fetch(PDO::FETCH_ASSOC);
$aid = explode(';', $key['access']);
$aid = array_filter($aid);
if (in_array($nid, $aid)) {
return TRUE;
}else
{
return FALSE;
}
}
else{
return FALSE;
}
}
在mysql中,用户访问保存为:5;7;8;9
我在代码中使用以下内容:
if (user::hasaccess('1' || '7')) {
echo "yes";
}
else
{
echo "not";
}
问题是当用户只能访问“7”而不能访问“1”时。
脚本不返回。类的参数为
'1'| |'7'
,其计算结果为true
。在PHP术语中,该值为1
,因此'1'
成功,而'7'
将失败。您需要对方法进行两次调用,每个值调用一次
或者,更改您的方法,使其能够处理您尝试进行的查询类型。无论哪种情况,您都需要更改参数。更改此项:
if (user::hasaccess('1' || '7')) {
echo "yes";
}
为此:
if ( user::hasaccess('1') || user::hasaccess('7') ) {
echo "yes";
}
问题是什么?