PHP网址 - 这是一个可行的黑客?

时间:2014-01-07 18:22:11

标签: php

this question之后,我意识到你在使用表格时只能使用$ POST ...哦。

当没有表格时仍然使用jQuery或cURL无法解决我需要在网址中发布长字符串的问题。

问题

我需要从桌面应用程序向我的数据库发送数据,因此最好的方法是使用以下url格式并将数据追加到最后,因此它变为:

www.mysite.com/myscript.php?testdata=somedata,moredata,123,xyz,etc,etc,thisgetslong

使用我以前的脚本,我使用$ GET来读取[testdata =]字符串,我的网站主机告诉我$ GET只能读取512个字符,所以这就是问题所在。

哈克

使用下面的脚本,我现在可以写出数千个字符;我的问题,这是可行的还是有更好的方法?

<?
include("connect.php"); //Connect to the database

//hack - read the url directly and search the string for the data i need

$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$findme = '=';
$pos = strpos($actual_link, $findme) + 1; //find start of data to write
$data =  substr($actual_link, $pos); //grab data from url

$result = mysql_query("INSERT INTO test (testdata) VALUES ('$data')");

// Check result
if ($result) {echo $data;}
else echo "Error ".$mysqli->error;

mysql_close(); ?>

编辑: 用PHP代码替换图像。

我已经学会了如何提出一个问题 - 不要使用hack这个词,因为它会激怒人们的羽毛并且不会使用图像代码。

我只是不知道如何将一个长字符串传递给无形的PHP页面,虽然我很欣赏人们的回答,但关于cURL的答案对我来说没有意义。从this page开始,我不清楚如何从.NET应用程序传递字符串。我显然需要做很多研究并为我的asinine问题道歉。

2 个答案:

答案 0 :(得分:1)

网址具有实用性fixed limit of ~2000 chars,因此您将数千个字符传递到网址中。 URL的查询部分仅用于相对较短的参数集。

相反,您可以构建一个请求体,通过cURL / jQuery / etc发送POST。这就是浏览器提交表单数据的方式,您应该也可以这样做。

答案 1 :(得分:0)

在您的方案中,您需要检查两个重要元素。

首先,执行http操作的客户端是什么?如果客户端将成为浏览器或应用程序,我无法从您的文本中看出来。客户端是您解决方案中将要调用GET或POST操作的任何内容。

这很重要。当您在线阅读有关查询字符串长度限制的内容时,通常是在使用带有长URL的浏览器的人的上下文中。浏览器没有最大URL长度的标准。但是如果你以实际的方式思考它,你永远不想通过在某个地方发布或通过电子邮件发送它来共享一个非常大的URL;不得不切入并粘贴到客户端浏览器会很快挫败某人。另一方面,如果客户端是应用程序,那么它只是两台机器交换数据,而且实际上没有涉及人为因素。

要检查的第二点是网络服务器。 Web服务器实现可能会对URL长度造成限制,也可能不会。同样,没有标准。

在任何情况下,如果您使用GET操作,您的约束将是您的客户端和服务器允许的最小值(即,如果两者都没有限制,则没有限制;如果任何一个限制为200字节,你的限制是200字节;如果一个有200字节限制而另一个有400字节限制,你的限制是200字节)

回顾一下,你提到了“桌面应用程序”,但没有告诉我们你正在开发什么语言,以及什么是操作系统。这很重要 - 那是你的客户。

祝你好运。