За последние 24 часа нас посетили 20633 программиста и 1012 роботов. Сейчас ищут 362 программиста ...

запуск скрипта php

Тема в разделе "PHP для новичков", создана пользователем Evgenii_web, 13 июн 2021.

  1. Evgenii_web

    Evgenii_web Новичок

    С нами с:
    7 май 2021
    Сообщения:
    53
    Симпатии:
    0
    Есть ли возможность сделать запуск скрипта по кнопке, например, написал скрипт на странице домен/скрипт.пшп открыл страницу скрипт выполнился, есть ли возможность чтобы скрипт не выполнялся а выполнялся например по кнопке. Открыл страницу в браузере и только когда на кнопку нажал скрипт выполнился?
     
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Не понятно.
    --- Добавлено ---
    Может, речь об отличном от GET методе?

    Можно повесить на один и тот же адрес разные действия в зависимости от метода запроса.
     
  3. Evgenii_web

    Evgenii_web Новичок

    С нами с:
    7 май 2021
    Сообщения:
    53
    Симпатии:
    0
    что не понятно) пишу скрипт файле скрипт.пшп открываю его на выполнение по урлу домен/скрипт.пшп и скрипт выполняется. Вопрос как сделать чтобы при открытии страницы скрипт не выполнялся а выполнялся например по щелчку кнопки на этой странице? Практически разжувал и положил, еще скажите не понятно)
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    В чем состоит действие «скрипта»? Если доп. действие заключается просто в открытии (выводе) др. страницы, то нужно вешать страницы на разные адреса.
     
  5. Evgenii_web

    Evgenii_web Новичок

    С нами с:
    7 май 2021
    Сообщения:
    53
    Симпатии:
    0
    Жесть ладно для Вас лично) открываю нотепэд++
    создать новый файл скрипт.пшп сохраняю в расширении php, далее открываю этот файл в нотепэд ++ и пишу
    ?php>
    for ($i = 1; $i <= 10; $i++) {
    echo $i;
    }
    ?>
    сохраняю файл.
    открываю файл в браузере по адресу домен/скрипт.пшп и скрипт выполняется.
    Вопрос: как сделать чтобы при открытии файла скрипт не выполнялся, а выполнялся например при нажатии кнопки.
    И не надо говорит, что Вы не поняли D
     
  6. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Будешь выделываться, пошлю :)

    Я тут время трачу, чтобы помочь в воскресенье, а в ответ вижу такое...

    Это обычный вывод. Делается тоже по GET, т.е. нужно использовать др. адрес. Файл при этом может быть тот же самый, если логика этого кода как-то связана с логикой кода первой страницы. Иначе используйте отдельный файл, например разместите доп. код в корне сайта в файле script2.php и используйте в первом такую ссылку на его запуск: /script2.php (можно и без слеша, но показанный адрес – более «надежный»).
    --- Добавлено ---
    Ко всем php-файлам, размещенным в корне сайта (в том числе во вложенных каталогах), можно обращаться по подобным адресам.
     
    Evgenii_web нравится это.
  7. Evgenii_web

    Evgenii_web Новичок

    С нами с:
    7 май 2021
    Сообщения:
    53
    Симпатии:
    0
    ок подумаю над тем что сказали, пока не укладывается в голове) Нужен пример)
     
  8. don.bidon

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

    С нами с:
    28 мар 2021
    Сообщения:
    858
    Симпатии:
    132
    @Evgenii_web, сделай отдельную html-страницу, в ней форму, которая по кнопке будет переходить к твоему скрипту. Если термины неясны, го html учить, рано php.
     
  9. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Лучше ответьте на вопрос о сути действия. Здесь это самое главное. Как я выше написал, можно повесить «скрипт» на POST, тогда просто так, после ввода адреса в браузере, он запускаться не будет, но для обычного вывода так делать безграмотно. Видел я, как начинающие открывают страницы при помощи форм по POST. Вот это реально жесть!!!
     
    #9 miketomlin, 13 июн 2021
    Последнее редактирование: 13 июн 2021
  10. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Использование форм для выполнения GET-запросов тоже может быть безграмотным решением. Кнопки легко делаются в виде обычных стилизованных ссылок. Использовать ли реальную кнопку или «нарисованную», зависит от сути выполняемого по нажатии на эту кнопку действия.
     
  11. Evgenii_web

    Evgenii_web Новичок

    С нами с:
    7 май 2021
    Сообщения:
    53
    Симпатии:
    0
    причем тут форма) Я указал образец) ?php>
    for ($i = 1; $i <= 10; $i++) {
    echo $i;
    }
    ?>
    при переходе на страницу скрипта он не должен запускаться. только по кнопке. Возможно поможет формулировка автозапуск скрипта, самоизоляция кода пшп.
    --- Добавлено ---
    по формам по постам тоже есть вопрос, почти такая же проблема, заполнив форму пользователь перенаправляется на другую страницу. А обработаться на текущей он не может? По сути не может так как все скрипты запускаются при открытии страницы и там происходит сбой. Возьмем ту же регистрацию пользователя. Возможно в этой ситуации я найду решение отправить пользователя после обработки формы обратно, через редирект но я думаю это какой то жесткий костыль и не правильный. Возможно мне пора учить джаваскрипт и изолирвоать скрипт пшп.
     
  12. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Это для запуска, а не для обработки ;)
     
  13. Evgenii_web

    Evgenii_web Новичок

    С нами с:
    7 май 2021
    Сообщения:
    53
    Симпатии:
    0
    запутали вы меня дайте наглядный пример логики. страница с кнопкой ссылокой на файл обработки. Другими словали изолировать код пшп не возможно и он в любом случае выполнится, единственный способ сделать отдельный файл обработки и закинуть пользователя в неизвестное место и возвратить через костыль редиректа либо почему я не могу иметь код пшп на нужной странице и не запускался чтобы он автоматически а по кнопке. Почему скрипты конфликтуют, так как они всегда запускаются даже если я их не прошу DDD
    Я еще раз повторюсь может мне пора изучить джаваскрипт, может он решит проблему?
     
    #13 Evgenii_web, 13 июн 2021
    Последнее редактирование: 13 июн 2021
  14. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Может. Часто основная обработка происходит до редиректа, а после редиректа – просто вывод результатов.
    --- Добавлено ---
    Это вы всех запутали! Нормально скажите, для чего нужна кнопка!
    --- Добавлено ---
    Тогда мы скажем, как лучше это все реализовать.
     
  15. Evgenii_web

    Evgenii_web Новичок

    С нами с:
    7 май 2021
    Сообщения:
    53
    Симпатии:
    0
    хочу админку написать на php и чувствую будет полный треш) Я вернусь к этой теме, чуть позже, пока мозгуйте. Базу данных надо заполнить через неделю начну придумывать код)
     
  16. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Сначала с основами без приплетения JS разберитесь.
    --- Добавлено ---
    Это да. Нет кнопки «написать админку» :)
    --- Добавлено ---
    В общем для действий с видимыми для пользователя изменениями используете POST-запросы, иначе GET. Можно использовать и расширенный состав методов. Но это основные.

    Создание, обновление, удаление – POST. Просмотр списков, элементов – GET.
     
  17. Evgenii_web

    Evgenii_web Новичок

    С нами с:
    7 май 2021
    Сообщения:
    53
    Симпатии:
    0
    Как я писал выше я уже сталкнулся с одной разновидностью проблемы, что я не могу обработать регистрацию пользователя на странице а должен перенаправлять на обработку на левую никому не нужную страницу. потом на странице обработчкие я должен наставить ссылок чтобы вернуть пользователя.

    если все формы регистрации, смены пароля, забыл пароль и т.п. и обработку разместить в одном файле то получаю жесткий конфликт, так как все скрипты выполняются.
     
  18. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Я выше частично ответил на это. Вы можете по одному и тому же адресу выполнять разные действия в зависимости от доп. условий (GET/POST, авторизован/не авторизован и т.п.).
    --- Добавлено ---
    Зачем? Как выше написал, основную обработку можно делать по тому же адресу, а редирект – для перехода, например, на страницу с сообщением об успешной или нет регистрации.
    --- Добавлено ---
    Нет. См. выше по поводу использования доп. условий.
    --- Добавлено ---
    PHP:
    1. if ($_SERVER['REQUEST_METHOD']=='POST')
    2. { POST-обработка }
    3. else
    4. { др., прежде всего GET}
    --- Добавлено ---
    Во многих роутерах есть деление не только по адресу, но и по методу запроса, т.е. там можно самому не писать такие ветвления.
     
    Evgenii_web нравится это.
  19. Evgenii_web

    Evgenii_web Новичок

    С нами с:
    7 май 2021
    Сообщения:
    53
    Симпатии:
    0
    т.е. я должен на все скрипты, добавить условия, чтобы они не выполнялись (чувствую истина где то рядом). ок ладно поэксперементирую вконце месяца, отпишу тут.
    --- Добавлено ---
    ладно с регистрацией, авторизацией, сменой пароля забыл пароль и т.п. понятно, а что с основным вопросом?
    ?php>
    for ($i = 1; $i <= 10; $i++) {
    echo $i;
    }
    ?>
    открывается страница скрипт выполняется, данные выводятся, т.е. тут тоже условия нажатия на кнопку?
     
  20. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Зависит от архитектуры. Если роутер во фронт-контроллере, то достаточно в одном месте разделить. Но вам, наверное, будет сложно понять такие штуки. Нужно более последовательно все это изучать.

    Уже отвечал. В чем суть этого цикла? Если реально какой-то вывод, то нужно выводить по GET (скорее всего при переходе по обычной ссылке, а не по кнопке). Но для обработки GET-запросов тоже могут применяться ветвления (см. мой код выше), причем это не обязательно связано с методами запросов. Например, в статье по послед. ссылке, которую я вам давал, используется ветвление по формату адреса:
    1) g09.ru/articles – список статей (точнее его первая страница);
    2) g09.ru/articles/my-first-article – отдельная статья, т.е. элемент списка.
    --- Добавлено ---
    Более понятный пример этого ветвления для тех, кто не использует фронт, который использовал я, есть в этом комменте: https://gency.ru/comment/15
     
  21. don.bidon

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

    С нами с:
    28 мар 2021
    Сообщения:
    858
    Симпатии:
    132
    ТС, научись формулировать мысли
    наверное, ты хотел этого:
    PHP:
    1. <!DOCTYPE html>
    2. <html>
    3. <body>
    4. <form method="post">
    5.     <input type="hidden" name="run" value="1"/>
    6.     <input type="submit"/>
    7. </form>
    8. <?php
    9. // тут можно прицепить другой php-файл, содержащий твой код
    10. if (isset($_POST['run'])) {
    11.     for ($i = 1; $i <= 10; $i++) {
    12.         echo $i;
    13.     }
    14. }
    15. ?>
    16. </body>
    17. </html>
     
  22. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    Прежде чем админки писать, хорошо бы основы понять. http://phpfaq.ru/newbie/na_tanke
     
  23. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    @Evgenii_web столько народу тратит время на твой наивный вопрос, прям удивительно. "По кнопке" это так себе определение :) Если мы говорим о PHP, то нажатие кнопки означает новый запрос.

    С точки зрения протокола HTTP, в запросе есть адрес (URL) и метод (GET | POST | и т.п.). При этом разные URL-ы фактически могут соответствовать одному и тому же скрипту в файловой системе. Например, если меняется только query параметр (то что в адресе стоит после знака "?").
    GET http://example.com/omg.php
    POST http://example.com/omg.php?action=come-on
    POST http://example.com/omg.php?action=fck-off
    Переход по ссылке это всегда GET. Форма может породить либо GET либо POST, а javascript может вызвать и другие методы.
    Вот проверяя методы и параметры, ты можешь выполнять разные действия в одном и том же скрипте.

    Ещё вопросы?
     
    #23 artoodetoo, 16 июн 2021
    Последнее редактирование: 16 июн 2021
  24. Evgenii_web

    Evgenii_web Новичок

    С нами с:
    7 май 2021
    Сообщения:
    53
    Симпатии:
    0
    вопросов много если честно не совсем понял) поюзаю код пшп лето вернусь к этой теме.