2015-06-15 3 views
0

Я пытаюсь отправить данные с клиента на сервер. Клиент запускает простой скрипт python, который использует библиотеку «запрос». Серверная сторона состоит из другого простого скрипта php, использующего $ _POST.Отправка данных от клиента на сервер с помощью http post

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

Вот питон скрипт:

import requests 

url = "http://xxxxxxx.com/php_files/text_data.php" 

d = {'test': 'It works!'} 
r = requests.post(url, data = d) 
print r.status_code, r.reason 
print r.text 

А вот код PHP: '! Он работает'

<!DOCTYPE = html> 
<html> 
    <head> 
     <h1> 
      <?php 

       $txt = $_POST['test']; 
       echo $txt; 
      ?> 
     </h1> 
    </head> 
</html> 

мне нужна страница PHP для отображения на h1, поскольку это значение, которое передается. Но по какой-то причине он ничего не отображает

r.text печатает требуемый формат с помощью 'It works!' в тегах < h1>, но то же самое не отображается на самом веб-сайте.

Я также пробовал var_dump ($ txt). Это дает мне значение NULL.

Любая помощь будет с радостью оценена.

+0

как вы размещаете его на веб-сайте при посещении страница? –

+0

Как правило, вы храните вещи, которые вы каким-то образом получаете (в базе данных или в каком-то файле ...) таким образом, что вы можете получить данные позже для отображения, как вам нравится ... –

+0

Сначала я запускаю скрипт python и ожидаю, данные для публикации на веб-странице. Моя цель - перенести данные из сценария python на веб-сервер. .... Итак, по вашему мнению, я должен хранить $ txt в текстовом файле или в базе данных MySql в php-скрипте? – Specas

ответ

1

Мне кажется, что вы запрашиваете отдельный экземпляр для обновления текущего экземпляра. PHP, который вы просматриваете в своем браузере, ничего не знает о скрипте python. Он вообще не вызывает скрипт python. Во втором сеансе скрипт python вызывает PHP и получает правильный ответ.

Это два разных сеанса, окно браузера ничего не увидит из сценария python, если оно не назовет его.

Вот что происходит:

Сессия 1

  1. Run Python скрипт на локальном компьютере
  2. Python требует PHP на сервере
  3. PHP возвращает вывод на локальной машине
  4. Python печатает

Сессия 2

  1. Открыть веб-браузер на локальном компьютере
  2. Web-браузер вызывает PHP на сервере
  3. PHP возвращает результаты в веб-браузере
  4. Веб-браузер отображает результаты

Там нет настойчивости на первом сеансе, чтобы сохранить информацию для второй сессии. Это два совершенно разных действия. Более типичным способом было бы создание базы данных (или просто быстрого и грязного текстового файла) на сервере для сохранения информации. Вам необходимо создать второй файл PHP для сохранения информации в базе данных или текстовом файле на сервере. Затем вам необходимо изменить предыдущий файл PHP, чтобы прочитать информацию из базы данных или текстового файла. После этого сеансы будут установлены следующим образом.

Сессия 1

  1. Run Python скрипт на локальном компьютере
  2. Python требует PHP (новый файл) на сервере
  3. PHP записывает информацию из питона сценария базы данных (или текстовый файл)
  4. PHP возвращает сообщение о состоянии на местную машину
  5. Python выводит статус

Сессия 2

  1. Открыть веб-браузер на локальном компьютере
  2. Web-браузер вызывает PHP (оригинальный файл) на сервере
  3. PHP считывает нужную информацию из базы данных (или текстовый файл)
  4. PHP отображает информацию чтения с сервера на вебе-браузере
  5. веб-браузер отображает результаты

Если вы действительно хотите использовать повторно sults из скрипта python на PHP без базы данных или текстового файла, вам нужно будет загрузить скрипт python на ваш сервер и использовать один из методов, предложенных в Calling Python in PHP

+0

Что я пытаюсь сделать, это сначала запустить скрипт python на моем компьютере. Я ожидал, что он отправит запрос на php, а затем сервер, выполняющий php, чтобы отобразить данные, которые я отправил на веб-страницу. Я не слишком уверен, что это правильный способ сделать это. Любые другие предложения были бы полезными. – Specas

+0

Нет, у вас нет настойчивости, см. Мой обновленный ответ о том, как вы должны атаковать проблему. – dstudeba

+0

Кажется, что вам не хватает основополагающих концепций о том, как функционируют Интернет и веб-страницы, в частности, существует много способов создания настойчивости. (если вы действительно хотите настойчивости ... вы пытаетесь создать какой-то сокет-сервер, который транслирует все?) –

Смежные вопросы