PHP 5.4.10で実行されているページに次のスニペットがあります(比較すると===であることに注意してください)。
$list_all_pages = False;
$reqs_per_page = 50;
$start_page = 0;
if (isset($_GET["p"])) {
echo("Debug: " . $_GET["p"] . "\n");
if ($_GET["p"] === "all") {
$list_all_pages = True;
} else {
$start_page = intval($_GET["p"]);
if ($start_page < 1)
$start_page = 0;
}
}
パラメータ「p」は、表示される結果ページの番号(ゼロから開始)またはすべてのページを表示する「all」を意味します。理解できない理由で、PHPは自動的にパラメーターを整数に変換し、その結果、希望するすべてのページを表示することはできません。
たとえば、「mypage.php?p=all
」でページを呼び出すと、デバッグエコーは「Debug:0」を出力します。
何が起こっていますか?この種の自動変換は少し危険だと思います...誰かが以前にこの問題を抱えたことはありますか?