【问题标题】:Python to PHP valuablesPython 转 PHP 贵重物品
【发布时间】:2014-02-14 08:52:15
【问题描述】:

我对整个 python 都是新手。为了学习,我创建了一个小脚本,使用$_GET[''] 方法将python 中的两个值传递给PHP,然后PHP 将它们写入MySQL DB。我正在考虑只使用 python 与 MySQL 数据库通信,但这意味着我不能让我的 MySQL 服务器被列入 IP 白名单。因为如果我在另一个未注册的位置使用此脚本怎么办。

任何人,这是我的 php 脚本:

$v1 = mysql_real_escape_string($_GET['v1']);
$v2 = mysql_real_escape_string($_GET['v2']);

mysql_query("INSERT INTO `values` (ID, value1, value2) VALUES ('', '$v1', '$v2')") or die(mysql_error());

我有 python (value1 = "test1", value2 = "test2") 中的值。但我的问题是,我该如何将它们发送到 Web 服务器,$_GET[''] 是最好的解决方法吗?我想,如果我要学习,为什么不学习正确的方法,对吧?我需要的只是将变量传递给 PHP 并将它们保存到 $value。一旦我将它们放在$value 中,我就可以从那里拿走它。

【问题讨论】:

  • 您绝对应该阅读有关 REST、消息传递系统和类似主题的信息。
  • 还有,SQL 注入。以及mysql_* 的 PHP 文档中的大红框。
  • 注入漏洞存在于您的 PHP 代码中,而不是 Python。您应该永远编写这样的代码,即使是一次性练习脚本也是如此。
  • 转义字符串说明你不懂。只需使用prepared statements,让他们担心确保参数安全的艰巨任务。

标签: php python mysql variables


【解决方案1】:

所以基本上,您想从 Python 发出 GET 请求。

到目前为止,最好的方法是使用requests 库。或多或少直接来自documentation

>>> import requests
>>> payload = {'key1': 'value1', 'key2': 'value2'}
>>> r = requests.get("http://httpbin.org/get", params=payload)

请注意,这是您必须安装的第三方库,例如与pip。如果由于某种原因无法实现,您也可以使用urlliburllib2

from urllib import urlencode
import urllib2

payload = {'key1': 'value1', 'key2': 'value2'}
params = urlencode(payload)
r = urllib2.urlopen('http://httpbin.org/get?' + params)

请注意,此示例假定 Python 2.x

【讨论】:

  • 完美运行...安装请求后。感谢您的帮助。
猜你喜欢
  • 2015-03-06
  • 1970-01-01
  • 2021-07-07
  • 1970-01-01
  • 2013-03-26
  • 2014-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-28
相关资源
最近更新 更多