2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Php, Неправильная работа метода post
Сообщение19.07.2017, 17:07 
Здравствуйте.
Недавно начал изучать php, возникла такая проблема:
1)создал файл new 1.html:
код: [ скачать ] [ спрятать ]
Используется синтаксис PHP
<html>
        <head>
        <title>Форма</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
        </head>
        <body>

        <h1>Введите ваше имя</h1>
    <form method="post" action="2.php">
        <input type="text" name="username">
        <input type="submit">
        </form>
        </body>
        </html>

2)Создал файл 2.php:
Используется синтаксис PHP
<html>
        <head>
        <title>Моя первая PHP-страница</title>
       
        </head>
        <body>
        <?php
        echo "<h1>Привет, " . $_POST["username"] . "</h1>";
        ?>
        </body>
        </html>

Пункт 1 работает хорошо: ввожу в окошко свое имя, но дальше браузер выдает:

Привет, " . $_POST["username"] . ""; ?>

Как понимаю метод post не правильно работает. Подскажите что делать?
Оба файла находятся в одной папке с:xampp\htdocs\site.local

 
 
 
 Re: Php, Неправильная работа метода post
Сообщение19.07.2017, 17:14 
С PHP, помнится, интересная история. Переменные POST (аналогично и прочие) могут попадать либо в глобальный массив, либо в глобальные переменные индивидуально в зависимости от настроек хоста. Поищите и проверьте.

 
 
 
 Re: Php, Неправильная работа метода post
Сообщение19.07.2017, 19:52 
Аватара пользователя
А в чем заключается действие формы: занесение в датабазу? отправление емейла? Или просто в ответе "Привет, Вася" (или какое у Вас там имя)?

 
 
 
 Re: Php, Неправильная работа метода post
Сообщение19.07.2017, 20:50 
Red_Herring в сообщении #1234644 писал(а):
А в чем заключается действие формы: занесение в датабазу? отправление емейла? Или просто в ответе "Привет, Вася" (или какое у Вас там имя)?
Пока, очевидно, последнее. Но, возможно, ТС пока просто тренируется, и будет первое или второе )
iifat в сообщении #1234610 писал(а):
Переменные POST (аналогично и прочие) могут попадать либо в глобальный массив, либо в глобальные переменные индивидуально в зависимости от настроек хоста.
Обычно не либо (или), а и (и в массиве, и в локальных переменных).

Тут все проще. ТС запустил файл не через сервер, а напрямую. PHP не обрабатывается. Вам нужно (при запущенном сервере) набрать в адресной строке браузера адрес типа
http://localhost/2.php

 
 
 
 Re: Php, Неправильная работа метода post
Сообщение19.07.2017, 21:23 
Почти оффтоп, но может быть полезным:
Ruus в сообщении #1234606 писал(а):
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
В HTML5 достаточно просто <meta charset="utf-8">. И, кстати, почему вы забыли указание кодировки во втором файле?

 
 
 
 Re: Php, Неправильная работа метода post
Сообщение20.07.2017, 02:57 
gevaraweb в сообщении #1234667 писал(а):
Обычно не либо (или), а и (и в массиве, и в локальных переменных)
Ничего не знаю насчёт обычно. Повторюсь: есть две независимые опции, независимо же включающие либо отключающие то и другое.
gevaraweb в сообщении #1234667 писал(а):
ТС запустил файл не через сервер, а напрямую
Может, и так, но с чего вы это взяли? Что с этим будет делать POST? К тому ж, помнится, PHP обрамляется комментариями, так что в этом случае весь кусок просто бы исчез.

 
 
 
 Re: Php, Неправильная работа метода post
Сообщение20.07.2017, 08:16 
gevaraweb в сообщении #1234667 писал(а):
ТС запустил файл не через сервер, а напрямую. PHP не обрабатывается. Вам нужно (при запущенном сервере) набрать в адресной строке браузера адрес типа http://localhost/2.php
Вроде через сервер, ведь оба файла находятся в папке htdocs/site.local .Набирая в адресной строке это ничего хорошего не выдает, оно и понятно, этот файл ждет значение переменной username.

-- 20.07.2017, 09:22 --

iifat в сообщении #1234610 писал(а):
Переменные POST (аналогично и прочие) могут попадать либо в глобальный массив, либо в глобальные переменные индивидуально в зависимости от настроек хоста. Поищите и проверьте.
А вы не знаете где их в xampp искать? Или я что то не понял?

-- 20.07.2017, 09:29 --

Код:
<html>
   <head>
   <title>Моя первая PHP-страница</title>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   </head>
   <body>


   <?php
   echo "<h1>Hello " . $_post["username"] . "</h1>";
   $username
   ?>
   
   
   </body>
   </html>

добавил username чтобы проверить, не сохранилось ли в ней значение переменной...
Hello " . [math]$_post["username"] . ""; $username ?> - то же самое.

 
 
 
 Re: Php, Неправильная работа метода post
Сообщение20.07.2017, 21:55 
iifat в сообщении #1234739 писал(а):
Ничего не знаю насчёт обычно. Повторюсь: есть две независимые опции, независимо же включающие либо отключающие то и другое.

Вы правы. Я лишь хотел внести уточнение, чтобы ТС не пошел по ложному пути. Обычно - подразумевался виртуальный сервер, где ТС, конечно, мог изменить настройки, но что весьма маловероятно. Ваши проблемы были, скорее всего, с физическим сервером. Ну да ладно.

gevaraweb в сообщении #1234667 писал(а):
Тут все проще. ТС запустил файл не через сервер, а напрямую. PHP не обрабатывается. Вам нужно (при запущенном сервере) набрать в адресной строке браузера адрес типа
http://localhost/2.php

Точнее, наберите адрес http://localhost/new 1.html
Ruus в сообщении #1234755 писал(а):
Hello " .$_post["username"] . "";$username ?> - то же самое.

Осторожнее. PHP местами чувствителен к регистру. И точно не будут равны по умолчанию переменные $_post["username"] и $username.

 
 
 
 Re: Php, Неправильная работа метода post
Сообщение20.07.2017, 23:05 
iifat в сообщении #1234739 писал(а):
К тому ж, помнится, PHP обрамляется комментариями, так что в этом случае весь кусок просто бы исчез.
<?php … ?> выглядит больше как processing instruction, и не уверен, что в стандарт HTML (в отличие от XML) они входят и стандарт предписывает их не отображать ни при каких условиях.

 
 
 
 Re: Php, Неправильная работа метода post
Сообщение21.07.2017, 02:04 
Ruus в сообщении #1234755 писал(а):
А вы не знаете где их в xampp искать?
Не знаю. Похоже, за последние пятнадцать-двадцать лет PHP несколько изменился и мои предположения неактуальны. Скорее, и правда стоит к регистру в именах переменных присмотреться.
Вот, кстати, сюда загляните, не пропуская комментариев. В частности, там пишут
Цитата:
в случае использования в запросе в качестве HTTP Content-Type application/x-www-form-urlencoded или multipart/form-data
Не скажу точно, где это надо писать, но у вас ничего подобного нет.

 
 
 
 Re: Php, Неправильная работа метода post
Сообщение28.07.2017, 07:50 
gevaraweb в сообщении #1234667 писал(а):
Тут все проще. ТС запустил файл не через сервер, а напрямую. PHP не обрабатывается. Вам нужно (при запущенном сервере) набрать в адресной строке браузера адрес типа http://localhost/2.php
Всем большое спасибо :D .Все заработало после того как набрал http://localhost/site.local, вышли все файлы, лежащие в папке site.local.

 
 
 [ Сообщений: 11 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group