Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,129
1

Удаление из ссылки запроса на удаление записи из БД

14.06.2015, 18:43. Показов 2314. Ответов 33
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток, подскажите, как решаить следующую проблему. Есть пост, в котором есть ссылка на удаление, вид ее такой : posts?delete_post_id=$id. Так вот, при переходе у меня идет запрос в бд на удаление и вывод сообщения, что оно удалено или нет, но при этом,?delete_post_id=$id остается в строке браузера,и получается если с этой страницы буду что-то деалать, у меня дополнительно выведет информацию о возможности удаления или неудаления поста. Скажите, как можно справится с данной проблемой? Надеюсь, понятно изъяснил суть проблемы. Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.06.2015, 18:43
Ответы с готовыми решениями:

Написание SQL запроса на удаление записи
Помогите пжл написать SQL запрос для удаления из базы записи, выделенной в датагриде. Использую...

Удаление записи из БД, с применением SQL-запроса и сохранение последовательности индексов.
Доброго времени суток. Возникла проблема, если кто сталкивался с решением подобной задачи, или кто...

Удаление загрузочной записи о Windows8.1 и удаление самой Windows 8.1 при наличии двух ОС
На ноутбуке на разделе C Windows XP ,установил Windows 8.1 на логический раздел E.Теперь хочу...

ListView: добавление записи, выбор записи, удаление записи
на форме есть три текст бокса: textbox1(имя), textbox2(фамилия), textbox3(отчество),...

33
Заблокирован
14.06.2015, 19:00 2
Еще на этапе удаления делайте перенаправление на страницу, в адресе которой нет delete_post_id=$id.
0
165 / 150 / 58
Регистрация: 15.06.2013
Сообщений: 1,107
14.06.2015, 19:01 3
Что-то делать - это обновлять страницу? Не понимаю как она вам может помешать. Убрать из адресной строки ее не получится. Можно удалить с помощью unset() или присвоить пустое значение. Но луче разделять логику и вывод информации. Нажали на ссылочку - удалилась запись - редирект на нужную страницу - вывод информации
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
14.06.2015, 19:02 4
Цитата Сообщение от paskalnikita Посмотреть сообщение
Скажите, как можно справится с данной проблемой
после удаления сделать редирект на страницу с сообщением об успешном удалении, id поста лучше передавать через post:
PHP
1
header('Location: any_page');
0
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,129
14.06.2015, 19:05  [ТС] 5
И как вы предлагаете сделать удаление той записи, которую я выбрал? Выбор записи и действие у меня идет по isset. С unset не получается, можете привести пример? С хэдером не вариант, у меня до этого есть html тэги
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
14.06.2015, 19:14 6
Цитата Сообщение от paskalnikita Посмотреть сообщение
С хэдером не вариант, у меня до этого есть html тэги
ну и что мешает переделать? Либо проверять, есть ли запись с таким id в таблице?
0
165 / 150 / 58
Регистрация: 15.06.2013
Сообщений: 1,107
14.06.2015, 19:15 7
Поэтому и нужно разделять логику и вывод информации. Эффект на лицо. Можно присвоить пустое значение и, для удаления, проверять не пустое ли значение переменной.
0
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,129
14.06.2015, 19:21  [ТС] 8
С хэдером не вариант, хотел так сделать, но ни не получится, много костылей получается тогда

Добавлено через 5 минут
Цитата Сообщение от MadHatter Посмотреть сообщение
Можно удалить с помощью unset()
не получается, делал так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if (isset($_GET['delete_post_id'])) {
                    $result = mysql_query("SELECT * FROM comments ORDER BY comment_id DESC");
                    $myrow = mysql_fetch_array($result);
                    $comment_id = mysqli_real_escape_string($db,$_GET['delete_post_id']);
                    if(!empty($user_data['username'])){
                        if ($user_data['username'] === $myrow['username']) {
                            $query = mysql_query("DELETE FROM comments WHERE comment_id = '$comment_id'") or die(mysql_error());
                            echo '<div class="vanishing">You successfully deleted post!</div>';
                            unset($_GET['delete_post_id']);
                        } elseif ($user_data['username'] != $myrow['username']){
                            echo '<div class="vanishing errors-output" style="margin:5px 3px;width:300px;">You cant delete this post!</div>';
                        
                        }
                    }
                }
0
165 / 150 / 58
Регистрация: 15.06.2013
Сообщений: 1,107
14.06.2015, 19:40 9
Возможно unset не работает с глобальными массивами. Я уже писал свои предложения
0
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,129
14.06.2015, 19:49  [ТС] 10
с обычной тоже не получается,
PHP
1
2
3
$post_id= $_GET['delete_post_id'];
 
                                unset($post_id);
