【问题标题】:Storing post content to variable将帖子内容存储到变量
【发布时间】:2017-02-08 21:08:27
【问题描述】:

http 请求代码

POST /parse.php HTTP/1.1
Host: mysite.com
Connection: Keep-Alive
Content-Length: 26
Content-Type: application/x-www-urlencoded

lt=12.123123&ln=123.123123

php 代码

//connect to database codes here
$database = "update name_tbl set lat='".$_GET['lt']."', lng='".$_GET['ln']."' where id=1";
mysqli_query($conn, $database)

所以当我输入 mysite.com/parse.php?lt=12.123123&ln=123.123123 以测试它是否正常工作时,我认为我的问题在于 php 部分,但是当我在 HttpRequest 上的 http 请求代码时 但发送值都是 0.000000。

【问题讨论】:

  • 如果您发出一个帖子请求,您的变量将在$_POST,而不是$_GET。另外,如果用户将lt 设置为'; drop table name_tbl;--,则可能会发生意外情况,请注意。
  • 阅读,使用,快! stackoverflow.com/questions/60174/…
  • @AbraCadaver 不要担心以上数据仅供测试,感谢您的建议。

标签: php sql httprequest


【解决方案1】:

如果您不确定请求是通过GET 还是POST 方法发送给您的,您可以尝试这样的方法

$lt = isset($_GET['lt']) ? $_GET['lt'] : (isset($_POST['lt']) ? $_POST['lt'] : null);
$ln = isset($_GET['ln']) ? $_GET['ln'] : (isset($_POST['ln']) ? $_POST['ln'] : null);

可能还有另一个选项称为$_REQUEST,它包含$_GET 和$_POST,但也有自己的怪癖。请阅读以下链接以获得更好的想法:

Among $_REQUEST, $_GET and $_POST which one is the fastest?

【讨论】:

  • 请尝试通过添加print_r($_POST); 和print_r($_GET); 来调试代码,看看您是否真正收到了变量。
  • 尝试在网页上打印Array ( ) Array ( [lt] => 14.657575 [ln] => 120.984224 )
  • 但是在 httprequester Array ( ) Array ( ) 是响应
  • 所以当网页上的代码运行时,$lt和$ln应该分别收到14.657575和120.984224(通过$_POST),如果你在分配后echo他们陈述。不确定httprequester 是如何发送数据的。变量可能没有正确附加到请求中。
  • 代码正在运行Content-Type: application/x-www-form-urlencoded
猜你喜欢
  • 2017-04-08
  • 1970-01-01
  • 1970-01-01
  • 2015-09-20
  • 2016-10-15
  • 1970-01-01
  • 2018-10-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多