繁体   English   中英

如何在PHP页面中发布长字符串?

[英]How do i post a long string into a PHP page?

这个问题分为两个部分:

第一部分-限制?

我可以通过以下方式将数据存储到数据库中:

www.mysite.com/myscript.php?testdata=abc123

这适用于短字符串(例如'abc123'),并且页面回显写入数据库的内容; 但是,如果[testdata =]字符串长于512个字符,并且我检查数据库,则表明已添加一行,但该行为空,而且脚本中的echo语句也不会显示输入字符串。

注意:我在共享服务器上,并通过电子邮件发送给主机,以查看是否有限制。

第二部分-最佳做法?

如果可以克服上述障碍,我想使用一个在桌面应用程序中创建的〜15k字符长的字符串,该字符串将各种参数的[testdata =]字符串连接起来; 在PHP POST中发送长字符串的最佳方法是什么?

在此先感谢您的帮助,我对PHP不太了解。

编辑:表配置: 在此处输入图片说明

Edit2:行异常,长字符串> 512个字符: 在此处输入图片说明

Edit3:这是我的PHP脚本,如果有帮助的话:

<?
include("connect.php");

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

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

mysql_close(); ?>

POST绝对是您要使用的方法,最好的选择是使用cURL。 这样的事情应该起作用:

$ch = curl_init();

curl_setopt( $ch, CURLOPT_URL,        "http://www.mysite.com/myscript.php" );
curl_setopt( $ch, CURLOPT_POST,       TRUE );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $my_really_long_string );

$data = curl_exec( $ch );

您需要根据环境修改以上内容以包含其他cURL选项,但这就​​是您想要的。

您将要确保您的数据库字段足够长以容纳真正长的字符串。

回答1是的,URL的最大长度有限制。 查看更多: 查询字符串的最大可能长度是多少?

答案2您可以像简单变量($ _POST)一样发送字符串。 仅检查php.ini中输入/执行的最大值的设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM