За последние 24 часа нас посетили 18187 программистов и 1582 робота. Сейчас ищут 1223 программиста ...

Встроенный веб-сервер PHP. Работа с формами

Тема в разделе "PHP для новичков", создана пользователем Виталий Петрович, 9 фев 2017.

  1. Виталий Петрович

    С нами с:
    9 фев 2017
    Сообщения:
    5
    Симпатии:
    0
    Уважаемые участники форума. Осваиваю php по книге Котерова Д.В. PHP 7. В качестве веб-сервера использую встроенный сервер php, как рекомендовано в начале книги. В данный момент остановился на 8 разделе, где рассматривается работа с формами. В качестве примера рассматривается HTML-документ с названием form.html и сценарий php с названием hello.php.
    Содержимое form.html следующее:
    HTML:
    1. <!DOCTYPE html>
    2.     <head>
    3.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    4.     <title>Страница с формой</title>
    5.     <!-- <script src="script1.js"></script> -->
    6.     </head>
    7.  
    8.     <body>
    9.  
    10.         <form action="hello.php">
    11.             login: <input type="text" name="login" value=""><br />
    12.             Password: <input type="password" name="password" value=""><br />
    13.             <input type="submit" value="Press button, to start script">
    14.         </form>
    15.  
    16.     </body>
    17. </html>
    И содержимое hello.php
    PHP:
    1. <!DOCTYPE html>
    2. <html lang="ru">
    3. <head>
    4.   <title>Использование данных формы</title>
    5.   <meta charset='utf-8'>
    6. </head>
    7. <body>
    8. <?php
    9.     if ($_REQUEST['login'] == "root" && $_REQUEST['password'] == "Z10N0101") {
    10.       echo "Доступ открыт для пользователя {$_REQUEST['login']}";
    11.       // Команда блокирования рабочей станции (работает в NT-системах)
    12.       system("rundll32.exe user32.dll,LockWorkStation");
    13.     } else {
    14.       echo "Доступ закрыт!";
    15.     }
    16.  
    17. ?>
    18. </body>
    19. </html>
    Оба файла находятся в одной дирректории.
    Суть работы в том, что пользователь вводит в форму логин и пароль, введенные данные передаются в сценарий php, который при несовпадении с заданным логином и паролем выводит сообщение "Доступ закрыт", или при совпадении - "Доступ открыт для пользователя root" и блокирует рабочую станцию.
    Так вот вопрос в том, как запустить это на встроенном сервере?
    Когда мне требовалось запустить какой нибудь файл на встроенном сервере, я сначала запускал сервер с командной строки, в которой находится файл, например:
    Код (Text):
    1. php -S localhost:8000 index.php
    , затем в браузере заходил на адрес http://localhost:8000, и все получалось. Как быть с формами, когда 2 файла, один php, а второй html и они между собой связаны.
     
  2. NerdRage

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

    С нами с:
    6 июл 2016
    Сообщения:
    439
    Симпатии:
    42
    Я б посоветовал не возиться со встроенным сервером PHP, а освоить OpenServer сразу. Там есть виртуальные хосты, которые в будущем всё-равно понадобятся. Устроены они очень просто, в папке domains создаешь папку для сайта, например testytest, перезагружаешь OpenServer - готово, можешь открыть свой сайт по ссылке http://testytest/
     
  3. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @Виталий Петрович, все так же как с один файлом. Разницы ведь никакой.
    Код (Text):
    1. php -S localhost:8000//запусти сервер
    Потом из адресной строки браузера localhost:8000/form.html
     
  4. Виталий Петрович

    С нами с:
    9 фев 2017
    Сообщения:
    5
    Симпатии:
    0
    Ничего не получается. Запускаю в директории
    php -S localhost:8000
    и в адресной строке
    localhost:8000/form.html
    выводит ошибку 404.
    Если в директории указать нужный файл
    php -S localhost:8000 form.html
    А затем вывести в адресную строку
    localhost:8000/form.html,
    то откроется html-документ с формой. Заполняю формы и ничего не происходит. Скрипт php не выдает сообщение.
     
  5. abrdabr

    abrdabr Новичок

    С нами с:
    28 янв 2017
    Сообщения:
    774
    Симпатии:
    65
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Все очень просто - не используйте встроенный сервер. Если работаете в Windows, поставьте себе OpenServer и не морочьте себе голову. Если это линукс, поставьте себе apache, накатите на него modphp и вам для обучения этого хватит с головой. Ну, или если хотите родной пыхосервер, который, кстати, сливает апачевому, то просто внедрите форму в свой скрипт. Работайте из одного файла.

    Но лучше сделайте себе нормальное серверное окружение, и работайте сразу как настоящий разработчик.
     
  7. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Странно, юзаю встроенный сервер со времён его появления, никогда никаких проблем не было... Товарищи советчики, сколько создатели OpenServer вам заплатили ? (или это вы и есть ?)
    --- Добавлено ---
    Сервер запускается не совсем так.
    Кроме -S localhost:8000 надо ещё указать путь на директорию с файлами с помощью ключа -T (либо ваши файлы form.html и прочие кинуть туда где она по умолчанию, не помню где именно она по умолчанию, но судя по всему ваши файлы у вас не там)
     
    [vs], Fell-x27 и denis01 нравится это.
  8. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Там не только PHP и Веб-сервер, а много всего другого. Начинающим проще скачать и что-то запустить.
     
  9. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    С возвращением! :)
    Раз пошла такая пьянка, то я вообще за линукс и сборку окружения руками. Пока так не сделаешь, техстэк будет казаться человеку магией, работающей на воле высшего разума.
     
    SamyRed нравится это.
  10. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Тогда и вовсе давайте говносборки типа денвера рекомендовать )))
    перегибать не стоит
    да в общем-то оно всё по сути так и работает )))
     
  11. abrdabr

    abrdabr Новичок

    С нами с:
    28 янв 2017
    Сообщения:
    774
    Симпатии:
    65
    -за линукс и сборку окружения руками
    -перегибать не стоит

    рано или поздно любому маломальски грамотному пхпшнику(читай мастеру на все руки) придётся знакомится с линухом. и я думаю чем раньше тем лучше, нет скорее сразу надо знакомится с линухом а уж потом с яп
     
  12. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Денвер умер. Теперь актуальная говносборка для винды - это OpenServer. Вот ее и рекомендуют.
    А я-то наивный, думал, что оно через сетевое взаимодействие, сокеты, и проксирование запросов работает :(
    --- Добавлено ---
    Это не перегиб. Линукс - родная ось для пыхи, папачей-нжинксов и прочих мускулей. С ними там проще работать, их там проще настраивать, ставить, обновлять, обслуживать. Там это все прозрачно. На винде же хренпойми, что и где, и как оно связано, и дергать надо все через разные рульки, нет никакого порядка.

    Плюс, такой момент как внешние серверы, которые, в 99% случаев линуксовые. И вот работаешь ты в винде, внешка у тебя линуксовая, а потом опаньки, добро пожаловать в чудесный мир линуксовых прав доступа, линуксовой специфики блокировки файлов, линуксовых слэшей в адресах и прочих линуксовых радостей.

    И ладно, если это шаред, где за тебя все сделает добрый хостер. А если это VPS, где тебе дали инстанс и крутись как хочешь? Просить туда винду залить? А что дальше? Опенсервер ставить и наружу его открывать? Или мутить IIS+PHP? Или пытаться самому окружение собрать нормальное? Так опять же, на линуксе это проще делать, а на винде, если у тебя есть дырки в коде, ты, без линуксовых прав доступа, тупо помрешь в кратчайшие сроки.

    Я не призываю сносить винду на домашнем компе и ставить линукс. Это вот да, перегиб. Я предлагаю виртуалочку запилить. Они сегодня работают почти так же быстро как хосты, на которых крутятся. Паравиртуализация и все такое.
     
  13. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.576
    Симпатии:
    1.759
    Работал так одно время, вполне ничего, за исключением нескольких программ. Потом пригодилось, когда начал профессионально веб-программированием заниматься. А мой брат принципиально работает на линуксе, при том, что он не программист. Ему там нравится.
     
  14. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    Я тоже работал на линуксе в частности на Ubuntu.Это конечно не Slackware или Арч,но все же. Никсы как уже много раз тут писали это передовая для веба,поэтому хотя бы базовые знания о таких вещах как собрать и настроить серверное по и как настроить виртуальные хосты я считаю должны быть у каждого кто работает в сфере веба. Но у меня с никсами не сложилось и самое обидное что не сложилось из за шрифтов. Какие же там адовые шрифты.Я долго и мучительно искал решения и настраивал font.conf (я уже детально не помню как файлы назывались), экспериментировал и с хинтингом и антилизингом. Потом дошел до Инфиналити,настроил все и там.И если в самой системе стало более менее терпимо,то в браузерах даже со всеми настройками и установленными пакетами все равно шрифты были ад(ну конечно лучше чем изначально но все же).В итоге я думал что FreeType 2.7 как то решит данную проблему,так как некоторые патенты по сроку давности истекли.Попробовал поставил,все равно.1 час у монитора и плачу.На винде сижу только из за ClearType
     
  15. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Я в 2006-м пытался, разбираться со всем этим (убунты пробовал, фрю) как сейчас не знаю а тогда это была жесть и ад )))

    Но да, этот опыт потом пригодился и не раз. Хотя бы раз через это надо хотя бы попробовать пройти...

    Что жалею что не было опытного оф-лайн педагога рядом который бы в этом разбирался и обучал (важны именно навыки педагога, а не просто админа который знал бы но не умел объяснять) по статьям из интернета мало что можно понять, 90% из них их пишут либо вообще нубы, на крайняк опытные админы но совершенно никакие учителя...
     
  16. rewuxiin

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

    С нами с:
    17 апр 2012
    Сообщения:
    611
    Симпатии:
    87
    я тоже терпеть не мог линукс из-за шрифтов, особенно когда загрузишься в винду, а потом обратно в nix - ужас просто. тоже всячески их крутил вертел.
    сейчас сижу вполне комфортно, покрайней мере в Ubuntu unity, и в KDE на Plasma5 Неплохо так сидится, особенно если учесть что win10 слизана с этих кед - кажется будто в той же винде и сидишь.
     
  17. Mitai

    Mitai Новичок

    С нами с:
    23 окт 2016
    Сообщения:
    155
    Симпатии:
    24
    а что должно быть в этой сборке окружения? PHP7 апач и что еще?
     
  18. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Как минимум еще нужен сервер базы данных. Mysql чаще всего. Еще можно попробовать самостоятельно повесить nginx перед apache в качестве реверс-прокси. Так или иначе, а придется учиться это делать.
     
  19. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    Ну я бы еще для удобства PMA прикрутил
     
  20. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    А, ну...PMA, или, там GUI для апача это же не серверное окружение, это вспомогательное ПО. Оно, не лишнее, но это дело вкуса уже. Кому-то оно и без надобности.

    А, насчет серверного окружения - можно на всякий научиться FTP поднимать.
     
  21. Mitai

    Mitai Новичок

    С нами с:
    23 окт 2016
    Сообщения:
    155
    Симпатии:
    24
    https://habrahabr.ru/post/120814/ про это речь?
    вопрос не много не по теме, но действительно ли данная информация? MariaDB (полный аналог MySQL с дополнительными улучшениями)
     
  22. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    @Mitai а где именно вопрос? Про Машку? Да, полный аналог. Вернее, это и есть MySQL. Когда Oracle задолбал программистов мускула (Oracle несколько лет назад прикупил Sun, который в свою очередь незадолго до этого прикупили MySQL AB) излишней коммерциализацией изначально открытого проекта, и затягиванием в цикле разработки - ребята ушли забрав с собой исходники, на которые имеют авторские права. То есть почти все. И начали MariaDB и развивали её на первых парах очевидно быстрее, чем развивался MySQL.
     
  23. Slavka

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

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    @Виталий Петрович
    ох и флудерасты они- по теме вот

    php -S localhost:8000 -t c:\www

    c:\www заменить на папку с файлами - и лучше без пробелов и русских букв.

    дальше
    localhost:8000/form.html

    в браузере после открытия нажимаем F12 ( в хроме и IE работает сразу - в firefox доставить firebug - аддон такой)

    переходим на вкладку сеть / network у кого что , заполняем форму нажимаем кнопку и в отладчике смотрим куда нас послали ... удивляемся , корректируем , запускаем заного , радуемся
    --- Добавлено ---
    вы были очень близки только Т (большой) в конфиге сервера нету - тока что проверял меня послало на много веселых букв
     
  24. Mitai

    Mitai Новичок

    С нами с:
    23 окт 2016
    Сообщения:
    155
    Симпатии:
    24
    Из флуда можно узнать много интересного, например в книге по рнр 7 автор говорит что мы не будем использовать апач потому что он медленней чем нжникс, а благодаря флуду выяснилось что лучше использовать их в связке, тут более подробно описывают для чего их делают совместно, чем на хабре
    https://interface31.ru/tech_it/2016/08/nastraivaem-veb-server-nginx-kak-front-end-k-apache.html
     
  25. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    @Mitai а у тебя там нигде нет ссылок, что вместо Apache nginx умеет проксировать сразу к пхп-машине, что борется с некоторыми интересными подводными камнями.