需要對此進行說明..我將分頁添加到網站,並且需要Filter Input/Escape Output上的指針。正如你在下面看到的,新創建的page
全局默認爲頁面1,當頁面第一次加載時,這是正確的行爲,使用速記三元運算符。什麼是創建過濾_GET變量的正確方法?
<snip>
$itemsPerPage = 20;
$numOfFilms = $totalRows->rows;
$numOfPages = ceil($numOfFilms/$itemsPerPage);
// Default 'page' to Page 1
$filter ='page';
$get_pages = isset($_GET[$filter]) ? $_GET[$filter] : 1; <-- This line
//var_dump($get_pages); <-- Testing
</snip>
$paginationOptions = [
'options' => [
'default' => 1,
'min_range' => 1,
'max_range' => $numOfPages
]
];
$pageNumberClean = trim($get_pages);
$pageNumber = filter_var($pageNumberClean, FILTER_VALIDATE_INT, $paginationOptions);
$range = $itemsPerPage * ($pageNumber - 1);
知道我應該永遠不要相信用戶的輸入,反過來原因Netbeans的拋出一個警告:
不直接訪問超全局_GET數組。使用一些過濾的功能,而不是...
如果我換三元聲明兩側filter input
警告消失,並且在語法上是正確的,但該頁面將無法運行,因爲過濾輸入變量page
在_GET數組中不存在,所以:
什麼是公認的標準或正確的方法來創建_GET數組變量,而不直接訪問_GET數組?換句話說:我可以正確使用filter_input
並創建變量,所以警告消失了嗎? 告訴我關閉警告不是我正在尋找的答案。還要注意我已經搜索了「如何初始化一個_GET變量」,並且大部分結果解釋了我已經知道的$_GET
和$_POST
之間的區別。
感謝您的時間
這個怎麼樣:只接受一個整數頁碼。 「$ get_pages =(isset($ _ GET [$ filter])&& is_int($ _ GET [$ filter]))?$ _GET [$ filter]:1;」 – Hiphop03199
此外,在您的代碼中可能有錯誤 - get_pages前應該有'$'嗎? – Hiphop03199
@ Hiphop03199是的,這就是我得到的複製/粘貼LOL ....固定 – eyoung100