2014-11-21 3 views
1

Итак, я создаю функцию пользовательской группы, которая позволяет мне блокировать страницы для снижения уровня пользователя. Это моя функция для захвата информации:

function grab_info($id, $requested_info){ 
$id = $_SESSION['user_id']; 
$requested_info = $requested_info; 
$con = new mysqli('localhost', 'root', '', 'login'); 
if ($con->connect_errno >0){ 
    die("Handle your connection error here"); 
} 
$sql = "SELECT * FROM `users` WHERE `id` = $id"; 
if (!$result = $con->query($sql)) { 
    die("There as a query error for some reason handle your query error"); 
} 
while($row = $result-fetch_assoc()){ 
    $info = $row[$requested_info]; 
    return $info; 
} 

}

Прямо здесь:

$sql = "SELECT * FROM `users` WHERE `id` = $id"; 
if (!$result = $con->query($sql)) { 
    die("There as a query error for some reason handle your query error"); 
} 

где-то происходит не так. Это мой метод для захвата информации:

$id = $_SESSION['user_id']; 
$rank = grab_info($id, 'rank');//Gets rank from our id 
$meets = can_access($rank, 4, true);//We're saying our user has a rank of 1 to access this page you need a rank of 3 and only 3 hence strict 
if ($meets == false){//user cant access page 
    header("Location: index.php"); 
    die(); 
} 

В принципе, это просто продолжает давать мне «Там как ошибку запроса по какой-либо причине обработать ваш запрос ошибка» и я застрял. Новое на php так жаль, если это грязно.

+0

Проверьте, если '$ id' не равно нулю и что-то! Вы помещаете необработанную переменную в запрос без фильтрации, а это означает SQL INJECTION! В вашем примере, потому что запись поступает из сеанса, это нормально, но все еще думайте о INJECTION –

ответ

0

Проверьте, действительно ли установлен $ id. Если это значение null, это приведет к взрыву вашего запроса.

0
$sql = "SELECT * FROM `users` WHERE `id`='{$id}'"; 

Попробуйте :)

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