إعادة توجيه المستخدم إلى الصفحة الأخيرة على بلدي ترقيم الصفحات
-
06-07-2019 - |
سؤال
وأعرف أن هذا يبدو مربكا: لقد بنيت فقط بعض سابق الأساسي / ترقيم الصفحات القادم لماي وأردت أن أعرف، إذا كانت الصفحة الأخيرة من الصفوف بلدي هو فب؟ الصفحة = 5 وشخص يضع فب؟ الصفحة = 263 ثم أريد أن توجيهها إلى .php ؟ الصفحة = 5
وأي أفكار بشأن كيفية القيام بذلك .. المعلومات هو: كم عدد الصفوف عاد بعد LIMIT حتى إذا كان فب؟ الصفحة لدي حاليا = 263 ثم سيكون من 0 ولدي أيضا عدد من الصفوف في قاعدة البيانات الخاصة بي ... الحد الأقصى هو 10:)
وشكرا مقدما !!
المحلول
إذا كان لديك بالفعل عدد من الصفوف، وأنت تعرف كم عدد الصفوف التي ستعرض في كل صفحة، ثم يمكنك حساب الصفحة الأخيرة مثل ذلك:
$totalPages = ceil( $rows / $perPage );
وبعد ذلك، ببساطة تقييد الصفحة الحالية إلى حد معقول:
$page = isset( $_GET['page'] ) ? (int) $_GET['page'] : 1;
$page = min( max( $page, 1 ), $totalPages );
نصائح أخرى
وأسهل شيء فعله هو تحديد بعض شكل متغير $max_page_number
، ثم تأكد من أن الصفحة دخلت $_GET['page']
إما أقل من أكبر عدد ممكن، أو إذا لم يكن كذلك، تعويض عن ذلك وإعادة توجيه إلى الصفحة الأخيرة:
و$ max_page_number = 10؛ // أو أيا كان عدد الأقصى / الصفحة الأخيرة هو، $ page_requested = $ _GET [ 'الصفحة']؛
if ($page_requested <= $max_page_number) {
// show the page requested by the user
}
elseif ($page_requested > $max_page_number) {
// redirect to the relevant page
}
else {
// redirect to the splash page, or first page
}
وهذا أيضا يستحق يشير إلى أنه يجب التحقق من الناس لا يمكن أن يدخل index.php?page=-10
دون أن اشتعلت، لذا يجب عليك مراجعة حقا للأرقام <م> أقل من م> الصفحة الأولى و<م> أكبر من م > الصفحة الأخيرة.