如果我有一個查詢字符串,如:http://mywebsite.co.uk/charge.php?val=5768
驗證查詢字符串在PHP
我如何可以驗證該查詢字符串,如果用戶在查詢改變「VAL」的值拋出用PHP錯誤串。我可以在charge.php頁面上編寫一些代碼來執行此操作嗎?
如果我有一個查詢字符串,如:http://mywebsite.co.uk/charge.php?val=5768
驗證查詢字符串在PHP
我如何可以驗證該查詢字符串,如果用戶在查詢改變「VAL」的值拋出用PHP錯誤串。我可以在charge.php頁面上編寫一些代碼來執行此操作嗎?
在我看來,你在吠叫錯誤的樹。你無法檢測到某人是否「改變」了某些東西。你得到的只是一個URL的請求,就是這樣。您通常不知道該請求來自哪裏或誰提供了該URL;您需要根據自身的優點評估請求。
我猜你有一些保密的行爲,當有人訪問該網址時發生。價值觀改變了這一行動的一些重要部分。然後,您需要創建服務器端檢查和界限,以確認用戶目前是否可以執行他在此處請求的任何操作。您需要在服務器上存儲足夠的信息以確認用戶是否允許執行該操作。你不能簡單地信任URL中的信息,因爲任何人都可以篡改它。
如何做到這一點具體在你的情況是不明確的,因爲我沒有具體的想法那裏應該發生什麼。
我很害怕它與6小時前的問題([使用Stripe](http://stackoverflow.com /問題/ 22481482 /條紋網關日誌犯規出現量))。我不願意在一個必須構建僅僅安全的代碼的網站上付款,因爲「我無法更改GET參數」。 – h2ooooooo
您可以檢查val是否爲整數,並且val是否存在於數據庫中。我用一個函數像下面的檢查整數:
// CHECK IF VALID INTEGER
function valid_integer($str)
{
if (strlen($str) == strlen(preg_replace('#[^0-9]#i', '', $str) + 0) AND $str > 0 AND $str < 9999999999999)
{
return true;
}
}
這樣的話我可以檢查VAL像下面
if (valid_integer($_GET['val']))
{
echo 'valid int';
}
else
{
echo 'not valid int';
}
然後你必須檢查VAL存在於數據庫中。如果你使用分貝。
是的,你可以。我相信你可以弄明白。 – h2ooooooo
請你能給我一個提示,也許我是新來的php – Rifki
一般來說,Rifki,StackOverflow是用來發布你已經嘗試過的代碼示例,你得到了什麼錯誤,並尋求幫助修復這些錯誤。不適合人們爲你寫代碼。 – Rottingham