В основном я пытаюсь проверить, имеет ли пользователь свой идентификатор в базе данных, и если у него есть его там, он обновляет его, ставя $ page в качестве «последней страницы» в базе данных. Он также проверяет, чтобы значение, которое оно установило внутри, теперь меньше, чем $ page, если это не так, как оно ничего не делает.Обновление базы данных, если переменная меньше переменной
Если у пользователя нет там идентификатора, то он должен добавить его с любой $-страницей.
Проблема в том, что она вообще не обновляется в базе данных.
Это код, который я получил до сих пор, у кого есть идеи?
session_start();
if(!isset($_SESSION['id'])) {
header("Location: ../../index.php");
} else {
}
include '../../connect.php';
include '../../users_func.php';
$id = $_SESSION['id'];
$page = 3;
$sql_chk = " select * from html where id = '$id' and lastpage = '$page' ";
$rs_chk = mysql_query($sql_chk);
$num_chk = mysql_num_rows($rs_chk);
if ($num_chk == 0) {
mysql_query("INSERT INTO `html` (`id`, `lastpage`) VALUES ('$id', '$page') ");
} else {
$sql = "UPDATE html SET lastpage='$page' WHERE id='$id' and lastpage < $page";
mysql_query($sql) or die("MYSQL Query Failed : " . mysql_error());
}
Ваш код уязвим для некоторых довольно неприятных SQL-инъекций. Вы также не должны использовать расширение mysql в PHP, поскольку оно устарело. Изучите PDO или MySQLi и настройте параметры для защиты от атак. – jdp
Я знаю, как преобразовать его в Mysqli, это все, что я должен сделать, чтобы сделать его менее уязвимым? Также это устранит проблему, с которой я столкнулся? –
Не ответит на ваш вопрос, но это все еще очень важно. Вот хорошее объяснение того, как предотвратить SQL Injection, используя PDO или MySQLi: http://stackoverflow.com/a/60496/324307 – jdp