<MyRusakov.ru />

PHP и MySQL с Нуля до Гуру 2.0

PHP и MySQL с Нуля до Гуру 2.0

Данный курс научит Вас программировать на самом популярном Web-языке в мире - PHP. Курс состоит из 11 разделов, в которых с нуля рассказывается и показывается процесс написания различных скриптов на PHP.

В курсе Вы узнаете всю необходимую теоретическую часть, а также увидите массу практических примеров, в том числе, и из моей практики.

Почти к каждому уроку идут упражнения.

Просмотрев данный курс, Вы сможете создавать абсолютно любые PHP-сайты любой сложности.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Удаление файлов
26.07.2013 14:36:41 Удаление файлов Сообщение #1
shamil

shamil

Продвинутый

Продвинутый

Дата регистрации:
17.03.2013 00:07:27

Сообщений: 55

вот запрос,который исправил:
<?php
function checkCommentOwner($user_id, $comment_id) {
if (!(checkUser($_SESSION['login'], $_SESSION['password']))) return false; //проверяем авторизован ли пользователь
$mysqli = new mysqli("localhost", "shamil_h", "a1a2a3", "shamil_comm"; //подключаемся к базе
$result_set = $mysqli->query("SELECT `owner_id` FROM `guestbook` WHERE `id` = '$comment_id'"; //узнаём id пользователя (owner_id) который написал этот комент
$user = $result_set->fetch_assoc();
$owner_id = $user['owner_id'];
return $user_id == $owner_id; //сравниваем id хозяина коммента и id который передали функции
}
?>


структура таблицы:guestbook
id
names
comment
date
owner_id

и файл delete_comment.php:
<?php
if (isset($_GET['comment'])) {
$id = $_GET['comment']; //берём id коммента из GET-параметра
$mysqli = new mysqli('localhost', 'shamil_h', 'a1a2a3', 'shamil_comm'); //подключаемся к MySQL
$mysqli->query("DELETE FROM `guestbook` WHERE `id` = '$id'"; //удаляем запись из таблицы
$mysqli->close(); //закрываем соединение

header("Location: http://tin-l.ru/admin/guestbook.php";
}
?>


а с самой страницы id отправляется в
файл delete_comment.php
$id = $comments[$i]["id"];
Профиль Ответить
26.07.2013 19:49:16 Удаление файлов Сообщение #2
RussianPro

RussianPro

Эксперт

Эксперт

Дата регистрации:
14.07.2011 01:32:38

Сообщений: 114

На будущее: не пишите название таблиц в апострофах (`)

SELECT `owner_id` FROM `guestbook` WHERE `id` = '$comment_id'
В апострофах пишутся только названия полей в таблице!

Так же Вы забыли закрыть соединение с БД в функции checkCommentOwner

В условии не надо ставить 3 скобки (не в этом случае).

if (!(checkUser($_SESSION['login'], $_SESSION['password']))) return false;
Профиль Ответить
27.07.2013 11:58:31 Удаление файлов Сообщение #3
RussianPro

RussianPro

Эксперт

Эксперт

Дата регистрации:
14.07.2011 01:32:38

Сообщений: 114

Вот Вам архив с примером http://yadi.sk/d/9lpv6pvf7Gaiy

Скачайте, посмотрите как всё работает и адаптируйте пример под себя.

P.S. В owner_id не должно быть нулей! Туда при добавлении комментария записывайте id автора комментария.
Профиль Ответить
29.07.2013 13:05:08 Удаление файлов Сообщение #4
shamil

shamil

Продвинутый

Продвинутый

Дата регистрации:
17.03.2013 00:07:27

Сообщений: 55

это обработка на странице,где возможная ошибка,все нормально удаляется,но в поле owner_id-0,не поступает id
if ($_GET['comment'] == 'delete') {
$comment_id = $_GET['id'];

$operation_result = deleteComment($comment_id);

}
$guestbook = getAllGuestBookComments();

....................
это обработка
в functions.php:
function deleteComment($id) {
if ($id == '') return false;
$mysqli = connectDB();
$result_set = $mysqli->query("DELETE FROM guestbook WHERE `id` = '$id'"; //удаляем запись из таблицы
closeDB($mysqli);
return $query;
}

и
function checkCommentOwner($user_id, $comment_id) {
if (!checkUser($_SESSION['login'], $_SESSION['password'])) return false; //проверяем авторизован ли пользователь
$mysqli = connectDB();
$result_set = $mysqli->query("SELECT `owner_id` FROM guestbook WHERE `id` = '$comment_id'"; //узнаём id пользователя (owner_id) который написал этот комент
$owner_id = $user['owner_id'];
$user = $result_set->fetch_assoc();
closeDB($mysqli);
return $user_id == $owner_id; //сравниваем id хозяина коммента и id который передали функции
}

вот в поле owner_id ничего не поступает.может обнаружите ошибку?
Профиль Ответить
29.07.2013 13:20:58 Удаление файлов Сообщение #5
RussianPro

RussianPro

Эксперт

Эксперт

Дата регистрации:
14.07.2011 01:32:38

Сообщений: 114

$owner_id = $user['owner_id'];
$user = $result_set->fetch_assoc();

Местами их поменяйте!!! Вы сначала присваивайте переменной значение из массива, а уже потом создаёте массив! Так делать нельзя!

Покажите функцию добавления коммента в таблицу.

P.S. Давайте свой скайп, я Вам покажу как всё должно быть. А то так мы очень долго будем искать Ваши ошибки.
Профиль Ответить
29.07.2013 17:17:30 Удаление файлов Сообщение #6
shamil

shamil

Продвинутый

Продвинутый

Дата регистрации:
17.03.2013 00:07:27

Сообщений: 55

только что зарегестрировался
shamil.shakirov2
Профиль Ответить