2015-10-08 3 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 означает, что они являются членами

Connect файл:

<?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

много синтаксических ошибок. кавычки, смешивая API MySQL и не мешая проверке ошибок, где угодно. –

+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.php и http://php.net/manual/en/function.error-reporting.php и примените это к вашему коду.

После каждого заголовка вы должны добавить , иначе код может продолжить выполнение.

Другое дело; ваш код подвержен 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

Смежные вопросы