Урок 16. PHP — POST & GET
В этом уроке мы рассмотри приемы передачи данных между формами и страницами. Такими методами являются POST и GET. О каждом мы поговорим отдельно и более подробно. Вообще говоря, это нужно для связи между формами. Например мы заполняем какие то поля на странице и нам нужно их передать в другую страницу для обработки.
Метод GET в PHP
Для начала разберем метод GET. Это когда все переменные и их значения передаются прямо через адрес. Сейчас на примере вы все увидите, и даже поймете как работает большинство сайтов и форумов.
К примеру, есть у нас html страничка такого вида:
<html> <head> <title>Страница с примером передачи переменных с помощью Get</title> </head> <body> <a href=https://myblaze.ru/index.php?name=Sergey&age=22>ссылка</a> </body> </html>
Видите ссылку? Она сложная и состоит из нескольких частей. Давайте разберем все по полочкам:
https://myblaze.ru — адрес домена или, как его еще называют, хост.
index.php — страница на php, которая будет обрабатывать запрос.
? — символ разделения между адресом и блоком с переменными.
Далее идут переменные и их значения, которые разделены символом &.
name=Sergey — переменная name и ее значение Sergey.
age=22 — то же самое, переменная age, значение 22.
Все разобрали, теперь посмотрим как это обрабатывается в php, с помощью метода GET.
Страница index.php, как вы помните, мы передавали ей:
<?php if (!empty($_GET["name"])&&!empty($_GET["age"])) { echo " Получены новые вводные: имя - ".$_GET["name"].", возраст - ".$_GET["age"]." лет";} else { echo "Переменные не дошли. Проверьте все еще раз."; } ?>
Для начала совет: ВСЕГДА проверяйте переменные на правильность: на пустоту, на соответствие допустимых значений и так далее. Так как все передается через адресную строку, то данные можно легко подменить и навредить сайту. Теперь по самому коду: мы, с помощью условного оператора, проверили переменные name и age на пустоту и, если они не пустые, то вывели их, а если пустые, то просто сообщили об этом.
Все просто, согласитесь? Например вы можете создать html страницу и в менюшке сделать ссылки через переменные, а в index.php обрабатывать переменную и отображать в зависимости от полученного значения ту или иную страницу. Ну об этом мы поговорим позже, в статье про создание сайта на php с нуля. Чтобы ничего не пропустить, советую подписаться на RSS.
Метод POST в PHP
Для демонстрации работы этого метода нам понадобится немного больше, чем простая строчка с адресом :) Нужно будет создать html страницу с формой для заполнения, но ничего, я приведу готовый пример для вас:
<html> <head> <title>Страница с примером передачи переменных с помощью Post</title> </head> <body> <form method="post" action="index.php">Заполняем поля для передачи информации:<br><br> Укажите Ваше имя: <input name="user_name" type="text" maxlength="20" size="25" value="" /> <br><br> Укажите Ваш возраст: <input name="age" type="text" maxlength="2" size="3" value="" /> <br><br> <input type=submit value="Передать информацию"></form> </body> </html>
Итак, мы создали html страничку с простой формой. Запомните, метод POST может использоваться только в форме.
Первый параметр формы — «method», он определяет метод, который мы будем использовать для передачи. Как вы могли догадаться, это либо GET, либо POST. При этом, если установлен GET, то все имена полей (в виде названий переменных), а также их значения, передаются по ссылке, как в разделе про метод GET. Если же установлен POST, то все названия переменных и значения будут передаваться как запрос браузера к веб-серверу. То есть в адресной строке их видно не будет. Во многих случаях это очень полезно. Также POST безопаснее, оно и понятно, ведь переменные с их значениями уже не так просто отредактировать, хотя тоже можно.
Второй параметр формы — «action». Это путь и имя файла скрипта, которому мы передаем данные. В нашем случае это index.php. Этот путь можно передавать и полностью, то есть так: action=«https://my_site.ru/index.php». Если не указать значение параметра «action», то вся информация будет передаваться главному скрипту, то есть индексной странице index.php вашего сайта, что вполне логично.
Теперь получим данные из нашей формы. Раз передавали мы в index.php, значит ниже будет код именно этой страницы:
<?php if (!empty($_POST["user_name"])&&!empty($_POST["age"])) { echo "Получены новые вводные:<br>"; echo "имя - "; echo $_POST["user_name"]; echo "<br>возраст - "; echo $_POST["age"]; echo " лет"; } else { echo "Переменные не дошли. Проверьте все еще раз."; } ?>
Не забываем проверять на пустоту и допустимые значения. Далее нужно уточнить, почему наши переменные называются именно user_name и age? А вы посмотрите на поля формы, которую мы создавали выше. Видите там input name=«user_name» type=«text» ? Вот здесь параметр name и задает имя переменной, которую мы получим с помощью этого поля. То же самое и с age. Надеюсь понятно. Ну а получение переменной и ее значения через POST почти не отличается от GET, который мы рассмотрели выше.
Ну вот, урок получился большой, но зато один из самых полезных, ведь передача переменных между формами и страницами это именно та интерактивность, ради которой мы и используем PHP.
← Цикл Do while | Содержание | htmlentities →
Комментарии:
Хотелось бы более детальный разбор блока с GET’ом. В частноти:
if (!empty($_GET[«name»])&&!empty($_GET[«age»]))
что это за функция такая empty(), как проверить что массив $_GET пуст функцией count(), и почему стоит восклицательный знак перед !empty? Читателя может удивить, что это просто отрицание, а сама функция empty возвращает либо true либо false. В отличие от того же упомянутого count, который помогает сориентироваться что массив параметров пуст.
Так же было бы идеально, если бы Вы упомянули что $_GET[] это суперглобальный массив. А параметры в него заносятся этим самым ?параметр=значение.
И последнее, в статьях нет информации о «или», обозначающемся как || (или or) и соответственно «и», из примера статьи выше &&.
Александр, хорошо, спасибо, я поработаю над этим вопросом в ближайшее время :)
Поработал?)
Миша, да не особо то поработал, работа в оффлайне отнимает почти все время, а после нее приходишь домой и уже от компьютера воротит =\ Ну как нибудь на выходных или еще как постараюсь все таки написать.
Александр, наконец дошли руки до вопроса.
Итак, в данном случае нам нужна именно empty() потому, что именно она определяет существование переменной. Для нас важно, чтобы в запросе были переданы оба значения, то есть и name и age, поэтому такое условие. Восклицательный знак перед empty это отрицание, то есть условие составлено таким образом, чтобы убедиться, что существуют (были переданы в запросе) обе переменные.
Хотя, наверное, все это вам объяснять не нужно, вы и сами знаете, это видно. Но для новичков думаю пригодится :)
«Запомните — метод POST может использоваться только в форме» — было бы здорово уточнить «только в форме или через AJAX», ибо через AJAX можно отправить что угодно и как угодно. Или я не прав?
Да, верно, в аяксе тоже используется ПОСТ, просто это выходит за рамки данного учебника (все таки он для начинающих) :)
Вот я как раз и есть начинающий и поэтому искренне запуталась)) Я только начала понимать, что такое аякс, а здесь прочитала, что «ТОЛЬКО В ФОРМЕ», — и расстроилась: опять что-то в голове не сходится. Мне нужно было прочитать еще две статьи, чтобы убедиться в том, что все-таки не только в форме)) Путаете новичков! :-)
Рита, вообще браузер можно по-разному заставить отправить какой-либо POST на сервер. Но если на странице нет жаваскриптов, чего лично я уже давно не встречал, сделать это можно только через .
А тут теги отрезаются! Вот незадача то…
только через form ))
Александр, а как еще по-разному (за исключением кнопки submit и XmlHttpRequest)? Может, мне еще какой другой способ подойдет))
Куда девается файл, когда отправляешь его методом POST на сервер? Он физически весь лежит в оперативной памяти, пока php-скрипт с ним что-нибудь не предпримет? Или куда-то сразу сохраняется?
Любой ли файл можно отправить? С любым расширением? Что с этим файлом будет делать php — это второй вопрос, но получить скрипт может от браузера любой тип данных?
В форме я могу указать адрес файла action = «бла-бла-бла.php», а можно ли указать не файл, а место в файле? Если там несколько обработчиков лежат в одном файле, файл этот запустится, и как он дальше должен понять, какую часть скрипта выполнять? Нужно ему прописать с помощью if/else что ему делать с конкретно этим запросом?
Каша в голове полная((((
Вообще, пока на Клиенте просматривают страницу и сервер не запрашивает, на нем никакой код не работает, правильно? При первом запросе страницы откликнулся файл index.php (допустим), нарисовал эту страницу, вставил в нее данные (например, из базы данных), отправил браузеру и выключился, верно? Т.е.когда браузер высылает ему запрос типа «Прими файл, будь добр», на сервере заново включается другой какой-то файл .php, к которому обращается браузер, и как-то отвечает на этот запрос. Верно?
Т.е.серверная часть интерфейса будет представлять из себя кучу мало связанных друг с другом файлов, которые вызываются событийно в зависимости от запроса с Клиента, а еще периодически вызывают друг друга, правильно? Плюс куча тупо служебных файлов с описаниями классов и пр. И во всех случаях, кроме изначального запроса, Клиент должен знать сам,к какому файлу обращаться. А в самый первый раз отвечает файл с названием index.php из корневой директории.
А когда index.php нарисовал страничку и выключился, все объекты и переменные и результаты вычислений, которые ему в процессе понадобились, перестали существовать, да? Т.е.если потом с какой-то другой странички пользователь переключается опять на главную, index.php все перерисовывает заново. А иначе, видимо, и не сделаешь, да? Потому что, например, в базе данных за это время могло что-то обновиться, что должно быть уже отображено на главной страничке, и это надо, как минимум, проверить. Проверить или перерисовать полностью заново всю страницу?
Аааааааааа.
Я когда-нибудь буду это все сама понимать.
И скоро.
Причем, основной код будет (относительно) короткий, а больше всего места и внимания будут занимать именно-таки описания классов, да? А в основном коде все будет делаться методами местных экземпляров этих классов. Так принято писать или как-то иначе?
Рита, ничего себе полотно )
Я вас понимаю. На самом деле я сейчас тоже вовсю изучаю веб-разработку. Тяжело даётся, при том что нужно использовать целый зоопарк технологий, да ещё и к тому же не совсем ясно какие конкретные задачи можно выполнять с его помощью. Например, для меня это самый трудный этап. Ещё одну очередную CMS писать не охота, ибо тысячи их. Блог или форум — то же самое. Вот взялся за интернет магазин на бесплатной основе. Пилю потихонечку. Пришлось попутно изучать HTML и CSS, так как у любой логики должно быть визуальное отражение, а я не шибко чтобы крут в вёрстке.
По пунктам:
1) Файл вначале прилетает на сервер. Пока apache, или к примеру nginx его не примет — ничего в php не вернётся. php узнает о наличии файла по факту. Вроде бы в темпы скидывается файл. Тут я тоже не очень в курсе. Надо смотреть доки… я, если что, сижу на OpenServer’е, а там апач. Вот туда файл и девается. Улетает прямо на вебсервер, как по FTP. Насчёт расширения — когда файл закачается, с ним уже что-то можно делать в php. К примеру, если файл закачался, но не того формата или расширения, то он тупо удаляется. Но нужна проверка на клиентской стороне. Проверить можно только жаваскриптом.
2) action=файл.php это однозначное определение, какую-то часть из скрипта вызвать нельзя. Но можно в самом скрипте указать ЧТО делать с конкретными данными. К примеру передать по цепочке другому обработчику.
3) У меня тоже каша в голове, и откровенно говоря по этой причине я уже пару недель в код не смотрю совсем :) Решил отдохнуть. Всё равно изучать пока до жопы.
4) Да, php он одноразовый. Отработал — забыл. Отработал — забыл. Один из немногих способов проучить этого склеротика — хранить данные сессии. Делается это через session_start() и работа с данными клиента происходит через массив $_SESSION[]. При этом у клиента хранится кука PHPSESSID (как не трудно догадаться это ID сессии клиента для пыхи), и при старте сессии идёт обращение к ней. Так что ответ на целый абзац — да, верно. Да, верно. Да, верно.
5) Обычно, отвечает index.php. Хотя это и не обязательно. Вообще, имя у файла может быть любым, и задаётся это настройками веб-сервера. Ведь не забывайте, что веб-сервер это ПОСРЕДНИК. Обычно опять же, чтобы клиенту не «Знать» к какому файлу обращаться, и существуют гиперссылки на странице :) Плюс я ещё видел такой диковинный подход в одном движке, когда данные массивов GET и POST сливали в один, чтобы с ними было проще работать. На самом деле это хреново, и делать так не надо.
6) Опять же да. Вы повторяетесь :)
Реально оно так и есть, php-скрипт одноразовый. Однако, и тут есть исключение. Оно называется кеш. Довольно-таки интересная тема, особенно интересна она тем, что позволяет один раз движку php нарисовать страницу, и если на ней ничего не менялось, то каждому следующему клиенту отдавать её же. И перерисовывать страницу (на самом деле же просто формировать html-документ) ему не надо уже.
Вроде на всё ответил :)
P.S. никогда не видел девушек, столь рьяно изучающих программирование. Я почему-то думал, что я один (из немногих) такой е*анутый. У меня разрыв шаблона :)
> Причем, основной код будет (относительно) короткий, а больше всего места и внимания будут занимать именно-таки описания классов, да? А в основном коде все будет делаться методами местных экземпляров этих классов. Так принято писать или как-то иначе?
Всё верно. Обычно файл который запрашивает клиент, это месиво из ссылок на модули, которые могут использоваться при генерации html-странице, которую запросил клиент, причём с теми или иными условиями.. Вероятно, клиент даже не запрашивал html-страницу, а он запросил URL. А веб-сервер этот УРЛ переварил и что-то клиенту выплюнул, предварительно конечно посоветовавшись с PHP интерпретатором :)
Заранее скажу, что обычно сайт выводится очень просто. Это последняя строчка в php-скрипте и, вы не поверите, echo :)
Выглядит это так:
echo $head.$body.$footer;
Просто как пример. Переменные могут быть иными.
Спасибо за ответы!! Большое! Мне правда помогают))))
Ктулху, помоги нам)
Сложный язык. Ява-скрипт со всеми своими чудо-возможностями, псевдо-классами, псевдо-статическими переменными, замыканиями функций и чудо-фреймворками — реально игрушка по сравнению с.
Кстати, по поводу верстки на html/css/javascript я могу, если что, где-то подсказать уже.. Я как раз с них начала, а теперь вот принялась за php. Ибо предпочитаю идти снизу вверх…
echo $head.$body.$footer; — это что, объекты, которые в методе __toString возвращают кучу html-кода с вставленными уже в него данными из базы? Или это глобальные примитивные переменные, в которые по ходу скрипта все это собирается?
У меня на носу висят две работы, которые будут сложными php + mySQL + JavaScript + ессно, css и html. Один из этих сайтов будет трехъязычным и с группами пользователей. Второй — только на русском и без пользователей, но с доп.интефейсом, чтобы владец сайта мог интеррактивно сам добавлять данные + возможность комментировать материалы без регистрации. Но эти пока еще висят. Еще одна работа у меня есть, для которой Клиентскую часть я уже написала полностью, осталась серверная. От сервера тут требуется минимум — принять два файла и кучу переменных со значениями, из переменных состряпать третий файл (т.е.создать новый файл и записать в него данные), потом все три файла вложить в электронное письмо и отправить указанным адресатам. Ну и Клиенту ответить, что все отправлено (AJAX). Все началось именно с этого. Это случилось четыре дня назад.
В итоге на данный момент у меня есть на домашнем компе Apache 2.0, PHP 5.4.15, XDebug 2.2 (кажется), PHPDesinger 8, mySQL, sendMail с патчем, который кладет письма в tmp вместо отправки. Все настроено и работает.. ну и до кучи полная каша в голове.. Пока все.. Прочитала штуки три таких простых учебника и половину мануала с сайта php.net — он самый подробный из всех…
Если в итоге средой работы php будет арендуемый хост, можно ли рассчитывать на свою настройку php.ini на нем? Или только тех директив, которые переопределяются непосредственно из скрипта? А если php на хосте настроен полностью в httpd.conf, из скрипта возможно вообще менять настройки? Конкретно это будет касаться, например, макс размера $_POST за одну сессию и макс времени обработки php-скриптом… файлы-то нифига не фоточки для аватарок… Это самая первая в моей жизни программка…
Если сайт трехъязычный, то, по идее, все три варианта перевода может рисовать один обработчик с переданной ему переменной типа lang = ‘italiano’. А если есть пользователи с разными уровнями доступа, то это должно работать по аналогии с JavaScript, наверное — за счет побитовой маски, в которой описаны уровни доступа. Сама маска может храниться в integer переменной, основной обработчик «рисовальщик» будет вызываться в любом случае, и, в зависимости от значения маски (уровня доступа), он будет вызывать по необходимости еще другие, которые будут вставлять в нарисованную им страницу доп.функционал…
Я в шоке, волосы дыбом и вопрос, на самом деле, один — КАК Я ВСЕ ЭТО БУДУ ПИСАТЬ!!
Нет, echo не умеет работать с объектами. Вернее, объект должен что-то вернуть, для этого из него надо что-то вызвать. Так что это строковые переменные. Язык пользователя лучше хранить в куках. На чужом хосте обычно не дают настраивать php.ini, так как он делится между несколькими такими пользователями. VDS/VPS другое дело. Тут лучше вам смотреть википедию.
Обычно httpd.conf тоже нельзя менять. Но можно создавать свои .htaccess’ы и делать в них всё что душе угодно.
Как вы всё это будете писать — без понятия :)
Но чтобы писать что-то на продакшен, нужно много времени тренироваться на кошках. Рекомендую всё же отдать это на аутсорс.
Ну и на последок, хорошая статья:
http://habrahabr.ru/post/179399/
Вот это дискуссия тут, умеете, могете, молодцы! :)
Я правда рад, что люди объединяются и помогают друг другу!
Александр, неправда))) Объект может преобразовываться в строку при обращении к нему по имени из echo))) Если у него прописан «магический» метод __toString ))))))) Собсно в этом методе описывается, как объект превращается в строку, если кто-то пытается его использовать как строку (например, вывести на экран). Возможность добавлена в php 5.3, расширена в php 5.4.
Рита, тоже верно, однако это не стандартное поведение. В боевых условиях, объект ничего похожего на строку при попытке сделать его echo возвращать не должен :). Единственное применение, которое я нахожу это либо вывод ошибки, так чтоб никто не догадался, либо вывод информации об этом объекте. Встроенный var_dump, к примеру.
А для вывода текста или любой другой инфы нужно вызывать конкретные методы, или максимум публичные поля. А так для этого существуют геттеры/сеттеры.
Но я никогда не использовал данную «магию» ибо не было нужды. Да и вообще php сильно избыточен, так что во многих мануалах пишут «не используйте __GET()», «не используйте __SET()». И чаще всего пишут «НИКОГДА НЕ ИСПОЛЬЗУЙТЕ!».
Александр, и Вы правы))) Этот метод __toString скорее нужен для отладки, чем для работы. Аналогично яваскрипту)) Там тоже есть волшебный метод toString)) Но есть в php «волшебные» методы, которые очень даже нужно использовать в программах: например, тот же __construct() или ___sleep и __wakeUp() и другие. Они прекрасны. Или метод, который вызывается при клонировании объекта. Полезная штука.. На тему «избыточен» не знаю, не знаю. Я бы сказала изобилен)))) Есть опытные себе вполне разработчики, которые не знают, как пользоваться namespace, а я вот только начинаю, и уже понимаю, что это ключевое слово будет у меня звучать и звучать))) Ну т.е.реально есть выбор. Можно писать go to, а можно писать do while и break; В том же яваскрипте нет такого изобилия.
Мануалы, в которых часто пишут НИКОГДА НЕ ИСПОЛЬЗУЙТЕ не уважаю. Уважаю те, в которых очень подробно описывают все подводные камни и оставляют на усмотрение программисту. Ибо мой код — мои правила… Хоть и стараюсь всеми ушами прислушиваться и просто как художественную литературу читать чужой код, чтобы учиться организации кода и разным хитрым разворотам.. и оптимизации кода.. и стилю кода.. и очень стараюсь соблюдать все проблелы-табуляции-максимальную длину строки-комментарии, осмысленные имена всех переменных только на английском (честно смотрю в словаре, если не знаю, как это по-английски, чтобы грамотно назвать переменную) и пр., призванное увеличить читабельность, все равно «мой код — мои правила» — это то, что я люблю в программировании..
Я, скорее всего, быстро выброшу мануал, в котором много «НИКОГДА НЕ ИСПОЛЬЗУЙТЕ» или «Есть такая возможность, но лучше использовать другие»
Есть объяснение «никогда не используйте», связанное с тем что сильно жрёт память, или необоснованно долго выполняется скрипт.
Я не говорю что все магические методы плохи, и конструкторы/деструкторы это нормально, как бы это основы ООП.
Я до сих пор не знаю как пользоваться неймспейсом, я даже не знаю зачем он нужен, т.е. не вижу его применения, ну пока для себя.
go to тоже использовать не надо… хотя есть крайне редкие ситуации, когда он нужен.
У меня до сих пор куча вопросов про наследование. Так что да, php для меня пока тёмный лес, и мне проще ориентироваться по советам опытных программистов, которые пишут «не используйте» не из-за вредности, а из-за багажа опыта :)
Мне больше нравится такой подход: «Если перебирать числовой массив циклом for — это будет работать быстрее, чем цикл foreach в аналогичной ситуации». Статья про атрибуты и св-ва DOM-объектов в яваскриптах, там комментарии. Один комментирует: никогда не используйте setAttribute чтобы переключить галочку в чекбоксе! И все. А другой чувак дальше пишет: Я почитал спецификацию, атрибуты инпутов синхронизируются со свойствами DOM-объектов только в одну сторону, т.е.при изменении атрибута «checked» свойство и не должно меняться. Поэтому нет никакой гарантии, что во всех браузерах это будет стабильно работать. И действительно — работает через раз. Используйте obj.checked = true;
Разница заметна? Именно поэтому начинаю не уважать мануалы с фразами «НИКОГДА НЕ ИСПОЛЬЗУЙТЕ». Засоряет мозг, не давая понимания… «Багаж опыта» невозможно передать фразами с ключевым словом «НЕ»))) Серьезно, советую выбросить книжки, в которых много такого типа фраз — по таким учишься неполноценно.
А есть какие-то сформулированные вопросы про наследование?)) Давайте сюда хотя бы маленькую часть Вашей кучи) Очень интересно!
Ок, короткий вопрос про наследование — нахрена оно мне надо? Да простит меня администратор данного сайта про жестокий оффтоп не по теме статьи.
Александр,
круто) Спасибо))
Прекрасная тема урока, понятно и четко написано. И не менее захватывающие комментарии. Предлагаю лучшим признать комментарий Риты — 12.05.2013 23:47. И еще красиво написано — — 13.05.2013 18:57. )))
Я делаю в условии по другому $_GET[«name»]==’NULL’ и тоже работает.
Ей Админ! Начинай раскладать коды все по полочкам, ето статья для новичков которые только и видели PHP в какомто документе!
Например что такое !empty????????? И какие значения(основные хотябы) существуют еще????????? Я видел !isset или чтото вроде того! Разьясняй понятнее СЛИШИШ? Ну пожалуйста! Я только твою одну нормальную статью нашел что более мение можно читать! Так как ты в начале разложил все по полочкам, а начиная с етого урока ты половину кода упускаеш! Например етот код if (!empty($_GET[«name»])&&!empty($_GET[«age»])) ну бля и как понять что к чему? Возникает много вопросов:
1. А что усл. оператору if можно задавать 2 параметра if ( ) ( )?
2. Что ето еще за знак восклицания и что за empty после него? Какие еще значения вместо empty можно поставить? ! — обязателен?
3. Что значит переменная $_GET, и почему $_GET а не просто $GET зачем ставить _ если правила разрешают без знака _ если переменная начинается с буквы? Не ну я так понял что переменную мы сами можем придумать?
4. Что значит &&?
Вот и все вопросы! Тебе что тяжело было разьяснить ето в статье? Или пальцы болят?:-)
И кстате у тебя тут полно всякой фигни которую ты вообще не паяснил, например Граберры или как их там, ты только паяснил что они делают а пример и то как ими пользоватся или где их найти(ну ты понял, код) не предоставил. И указал какую то ссылку которая ведет на скачку денвера, хотя хотели мы скачать дополнительные модули PHP5
GLS
Ох))) Перечитала свои старые комментарии тут (Под именем Рита))) Ностальжи!)))
Сейчас я уже пишу на PHP и на Parser, и мой собственный ход мыслей кажется несколько странным и таким далеким))))
GL
А разве нельзя всё это прописать на одном файле?
Я создал старничку с формой, а код php расположил на этой же страничке только сразу под формой. В action прописал название этого же файла, где и находится форма и вычислительный алгоритм и всё работает.
И не надо отвлекаться от формы. Заполнил — получил ответ. Ещё раз и ещё, ещё…
Правда, у меня в разработке не имена с возрастом, а маленькие приложения по отгадке слов, предложений, изображений. Для этого, как мне кажется, не зачем форму и задачу в разные файлы разводить.
Может кто знает как получить данные исполняемого файла на удаленном сервере который возвращает некие параметры. Как их вывести на свою страницу?
Хороший урок.
Но я никак не могу понять как кнопка вызывает пхп код? А если у меня много кнопок на форме будет, как указать чтобы именно эта кнопка вызывала пхп код по обработке формы?
Доброго времени. Обьясните,пожалуйста, зачем в
«»
употребляется сплэш «/» в конце,после «value=»» «?
empty значит пустой, ! означает отрицание, т.е. !empty — не пустой. условие если переменная name и переменная age не пустые значит вывести их значения на экран.. только не понятно почему &&, а не & или and?
Вывод данных можно было и одной строкой записать:
echo «имя — «.$_POST[user_name].»возраст — «.$_POST[age].» лет»;
Зачем «echo» плодить?
kvqveyhflkzxnnxyszowsxfxjhtijp