2015-10-08 103 views
-1

因此,我正在檢查訪問該頁面的用戶是否是用戶,然後將他們重定向到註冊頁面,如果他們不是。檢查用戶,然後檢查成員

然後我檢查用戶是否是會員(付費訂閱),如果沒有,那麼重定向到用戶頁面。

非用戶工作 但與下面的代碼重新定向,沒有人可以訪問會員頁面,因爲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

許多語法錯誤。引用問題,混合MySQL API,並且不會在任何地方麻煩檢查錯誤。 –

+0

真的嗎?如? –

+0

問下面的傢伙,他提交了一個答案,也得到了贊成。我走出了這個循環。 –

回答

4

WHERE username = $username"); 

如果變量一個字符串(即:「約翰」,那麼就應該用引號引用:

WHERE username = '$username'"); 

然後您使用的是mysql_功能mysql_fetch_assoc不與任何其他MySQL API比自身混用。

它必須閱讀爲mysqli_fetch_assoc,併爲該功能添加了i

請參考以下鏈接http://php.net/manual/en/mysqli.error.phphttp://php.net/manual/en/function.error-reporting.php 並將其應用於您的代碼。

您還應該在每個標題後面添加exit;,否則您的代碼可能需要繼續執行。

另一件事;你的代碼很容易被SQL注入。最好使用準備好的語句。

1

看來,你的支票總是會拿出假的,因爲沒有is_member值,它是一個錯字。與此

$isMember = $row['is_member'];

:替換此

$isMember = $row['is_Member'];

而且你else說法或許應該包括更多

+0

可能是0.01%的問題。 –

+0

它是數據庫中的is_member –

+0

那麼這是不正確的:'SELECT is_Member FROM users WHERE username = $ username' – dstudeba

相關問題