所以我正在检查访问该页面的人是否是用户,然后将其重定向到注册页面,如果他们不是。
然后我正在检查用户是否是会员(付费订阅),如果没有,则重定向到用户页面。
重定向非用户工作
但是使用下面的代码,由于is_member
检查
<?php
error_reporting(0);
session_start();
include('connect.php');
ob_start();
if(!isset($_SESSION['username']))
{
header("**********");
}
else
{
$username =$_SESSION['username'] ;
}
$check = $mysqli->query("SELECT is_Member FROM users WHERE username = $username");
$row = mysql_fetch_assoc($check);
$isMember = $row['is_member'];
if ($isMember == 0){
header("*************");
}
is_member是1或0: 1表示他们是成员
连接文件:
<?php
$servername = "*****";
$user = "*****";
$password = "*****";
$dbname = "******";
$mysqli = new mysqli($servername, $user, $password, $dbname); //used to connect to the database
if ($mysqli->connect_error) {
die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
}
?>
答案 0 :(得分:4)
此
WHERE username = $username");
如果变量是一个字符串(即:&#34; john&#34;,那么它应该用引号括起来:
WHERE username = '$username'");
然后你使用mysql_
函数mysql_fetch_assoc
,它不与其他任何MySQL API混合使用。
必须为mysqli_fetch_assoc
读取,并为该函数添加i
。
请参阅以下链接http://php.net/manual/en/mysqli.error.php和http://php.net/manual/en/function.error-reporting.php 并将其应用于您的代码。
您还应在每个标头后添加exit;
,否则您可能希望代码继续执行。
另一件事;您的代码很容易注入SQL。你最好使用准备好的陈述。
答案 1 :(得分:1)
您的支票似乎总是错误的,因为没有is_member
值,这是一个错字。替换这个:
$isMember = $row['is_member'];
用这个:
$isMember = $row['is_Member'];
此外,您的else
声明可能应包含更多