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

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

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 24-11-07, 14:30   # 1
reXtea
חבר מתקדם
 
reXtea's Avatar
 
מיני פרופיל
תאריך הצטרפות: Dec 2006
מיקום: באר שבע
גיל: 31
הודעות: 374
שלח הודעה באמצעות MSN אל reXtea

reXtea לא מחובר  

[PHP] פרסום פונקציה חמודה ביותר... ממליץ להשתמש!

שבת שלום לכולם,
אני בונה מערכת דיי מורכבת עם המון עמודים שונים שאמורים להציג תכנים שונים לגמריי,
וכל הזמן אני יושב ומייעל אותה.
בד"כ על מנת לבדוק האם משתנה הוא רק מספרים הייתי מריץ את הפונקציה הבסיסית: is_numeric.

אבל הגעתי למסקנה שבמידה ויש לי כמה משתנים זה דיי מעצבן כל הזמן לעשות בדיקה כזאת מפגרת, אז החלטתי ליצור פונקציה שתייעל את העניין:
PHP קוד:
function ISnumber($vars)
{
   foreach(
explode(";",$vars) as $k => $val)
   {
      if(!
is_numeric($val))
      {
         die(
"ERROR");
      }
      else
      {
         return 
true;
      }
   }
}

ISnumber("id;page;number"); 
זה הפונקציה... לשימושכם החופשי.
הפונקציה לא נבדקה ככה שלא בטוח שהיא עובדת עם השיטה של הexplode אני לא ממש בטוח ב100% שזה יעבוד... אבל נראה לי שכן D:

בכ"מ הרגשתי צורך לפרסם את זה... לדע למה.
תהנו :]
__________________
Amir fridman
-----------------------
Professional website developer.
xhtml, css, javascript, xml, ajax, php, mysql
  Reply With Quote
ישן 24-11-07, 16:25   # 2
4ior
חבר וותיק
 
4ior's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 1,451

4ior לא מחובר  

ובשביל להכניס את כל המשתנים אתה עושה implode לפונקציה??
זאת פונקציה לא שימושית וגם לא יעילה, מצטער.
  Reply With Quote
ישן 24-11-07, 17:07   # 3
Daniel
אחראי פורום
 
מיני פרופיל
תאריך הצטרפות: Mar 2007
הודעות: 2,875

Daniel לא מחובר  

עדיף שיהיה INPUT של ARRAY,
explode + implode לוקחים יחסית דיי הרבה משאבים
  Reply With Quote
ישן 24-11-07, 17:17   # 4
reXtea
חבר מתקדם
 
reXtea's Avatar
 
מיני פרופיל
תאריך הצטרפות: Dec 2006
מיקום: באר שבע
גיל: 31
הודעות: 374
שלח הודעה באמצעות MSN אל reXtea

reXtea לא מחובר  

ציטוט:
נכתב במקור על ידי 4ior צפה בהודעה
ובשביל להכניס את כל המשתנים אתה עושה implode לפונקציה??
זאת פונקציה לא שימושית וגם לא יעילה, מצטער.
מ"ז להכניס את כל המשתנים? זה בסך הכל עושה בדיקה שמשתנים שאמורים להיות רק מספרים לא יהיו תווים.

והיא מאוד שימושית, ויעילה גם כן... ואממ אם זה לוקח יותר זמן מאשר explode אז באמת עדיף מערך.
__________________
Amir fridman
-----------------------
Professional website developer.
xhtml, css, javascript, xml, ajax, php, mysql
  Reply With Quote
ישן 24-11-07, 18:00   # 5
-roee-
חבר על
 
מיני פרופיל
תאריך הצטרפות: Nov 2005
מיקום: IL
הודעות: 864

-roee- לא מחובר  

ציטוט:
אבל הגעתי למסקנה שבמידה ויש לי כמה משתנים זה דיי מעצבן כל הזמן לעשות בדיקה כזאת מפגרת
מציע לך לעבור על מדריכי אבטחה שונים ואז תבין את היעילות הרבה שאין להחליף אותו בשום דבר זול של הפונקציה is_numeric או intval
__________________
בברכה,
רועי
  Reply With Quote
ישן 24-11-07, 18:03   # 6
Tomer
Whatever
 
Tomer's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 7,039
שלח הודעה באמצעות MSN אל Tomer Send a message via Skype™ to Tomer

Tomer לא מחובר  

PHP קוד:
function checkForNumbers($inputArray,$excludeArray="") {
    foreach (
$inputArray AS $key=>$val) {
        if (!
$excludeArray[$key] && !is_numeric($inputArray[$key])) $inputArray[$key] = intval($inputArray[$val]);
    }

אני מאמין שזו דרך נחמדה ואפשרית לשימוש.

קוד:
$Exclude = array('subject','body');
checkForNumbers($_POST,$Exclude);
המערך Exclude מכיל את הרשימה של משתנים שלא צריכים להבדק. כמובן שאפשר לא להעביר את המערך ובכך לבדוק את כל המערך שניתן (הדוגמא כאן - $_POST)

לפי מה שלמדתי מאנשים מסויימים תמיד עדיף לחסום הכל, ולאפשר דברים מסויימים מאשר לאפשר הכל ולחסום דברים מסויימים.
__________________
תומר
  Reply With Quote
ישן 24-11-07, 18:10   # 7
reXtea
חבר מתקדם
 
reXtea's Avatar
 
מיני פרופיל
תאריך הצטרפות: Dec 2006
מיקום: באר שבע
גיל: 31
הודעות: 374
שלח הודעה באמצעות MSN אל reXtea

reXtea לא מחובר  

ציטוט:
נכתב במקור על ידי roeenoy צפה בהודעה
מציע לך לעבור על מדריכי אבטחה שונים ואז תבין את היעילות הרבה שאין להחליף אותו בשום דבר זול של הפונקציה is_numeric או intval
חח אבל מה אני עושה בעצם? משתמש באותה פונקציה אבל עושה את זה בצורה יותר מהירה מאשר אחד אחד... והרבה מאוד אנשים עושים אחד אחד אז רציתי להביא שיטה לאלה שלא יודעים...

ציטוט:
נכתב במקור על ידי Tomer צפה בהודעה
PHP קוד:
function checkForNumbers($inputArray,$excludeArray="") {
    foreach (
$inputArray AS $key=>$val) {
        if (!
$excludeArray[$key] && !is_numeric($inputArray[$key])) $inputArray[$key] = intval($inputArray[$val]);
    }

אני מאמין שזו דרך נחמדה ואפשרית לשימוש.

קוד:
$Exclude = array('subject','body');
checkForNumbers($_POST,$Exclude);
המערך Exclude מכיל את הרשימה של משתנים שלא צריכים להבדק.

לפי מה שלמדתי מאנשים מסויימים תמיד עדיף לחסום הכל, ולאפשר דברים מסויימים מאשר לאפשר הכל ולחסום דברים מסויימים.
אהמממ... זה גם שיטה נחמדה... אבל אני אישית משתמש בצורה שונה, נגיד יש לי עמוד והוא מכיל כמה משתני GET אז אני רוצה לבדוק האם הם מספריים, בד"כ אם הם לא מספריים המשתמש מנסה לשחק שם במשהו ולכן אני רוצה שהוא יציג שגיאה, וזה כל מטרת הפונקציה שלי.
__________________
Amir fridman
-----------------------
Professional website developer.
xhtml, css, javascript, xml, ajax, php, mysql

Last edited by reXtea; 24-11-07 at 18:12..
  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. הזמן כעת הוא 22:01.

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