@vladislav997

Как сделать удаление записей mysql от тех авторов, которые их добавили (redbeamPHP)?

Подскажите: каждый зарегистрированный пользователь может добавить запись в таблицу, и она выводится на главную, но как организовать так, чтобы только тот пользователь, который добавил запись, мог удалить только её? Пробовал через связь с ID, пишет ошибка. привожу пример по связи с ID как пытался:

Index.php
------
<?php

	$data = $_POST;
	
	if ( isset($data['add']) )
	{
			$post = R::dispense('posts');
			$post->head = $data['head'];
			$post->desc = $data['desc'];
			$post->author_id = $_SESSION['logged_user']->id; 
			R::store($post);
			echo '<p>Успешно!</p>';
	}
?>

<span style="color:green";>ID:</span> <?=$post['id']?><br>
<span style="color:green";>POST:</span> <?=$post['head']?><br>
<span style="color:green";>DESC:</span> <?=$post['desc']?><br>
<a href="delete.php?id=<?=$post['id']?>">Удалить</a><br><br>


Delete.php
------
<?php
require 'db.php';

$author_id = $id; // ІД текущего залогиненого пользователя
$id = $_GET['id'];
$exists = R::count('posts', 'author_id = ? AND id = ?', [$author_id, $id]);

if (!$exists) {
    echo '<span style="font-size:30px; color:red;">ERROR! Вы не являетесь автором поста или пост не найден!</span>';
} else {
    $post = R::load('posts', $id);
    R::trash($post);
    echo '<span style="font-size:30px; color:red;">Success!</span>';
}

header("refresh: 1; url=index.php");
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
@xtress
Web-dev
Так не выводите вообще кнопку удаления для тех, кто не является автором.
Как пример, не факт что заработает с первого раза:
... кусок кода до ...
 R::store($post);
      echo '<p>Успешно!</p>';
  }
?>

<span style="color:green";>ID:</span> <?=$post['id']?><br>
<span style="color:green";>POST:</span> <?=$post['head']?><br>
<span style="color:green";>DESC:</span> <?=$post['desc']?><br>

<?php
$postAuthor = $post['author_id'];
$currentUser = $_SESSION['logged_user']->id; //или как у вас получается id текущего пользователя
if ($postAuthor === $currentUser) {
 echo '<a href="delete.php?id=' . $post['id'] . '">Удалить</a><br><br>';
}

?>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы