За последние 24 часа нас посетили 34316 программистов и 1751 робот. Сейчас ищут 965 программистов ...

Динамическая страница

Тема в разделе "PHP для новичков", создана пользователем san4ez, 15 авг 2016.

  1. san4ez

    san4ez Активный пользователь

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    Извиняюсь, если что, за неправильное название темы (незнаю как это назвать).
    У меня есть страница, где выводятся строки из бд (mysql). Хочу сделать кнопку "удалить" рядом с каждой строкой, но с подтверждением (т.е. что бы выводился вопрос "точно удалить?"). Я незнаю как это реализовать, вроде вполне возможно это сделать в этой же странице.. Подскажите плиз мануалы или статьи.. Понятия не имею как это забить в поисковик. Извиняюсь если создал не в том разделе.
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    JavaScript поможет тебе спросить на самой странице перед отправкой формы.
    Отправка формы на предварительный обработчик, запись в нем скрытой формы и последующая отправка этой формы на основной обработчик - решат эту же задачу на PHP.
     
    san4ez нравится это.
  3. san4ez

    san4ez Активный пользователь

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    Спасибо, буду пробовать, если будут вопросы-напишу =)
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    @san4ez еще почитайте про то, как сделать, чтобы вместо вас «записи» не удалил кто-нибудь другой (авторизация).

    Есть готовы скрипты для управления БД, причем гораздо легче, чем phpMyAdmin. Во многих админках сайтов это есть (мог бы предложить что-нибудь из наших разработок, если бы вы преследовали коммерческие цели, а не познавательные). Если список уже выводится, как выше написали, подтверждение лучше повесить на JS, если вы не преследуете цель реализовать базовый функционал без использования JS.
     
    san4ez нравится это.
  5. san4ez

    san4ez Активный пользователь

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    я делаю програмку чисто для себя) за меня их никто не сможет удалить )) ну в будущем, если нужно будет, сделаем. Вообщем о защите пока мыслей нет =) а на счет явы.. для начала хочу на пхп пробовать реализовать.
    --- Добавлено ---
    как я понял: посылаем сначала допустим на страницу site.ru/del.php?id=4, на которой спрашивается "точно удалить?", если ответ да, то посылаем на другую страницу site.ru/delete.php?id=4, где и происходит удаление и переадресация на "главную". Так?
     
  6. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Ганзал описал два варианта:
    1. JavaScript
    это когда ты на странице нажимаешь кнопочку удалить, вылазит окошко, которое спрашивает, точно ли удалить. Если ответишь да - тогда страница делает запрос на обработчик удаления
    2. PHP
    на одной странице у тебя список твой, где ты нажимаешь удалить. POST-запросом данные отправляются на другую страницу. Там делается скрытая форма, в которую вставляются данные из запроса (тупо такая же форма, как на первой странице, но скрытая). И надпись тут какая-то, типо "Парень, ты точно решил всё тут снести?". Если нажимаешь да, то срабатывает сабмит скрытой формы, который уже отправляет запрос на обработчик удаления
     
    san4ez нравится это.
  7. san4ez

    san4ez Активный пользователь

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    не понял о какой форме речь.. на первой странице у меня нет никаких форм. и данные отправляются GET-запросом.. это плохо?
     
  8. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    Можно и GET-ом. Правда, до тех пор, пока не надумаете делать массовое удаление и прикручивать чекбоксы.
    --- Добавлено ---
    Кстати, даже для одиночного удаления чекбокс – весьма полезная вещь – как раз предотвращает «случайное» удаление по одному щелчку.
     
  9. san4ez

    san4ez Активный пользователь

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    Ну вобщем сделал, как и писал, с двумя страницами... а с формами я, если честно, не понял как делать...
     
  10. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    В принципе можно и с формой использовать GET-запрос.
     
  11. san4ez

    san4ez Активный пользователь

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    мне без разницы post или get, я просто не понял как делать с формой =)
     
  12. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Лучше POST. Защита от удаления через форумы и электронную почту)))
     
  13. san4ez

    san4ez Активный пользователь

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    конечно лучше сразу узнавать и писать код нормально... но я не могу понять как делается это через форму... что в ней должно быть?
     
  14. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    Да, согласен. Я такое никогда не использую, поэтому даже и не сразу сообразил, что GET-ом тоже можно.
    --- Добавлено ---
    Тот же id в скрытом контроле или прямо в кнопке.
     
  15. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Ну покажи свою страницу удаления
     
  16. san4ez

    san4ez Активный пользователь

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    Там показывать то нечего, на первой просто вопрос "точно удалить такую то строку?", а на второй процесс удаления и переадресация на " главную"
     
  17. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Нам смотреть не для того чтоб у тебя своровать,а чтоб комментарии по коду дать и сказать что править и куда ползти.
     
  18. san4ez

    san4ez Активный пользователь

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    вот 1 страница:
    PHP:
    1. <?php
    2. $id = $_GET['id'];
    3. $connection = mysqli_connect('localhost', 'dbuser', 'dbpass', 'dbname') or die(mysqli_error());
    4. $query = "SELECT * FROM table WHERE id = $id";
    5. $result = mysqli_query($connection, $query) or die(mysqli_error());
    6.  
    7.  
    8. while ( $row = mysqli_fetch_assoc($result) ) {
    9.     echo '    $row['id'].', '.$row['name']';
    10. }
    11.  
    12. ?>
    13.  
    14. <br> Точно удалить? <br>
    15. <?php echo '<a href="/delete.php?id='.$id.'">ДА</a> ?>
    вот 2 страница:
    PHP:
    1. <?php
    2. $id = $_GET['id'];
    3.  
    4. $connection = mysqli_connect('localhost', 'dbuser', 'dbpass', 'dbname') or die(mysqli_error());
    5. $query = "DELETE FROM table WHERE id = $id";
    6. mysqli_query($connection, $query) or die(mysqli_error());
    7.  
    8. header('Location: /index.php');
    9. ?>
     
  19. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Переходи на расширение mysqli или PDO.
     
  20. san4ez

    san4ez Активный пользователь

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    а это разве не mysqli? или имеешь ввиду те команды для ооп которые?
     
  21. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    А, сорян. Действительно i там есть. Спать наверное пора...
     
    denis01 нравится это.
  22. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    И фильтруй входные данные, а то тут даже не xss попахивает, а банальной sql-injection.
     
  23. san4ez

    san4ez Активный пользователь

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    еще раз говорю, эта програмка в инете не появится, она для личного пользования =) если надумаю создавать сайт-естественно буду думать и о защите
    --- Добавлено ---
    тоже спать надо... можешь хотя бы подсказать как делать через форму?
     
  24. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    Сделайте на JS подтверждение, коли тепличное окружение, – это проще.
    --- Добавлено ---
    То ж ушел на боковую.
     
  25. san4ez

    san4ez Активный пользователь

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    в нем я вообще 0 пока что =)