הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 04-08-12, 19:42   # 1
איציק ברבי
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Feb 2011
הודעות: 970

איציק ברבי לא מחובר  

if(is_numeric($_GET['id'])){
//other checks
}
__________________

איציק ברבי - שירות לקוחות
כתובת אתר: http://build-net.co.il/
איימל: Support@build-net.co.il
טלפון: 052-3937296.
  Reply With Quote
ישן 04-08-12, 20:26   # 2
Itay
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 35
הודעות: 564

Itay לא מחובר  

ציטוט:
נכתב במקור על ידי איציק ברבי צפה בהודעה
if(is_numeric($_GET['id'])){
//other checks
}
http://php.net/manual/en/function.is-numeric.php
ואני אצטט את הדוגמא..
ציטוט:
'42' is numeric
'1337' is numeric
'1e4' is numeric
'not numeric' is NOT numeric
'Array' is NOT numeric
'9.1' is numeric
  Reply With Quote
ישן 04-08-12, 21:42   # 3
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
ישן 04-08-12, 22:53   # 4
אדיר
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Mar 2008
מיקום: אשקלון
הודעות: 1,714

אדיר לא מחובר  

ציטוט:
נכתב במקור על ידי zoharesh צפה בהודעה
מה שמצחיק פה זה שבכל מקרה עדיף לבצע סינון.
והנה הדוגמה:
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 יהיה מהיר יותר במקרה הזה, ובכל מקרה תקבל ערך שהוא מספר.
הדוגמה הראשונה לא תעבוד, המשתנה הוא string ולא int (אף על פי שהערך שלו הינו מספר שלם).
הדוגמה השנייה היא bad practice, רצוי להימנע מביצוע casting למשתנה (אם הוא לא מה שהוא אומר להיות, שלא יהיה בכלל או שנקבע אותו לערך ברירת מחדל כלשהוא).
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 05:02.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