View Single Post
ישן 04-08-12, 21:42   # 8
zoharesh
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Dec 2007
הודעות: 600

zoharesh לא מחובר  

ציטוט:
נכתב במקור על ידי Tomer צפה בהודעה
PHP קוד:
$pagenum mysql_escape_string($_GET['pagenum']);
$pagenum = (int)$pagenum
לא רואה סיבה למניפולציות ארוכות יותר על המשתנה
mysql_escape_string לא נחוץ פה אם בכל מקרה אתה ממיר את ערך המשתנה ל-int.
אגב עדיף לעשות שימוש ב-real_escape, או בכלל לעבור לשימוש בPDO.

ציטוט:
נכתב במקור על ידי xPerfection צפה בהודעה
תומר, זה בדיוק מה שלא נחוץ לעשות (וזאת הסיבה שציינתי את 2 הקישורים בתגובה שלי).
במקרה הזה - כאשר אנחנו מצפים לקלט שהוא מספר שלם, אנחנו נקבל אותו אך ורק אם הוא מספר שלם, אין שום סיבה לבצע עליו סינון כלשהו (ובטח שלא להמיר אותו למספר).

צריך לבצע אימות די פשוט:
אם הקלט הוא מספר שלם, ממשיכים, אם לא - אין סיבה להמשיך.
(בהתאם למקרה) אם המספר גדול מ- 0, ממשיכים, אם לא - אין סיבה להמשיך.
ההמשך ידוע.
מה שמצחיק פה זה שבכל מקרה עדיף לבצע סינון.
והנה הדוגמה:
PHP קוד:
<?php
if(isset($_GET['page'])) {
is_int($_GET['page']) ? $page $_GET['page'] : $page 1;
}
PHP קוד:
<?php
if(isset($_GET['[page'])) {
$page = (int) $_GET['page'];
}
מבחינת זמן ביצוע לדעתי הintval יהיה מהיר יותר במקרה הזה, ובכל מקרה תקבל ערך שהוא מספר.
__________________


HIGHDESIGN.co.il עיצוב ובניית אתרים.
  Reply With Quote