У меня есть этот код, который позволяет пользователю удалять только свои темы. Он работает, но в том случае, если пользователь не тот, кто разместил тему, он все еще получает сообщение: Тема была удалена, тогда как он должен получить: вы не сделали эту тему. Оператор else не работает.Удалить тему из базы данных
if(isset($_SESSION['username']))
{
$uid = $_SESSION['uid'];
$id=$_GET['id'];
$check = mysql_query("SELECT * FROM topics WHERE id = '$id' AND topicCreator = '$uid'");
if($check){
$query1=mysql_query("delete FROM topics WHERE id='$id' AND topicCreator='$uid'");
echo "<p>Topic has been successfully deleted. <a href='index.php'>Click here to return to home page.</a>";
}
else{
echo "<p><b>ERROR: You didnt make this topic.";
}
}
Я не знаю, почему оператор else не запускается.
$ check - это узнать, зарегистрирован ли пользователь, который вошел в систему, тот, кто создал эту тему.
(PS:. Я переключиться на Mysqli раз это работает)
Если вы можете, вы должны [прекратить использование '' mysql_ * функции] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in- PHP). Они больше не поддерживаются и [официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). Узнайте о [подготовленном] (http://en.wikipedia.org/wiki/Prepared_statement) [заявлениях] (http://php.net/manual/en/pdo.prepared-statements.php) и рассмотрите возможность использования PDO , [это действительно не сложно] (http://jayblanchard.net/demystifying_php_pdo.html). –
[Ваш скрипт находится под угрозой для SQL Injection.] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) –
'$ check' - это объект. Это всегда будет правдой, даже если запрос ничего не возвращает. –