次のコード行があります
if(isset($_GET['course_id'])) {
$data_id = mysql_real_escape_string($_GET['course_id']);
$subscriptionVerification = "SELECT `user_id`, `course_id` FROM subscriptions WHERE `user_id` = '".$user_id."' and `course_id`='".$data_id."'";
$subscriptionResult = mysql_query($subscriptionVerification);
if(!mysql_num_rows($subscriptionResult)===1)
{
header("location:login.php");
die(); // sends user to the login page if their userID and subscription code do not match the page they are trying to retrieve
}
}
問題は、 chapters.php?course_id=1234 から course_id を取得したときに、その id が mysql db に存在しない場合でも、リダイレクトせずにページをロードすることです。
if(mysql_num_rows($subscriptionResult)===1)
なしで書く!
と、それは機能し、すべてのトラフィック (正しいコース ID を含む) を転送します。
何か間違っているのではないかと思います。次の 2 つのバリエーションも試しました
が、どちらも機能if(!$subscriptionResult)
しませんでした。if($subscriptionResult===FALSE)
これの目的は、人々が course_id (特に存在しないもの) を手動で入力して、コンテンツを含むページを読み込もうとするのを避けることです。