0
62 / 62 / 11
Регистрация: 31.01.2013
Сообщений: 186
14.06.2015, 20:33 11
Можете попробовать буферизацию.
ob_start() - почитайте про нее, можно отправлять заголовки даже если вывод есть.
0
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,129
14.06.2015, 22:11  [ТС] 12
Цитата Сообщение от Encoder Посмотреть сообщение
ob_start()
ну что-то не то, может подскажите, как сделаить,чтоб unset сработал?
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
14.06.2015, 22:18 13
Цитата Сообщение от paskalnikita Посмотреть сообщение
С хэдером не вариант, хотел так сделать, но ни не получится, много костылей получается тогда
Костыль - это как раз через unset удалять GET/POST значения Без шуток. Забудьте про это.

В 4 посте этой темы Вам дали единственный правильный ответ.
Цитата Сообщение от MadHatter Посмотреть сообщение
Но луче разделять логику и вывод информации. Нажали на ссылочку - удалилась запись - редирект на нужную страницу - вывод информации
Тут тоже дело говорят. Сначала должна идти вся логика скрипта, и только после того как он целиком и полностью выполнил все свои "программные" задачи, можно выводить пользователю контент. Но выводить контент, а после этого проводить еще какие-то манипуляции - это глупо...

Добавлено через 2 минуты
В конце концов
HTML5
1
<meta http-equiv="refresh" content="5">
тоже никто не отменял.
0
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,129
14.06.2015, 22:19  [ТС] 14
Окей, вы пишите, что сделать удаление поста, но а как тогда сделать это? Я в том плане, что без проверки на isset, как кликом сделать удаление нужной мне записи?

Добавлено через 30 секунд
Meta не то
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
14.06.2015, 22:25 15
Цитата Сообщение от paskalnikita Посмотреть сообщение
Окей, вы пишите, что сделать удаление поста, но а как тогда сделать это? Я в том плане, что без проверки на isset, как кликом сделать удаление нужной мне записи?
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if (isset($_GET['delete_post_id'])):
// тут манипуляции по удалению поста
?>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="refresh" content="5">
</head>
<body>
    <h3>Сообщение успешно удалено. Сейчас Вы будете перенаправлены.</h3>
</body>
</html>
<?php
else:
    header("Location: /");
endif;
Цитата Сообщение от paskalnikita Посмотреть сообщение
Meta не то
А как Вы хотите? Вывести пользователю сообщение об удалении, при этом не перенаправлять его никуда, и удалить GET данные из адресной строки браузера? Так нельзя.

Ну или удалять через AJAX

Ну или сделать специальный скрипт, на который будет перенаправлять после удаления записи, который будет тупо выводить сообщение)
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
14.06.2015, 22:29 16
Цитата Сообщение от paskalnikita Посмотреть сообщение
как кликом сделать удаление нужной мне записи?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
session_start();
if (isset($_GET['post_id'])) {
    // delete post
    if ($delete_success) {
        $_SESSION['delete_success'] = true;
        header('Location: ' . parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
        exit();
    } else {
        echo 'error';
    }
} elseif (isset($_SESSION['delete_success'])) {
    unset($_SESSION['delete_success']);
    echo 'deleted';
}
0
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,129
14.06.2015, 22:29  [ТС] 17
А может можно сдклать как-то так: зарефрешить на момент проверки страницу, то есть , не знаю как объяснить, но получится так, что я кликнул , и у меня идет удаление записи, и после редирект, и получается, что запись я удалил, но при этом, ее адрес никак не изменился
0
79 / 79 / 36
Регистрация: 28.02.2014
Сообщений: 400
14.06.2015, 22:36 18
Цитата Сообщение от paskalnikita Посмотреть сообщение
А может можно сдклать как-то так: зарефрешить на момент проверки страницу
тык
0
165 / 150 / 58
Регистрация: 15.06.2013
Сообщений: 1,107
14.06.2015, 22:46 19
Цитата Сообщение от paskalnikita Посмотреть сообщение
я кликнул , и у меня идет удаление записи, и после редирект, и получается, что запись я удалил, но при этом, ее адрес никак не изменился
Вы слегка преувеличиваете возможности пхп) ПХП скрипт выполняется 1 раз и все. Следующий раз он выполнится только при обновлении или переходе на другую страницу. Но это можно реализовать на JS. Ссылку вам выше дали. Только придется еще в JQuery разобраться)
0
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,129
15.06.2015, 10:39  [ТС] 20
а что если сдеалать форму, а в ней кнопку? Обработку на этой же странице. Или не очень?
0
15.06.2015, 10:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2015, 10:39
Помогаю со студенческими работами здесь

Добавление и удаление записи, поиск записи с максимальной зарплатой, сортировка по алфавиту
Помогите, пожалуйста!:help: Очень нужно сделать до 26!(а если не сложно, то еще и с комментариями...

Удаление или изменение записи невозможно, в таблице имеются связанные записи
Доброй ночи. при удалении из родительской таблицы появляется ошибка &quot;удаление или изменение записи...

Удаление ссылки.
Обнаружила ссылки на свой сайт с порно сайта. Каким образом появились эти ссылки? Чем это грозит...

Массив структур: добавление записи, удаление записи, поиск по одному или нескольким из полей
Необходимо реализовать базу данных с полями «Фамилия», «Имя», «Отчество», «Пол», «Год рождения»....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru