Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.10.2019, 16:29
Аспирант
Отправить личное сообщение для Leon2110 Посмотреть профиль Найти все сообщения от Leon2110
 
Регистрация: 04.07.2016
Сообщений: 78

Вопрос перед отправкой формы да/нет
Всем привет. Мой код работал, но почему-то перестал, даже не знаю что случилось.
Есть форма, у нее две кнопки submit, одна для редаткирования или добавления полей в бд, другая для удаления.

Вот кнопка для удаления:
<button type="submit" name="del" value="<?php echo $row["id"]; ?>" onclick="confirm('Вы действительно хотите удалить учреждение с id <?php echo $row["id"]; ?>?') ? this.form.submit() : ''"> Удалить </button>

Вопрос появляется: "Вы действительно хотите удалить учреждение с id 7?". Проблема в том, что он работает в любом случае, и если нажать да, и если нажать нет, вроде когда я только начинал делать все работало как надо, не знаю даже что случилось, в консоли ошибок нет.

Тут если нажать "нет" просто закроется диалоговое окно confirm и все, а если нажать да, отправится форма.
//далее у меня проверяет если есть post['del'].... удаляет из базы нужную строку с нужным id...

Последний раз редактировалось Leon2110, 07.10.2019 в 16:34.
Ответить с цитированием
  #2 (permalink)  
Старый 07.10.2019, 16:34
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Leon2110
работает в любом случае
Все верно, здесь диалог чисто для проформы, так как форма отправляется не по результату диалога, а естественным образом.
Ответить с цитированием
  #3 (permalink)  
Старый 07.10.2019, 16:41
Аспирант
Отправить личное сообщение для Leon2110 Посмотреть профиль Найти все сообщения от Leon2110
 
Регистрация: 04.07.2016
Сообщений: 78

А можно что-то сделать чтобы работало как надо?)
Мне надо чтобы если нажали нет, ничего не делалось, а если да выполнялось это:
//если нажали удалить учреждение
if (isset($_POST['del'])) {
		$del = htmlspecialchars($_POST['del']);
		$sql_add_cat = "DELETE FROM `cat` WHERE id = '$del'";
		$otvet_cat = mysqli_query($connect, $sql_add_cat);
		logs($user_panel, "Удалил учреждение c ID $del");
		header("Refresh:0");
	}

// А можно как-то подписаться на ответы в теме? не найду((

Последний раз редактировалось Leon2110, 07.10.2019 в 16:44.
Ответить с цитированием
  #4 (permalink)  
Старый 07.10.2019, 16:46
Аспирант
Отправить личное сообщение для Leon2110 Посмотреть профиль Найти все сообщения от Leon2110
 
Регистрация: 04.07.2016
Сообщений: 78

Изменил <button type="submit"... на <button type="button"... в своем коде, теперь "нет" ничего не делает, "да" вроде отправляет форму, но без del, так что код все равно не срабатывает.
Ответить с цитированием
  #5 (permalink)  
Старый 07.10.2019, 16:51
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Если нужно отправлять форму по условию, значит это условие нужно проверить, и если это диалог, то:

<button type="submit" name="del" value="<?=$row["id"]?>" onclick="return confirm('Вы действительно хотите удалить учреждение с id <?=$row["id"]?>')"> Удалить </button>


Сообщение от Leon2110
$del = htmlspecialchars($_POST['del']);
А это опасность, htmlspecialchars совсем не для этого.
Ответить с цитированием
  #6 (permalink)  
Старый 07.10.2019, 17:00
Аспирант
Отправить личное сообщение для Leon2110 Посмотреть профиль Найти все сообщения от Leon2110
 
Регистрация: 04.07.2016
Сообщений: 78

Сообщение от laimas Посмотреть сообщение
Если нужно отправлять форму по условию, значит это условие нужно проверить, и если это диалог, то:

<button type="submit" name="del" value="<?=$row["id"]?>" onclick="return confirm('Вы действительно хотите удалить учреждение с id <?=$row["id"]?>')"> Удалить </button>


А это опасность, htmlspecialchars совсем не для этого.
Примного благодарен за код.
Безопасности пока особого внимания не уделяли, это все внутри админки выполняется и юзерам туда доступа нет. Так как там передается id, возможно вместо htmlspecialchars надо сделать проверку что это число (int) и будет достаточно.
Ответить с цитированием
  #7 (permalink)  
Старый 07.10.2019, 17:05
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Leon2110
Безопасности пока особого внимания не уделяли
Ну а к чему тогда писать глупости, которые к безопасности на сервере отношения не имеют?

Сообщение от Leon2110
это все внутри админки выполняется и юзерам туда доступа нет
Ну да, если вы так относитесь к безопасности, то чего она у вас вообще стоит, а взломщику ваши светофоры админка/общий вообще боком, он будет стремиться туда где жирнее.

Сообщение от Leon2110
надо сделать проверку что это число (int)
Именно if($del = (int)$_POST['del']) {код удаления}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с отправкой формы Dimanchik87 Events/DOM/Window 11 24.05.2014 10:45
Обработка формы перед отправкой KlausKater Общие вопросы Javascript 16 24.04.2014 18:11
Всплытие событий или что то не так... Кирюха =) jQuery 6 30.03.2013 12:56
Вопрос по обработке отправки формы vodoo Events/DOM/Window 3 19.12.2012 09:34
Вопрос по реализации формы в простейшем модальном окне battrack jQuery 2 22.04.2012 13:46