我得到了一個簡單的表單,它使用ajax發送大量數據。我正在創建一個小型CMS,您可以在其中創建博客文章。通過AJAX使用GET發送文本的很多
的JavaScript看起來像這樣的博客:
function SaveBlog()
{
document.getElementById("txtHint").innerHTML= 'Saving...';
if(window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
else
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
var TitleVar = document.getElementById('title').value;
var editorText = CKEDITOR.instances.blogcontent.getData();
xmlhttp.open("GET","saveblog.php?id="+<?php echo $_GET['update']; ?> + "&title=" + TitleVar + "&context=" + encodeURIComponent(editorText),true);
xmlhttp.send();
}
這背後
$ID = $_GET['id'];
$con = mysql_connect("", "", "");
mysql_select_db("FP", $con);
$Title = $_GET['title'];
$Context = mysql_real_escape_string($_GET['context']);
mysql_query("UPDATE Blog SET BlogTitle='$Title', Entry='$Context' WHERE Identifier='$ID'");
//echo "ID: " . $_GET['id'] . " Title: " . $_GET['title'] . " Context: " . $_GET['context'];
echo '<b>Last Save: </b>' . date("F j, Y, g:i:s a");
一切正常,當我只喜歡送達到約2000個字符後,PHP腳本,它只是說「保存...」,沒有別的。
瀏覽器對URL有內置的長度限制。您不能將它們用於任意長度的數據傳輸。正如你發現的那樣,2000字符是你特定瀏覽器的限制。使用POST代替,這沒有實際的限制。你的SQL也容易受到SQL注入攻擊的影響 - 你逃避了上下文,但是** NOT **'id'或'title'。你已經用塑料布鎖住了你的銀行保險庫。 – 2013-04-27 21:38:51