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

Evgenii_web

Есть ли возможность сделать запуск скрипта по кнопке, например, написал скрипт на странице домен/скрипт.пшп открыл страницу скрипт выполнился, есть ли возможность чтобы скрипт не выполнялся а выполнялся например по кнопке. Открыл страницу в браузере и только когда на кнопку нажал скрипт выполнился?

 

miketomlin

Не понятно.
— Добавлено —
Может, речь об отличном от GET методе?

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

 

Evgenii_web

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

 

miketomlin

В чем состоит действие «скрипта»? Если доп. действие заключается просто в открытии (выводе) др. страницы, то нужно вешать страницы на разные адреса.

 

Evgenii_web

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

 

miketomlin

Будешь выделываться, пошлю :)

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

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

 

Evgenii_web

ок подумаю над тем что сказали, пока не укладывается в голове) Нужен пример)

 

don.bidon

@Evgenii_web, сделай отдельную html-страницу, в ней форму, которая по кнопке будет переходить к твоему скрипту. Если термины неясны, го html учить, рано php.

 

miketomlin

Лучше ответьте на вопрос о сути действия. Здесь это самое главное. Как я выше написал, можно повесить «скрипт» на POST, тогда просто так, после ввода адреса в браузере, он запускаться не будет, но для обычного вывода так делать безграмотно. Видел я, как начинающие открывают страницы при помощи форм по POST. Вот это реально жесть!!!

 

miketomlin

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

 

Evgenii_web

причем тут форма) Я указал образец) ?php>
for ($i = 1; $i <= 10; $i++) {
echo $i;
}
?>
при переходе на страницу скрипта он не должен запускаться. только по кнопке. Возможно поможет формулировка автозапуск скрипта, самоизоляция кода пшп.
— Добавлено —

по формам по постам тоже есть вопрос, почти такая же проблема, заполнив форму пользователь перенаправляется на другую страницу. А обработаться на текущей он не может? По сути не может так как все скрипты запускаются при открытии страницы и там происходит сбой. Возьмем ту же регистрацию пользователя. Возможно в этой ситуации я найду решение отправить пользователя после обработки формы обратно, через редирект но я думаю это какой то жесткий костыль и не правильный. Возможно мне пора учить джаваскрипт и изолирвоать скрипт пшп.

 

miketomlin

Это для запуска, а не для обработки ;)

 

Evgenii_web

запутали вы меня дайте наглядный пример логики. страница с кнопкой ссылокой на файл обработки. Другими словали изолировать код пшп не возможно и он в любом случае выполнится, единственный способ сделать отдельный файл обработки и закинуть пользователя в неизвестное место и возвратить через костыль редиректа либо почему я не могу иметь код пшп на нужной странице и не запускался чтобы он автоматически а по кнопке. Почему скрипты конфликтуют, так как они всегда запускаются даже если я их не прошу DDD
Я еще раз повторюсь может мне пора изучить джаваскрипт, может он решит проблему?

 

miketomlin

Может. Часто основная обработка происходит до редиректа, а после редиректа – просто вывод результатов.
— Добавлено —

Это вы всех запутали! Нормально скажите, для чего нужна кнопка!
— Добавлено —
Тогда мы скажем, как лучше это все реализовать.

 

Evgenii_web

хочу админку написать на php и чувствую будет полный треш) Я вернусь к этой теме, чуть позже, пока мозгуйте. Базу данных надо заполнить через неделю начну придумывать код)

 

miketomlin

Сначала с основами без приплетения JS разберитесь.
— Добавлено —

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

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

 

Evgenii_web

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

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

 

miketomlin

Я выше частично ответил на это. Вы можете по одному и тому же адресу выполнять разные действия в зависимости от доп. условий (GET/POST, авторизован/не авторизован и т.п.).
— Добавлено —

Зачем? Как выше написал, основную обработку можно делать по тому же адресу, а редирект – для перехода, например, на страницу с сообщением об успешной или нет регистрации.
— Добавлено —

Нет. См. выше по поводу использования доп. условий.
— Добавлено —

PHP:
  1. if ($_SERVER[‘REQUEST_METHOD’]==‘POST’)
  2. { POSTобработка }
  3. else
  4. { др., прежде всего GET}

— Добавлено —
Во многих роутерах есть деление не только по адресу, но и по методу запроса, т.е. там можно самому не писать такие ветвления.

 

Evgenii_web

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

 

miketomlin

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

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

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *