通过 http post 从客户端向服务器发送数据
Sending data from a client to a server by means of a http post
我正在尝试从客户端向服务器发送数据。客户端运行一个使用 'request' 库的简单 python 脚本。服务器端由另一个使用 $_POST 的简单 php 脚本组成。
我需要网页根据通过客户端程序提供的数据进行更新。
这是 python 脚本:
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 上显示 'It works!',因为这是传递的值。
但是由于某些原因,它没有显示任何内容
r.text 在 < h1 > 标签中使用 'It works!' 打印所需的格式,但在实际网站中不会显示相同的格式。
我也试过 var_dump($txt)。它给了我一个 NULL 值。
如有任何帮助,我们将不胜感激。
在我看来,您是在要求一个单独的实例来更新您当前的实例。您在浏览器中访问的 PHP 对 python 脚本一无所知。它根本不调用 python 脚本。在第二个会话中,python 脚本调用 PHP 并收到正确的响应。
这是两个不同的会话,浏览器 window 不会从 python 脚本中看到任何内容,除非它调用它。
这是正在发生的事情:
第 1 节
- 运行 Python 本地机器上的脚本
- Python 在服务器
上调用 PHP
- PHP returns 输出到本地机器
- Python 打印结果
第 2 节
- 在本地机器上打开网络浏览器
- Web 浏览器在服务器
上调用 PHP
- PHP returns 结果到网络浏览器
- Web 浏览器显示结果
第一个会话没有持久化来保存第二个会话的信息。它们是两个完全独立的动作。一种更典型的方法是在服务器上建立一个数据库(或者只是快速而肮脏的文本文件)来保存信息。 您需要创建第二个 PHP 文件以将信息保存到服务器上的数据库或文本文件中。然后您需要修改以前的 PHP 文件以从数据库或文本文件中读取信息。 然后将按以下方式设置会话。
第 1 节
- 运行 Python 本地机器上的脚本
- Python 在服务器
上调用 PHP(新文件)
- PHP 将信息从 python 脚本写入数据库(或文本文件)
- PHP returns 到本地机器的状态消息
- Python 打印状态
第 2 节
- 在本地机器上打开网络浏览器
- 网络浏览器调用服务器PHP(原始文件)
- PHP 从数据库(或文本文件)中读取所需信息
- PHP 在网络浏览器上显示从服务器读取的信息
- Web 浏览器显示结果
如果您真的想在 PHP 中使用 python 脚本的结果而不需要数据库或文本文件,您需要将 python 脚本上传到您的服务器,并使用 Calling Python in PHP
中建议的方法之一
我正在尝试从客户端向服务器发送数据。客户端运行一个使用 'request' 库的简单 python 脚本。服务器端由另一个使用 $_POST 的简单 php 脚本组成。
我需要网页根据通过客户端程序提供的数据进行更新。
这是 python 脚本:
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 上显示 'It works!',因为这是传递的值。 但是由于某些原因,它没有显示任何内容
r.text 在 < h1 > 标签中使用 'It works!' 打印所需的格式,但在实际网站中不会显示相同的格式。
我也试过 var_dump($txt)。它给了我一个 NULL 值。
如有任何帮助,我们将不胜感激。
在我看来,您是在要求一个单独的实例来更新您当前的实例。您在浏览器中访问的 PHP 对 python 脚本一无所知。它根本不调用 python 脚本。在第二个会话中,python 脚本调用 PHP 并收到正确的响应。
这是两个不同的会话,浏览器 window 不会从 python 脚本中看到任何内容,除非它调用它。
这是正在发生的事情:
第 1 节
- 运行 Python 本地机器上的脚本
- Python 在服务器 上调用 PHP
- PHP returns 输出到本地机器
- Python 打印结果
第 2 节
- 在本地机器上打开网络浏览器
- Web 浏览器在服务器 上调用 PHP
- PHP returns 结果到网络浏览器
- Web 浏览器显示结果
第一个会话没有持久化来保存第二个会话的信息。它们是两个完全独立的动作。一种更典型的方法是在服务器上建立一个数据库(或者只是快速而肮脏的文本文件)来保存信息。 您需要创建第二个 PHP 文件以将信息保存到服务器上的数据库或文本文件中。然后您需要修改以前的 PHP 文件以从数据库或文本文件中读取信息。 然后将按以下方式设置会话。
第 1 节
- 运行 Python 本地机器上的脚本
- Python 在服务器 上调用 PHP(新文件)
- PHP 将信息从 python 脚本写入数据库(或文本文件)
- PHP returns 到本地机器的状态消息
- Python 打印状态
第 2 节
- 在本地机器上打开网络浏览器
- 网络浏览器调用服务器PHP(原始文件)
- PHP 从数据库(或文本文件)中读取所需信息
- PHP 在网络浏览器上显示从服务器读取的信息
- Web 浏览器显示结果
如果您真的想在 PHP 中使用 python 脚本的结果而不需要数据库或文本文件,您需要将 python 脚本上传到您的服务器,并使用 Calling Python in PHP
中建议的方法之一