我想在不刷新頁面的情況下從數據庫中提取一些數據。什麼是最好的方式來做到這一點?使用XMLHTTPRequest從數據庫中提取數據
我正在使用以下XMLHTTPRequest函數從cart.php
文件中獲取一些數據(購物車項目)。該文件基於option
值執行各種功能。 例如:option=1
表示獲得所有的購物車物品。 option=2
表示刪除所有購物車物品並返回字符串"Your shopping cart is empty."
。選項= 3,4 ...等等。
我XHR功能:
function getAllCartItems()
{
if(window.XMLHttpRequest)
{
allCartItems = new XMLHttpRequest();
}
else
{
allCartItems=new ActiveXObject("Microsoft.XMLHTTP");
}
allCartItems.onreadystatechange=function()
{
if (allCartItems.readyState==4 && allCartItems.status==200)
{
document.getElementById("cartmain").innerHTML=allCartItems.responseText;
}
else if(allCartItems.readyState < 4)
{
//do nothing
}
}
var linktoexecute = "cart.php?option=1";
allCartItems.open("GET",linktoexecute,true);
allCartItems.send();
}
cart.php文件看起來像:
$link = mysql_connect('localhost', 'user', '123456');
if (!$link)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('projectdatabase');
if($option == 1) //get all cart items
{
$sql = "select itemid from cart where cartid=".$_COOKIE['cart'].";";
$result = mysql_query($sql);
$num = mysql_num_rows($result);
while($row = mysql_fetch_array($result))
{
echo $row['itemid'];
}
}
else if($option == 2)
{
//do something
}
else if($option == 3)
{
//do something
}
else if($option == 4)
{
//do something
}
我的問題:
- 是否有其他方法可以讓我得到來自數據庫的數據沒有 刷新頁面?
- 是否有任何潛在的威脅(黑客攻擊,服務器利用率, 表現等)在我做這件事的方式嗎?我相信黑客可以 淹沒我的服務器使用選項= 1, 2,3等
您能否澄清RESTful api如何減少拒絕服務攻擊的漏洞,而不是使用HTTP POST或GET?我想問的原因是我已經實現了使用GET或POST的API,我一直在想如何讓它們更安全。謝謝! – 2011-12-28 13:40:57
@Manish:他們不知道,你*使用'POST'和'GET'。 REST旨在使您的API不那麼模糊(更明確),並防止意想不到的副作用。如何保護您的API取決於您希望保護它*針對*(例如,您想限制訪問還是防止氾濫?) – PPvG 2011-12-28 13:47:05
我有使用HSA1實施的訪問限制。我想知道洪水。我閱讀了一篇有趣的文章,其中提出了(希望我已添加書籤)數據,以表明即使是後期更容易獲得。 – 2011-12-28 14:12:40