כיצד בודקים האם יש פרמטר ב-url שמכיל ערך ספציפי
-
יש לי קובץ PHP עם הרבה 'read' , אני רוצה להגדיר שבהקשה על * המחייג יחזור לתפריט הראשי,
לצורך כך אני צריך לבדוק את התשובה של כל read אם הוא '*' להעביר אותו לשלוחה ראשית.כמובן שאין טעם לכתוב שורה זו לכל read,
לכן אני רוצה שבתחילת הקובץ לעשות בדיקה אחת האם אחד הפרמטרים שנשלחו בurl מכיל *
וא"כ להעביר אותו לתפריט ראשי.- האם יש פונק' מוכנה שבודקת את כל הפרמטרים בURL ?
- האם יש דרך יעילה יותר לחזרה לתפריט ראשי כשהמחייג יקיש על *?
תודה
-
@מתכנת-בעתיד אמר בכיצד בודקים האם יש פרמטר ב-url שמכיל ערך ספציפי:
האם יש פונק' מוכנה שבודקת את כל הפרמטרים בURL ?
echo in_array('*' , $_GET) ? "go_to_folder=/' : '';
-
@לעזור-לכולם אמר בכיצד בודקים האם יש פרמטר ב-url שמכיל ערך ספציפי:
in_array('*',$_GET) ? echo "go_to_folder=/" : '';
יפה מאוד, רק תשנה את הסינטקס את המילה echo שים לפני הפונק'.
אין עליך -
@מתכנת-בעתיד
שים לב שזה לא יעזור לך במקרה ובו יש פרמטר שמקבל 2 הקשות, ואז אם המשתמש יקיש פעמיים כוכבית זה לא יחזור לתפריט הראשי
יש דרך אחרת שפותרת גם את זה, לחפש את התו '*' בכל המחרוזת של השאילתה
ככה:echo strpos($_SERVER['QUERY_STRING'], '*') ? "go_to_folder=/" : '';
-
@amp-Software-0 אמר בכיצד בודקים האם יש פרמטר ב-url שמכיל ערך ספציפי:
שים לב שזה לא יעזור לך במקרה ובו יש פרמטר שמקבל 2 הקשות, ואז אם המשתמש יקיש פעמיים כוכבית זה לא יחזור לתפריט הראשי
יש דרך אחרת שפותרת גם את זה, לחפש את התו '*' בכל המחרוזת של השאילתהנכון
וזה מה שהוא צריך כנראה
שרק אם הקישו פעם אחת * יופנה לתפריט ראשי
ולא למשל אם מישהו רצה להקיש 25 וחצי והמשתמש יקיש '25*5' הוא יוחזר לתפריט הראשי -
@לעזור-לכולם אמר בכיצד בודקים האם יש פרמטר ב-url שמכיל ערך ספציפי:
ולא למשל אם מישהו רצה להקיש 25 וחצי והמשתמש יקיש '25*5'
בהנחה שכך מוגדר אצלו להמיר * לנקודה אתה צודק
בכל מקרה ברגע שמוגדר הקשה של יותר ממקש אחד חייבים פתרון להקשה כפולה של כוכבית, כי מכיון שהמערכת ממתינה להקשה נוספת, לפעמים אדם חושב שלא נלחץ ומקיש עוד פעם. במקרה כזה אם לא חסמת את מקש כוכבית זה יכול ליצור באגים [ברגע שאתה מבקש מהמשתמש להקיש ספרה כל שהיא, ברגע שהשרת יקבל תו שהוא לא ספרה זה אמור להסתבך איפשהוא], ולכן הפתרון הנ"ל הוא היעיל ביותר (מנסיון) -
@amp-Software-0 @לעזור-לכולם
אכן במקרה שלי אני משתמש עם * כהמרה לנקודה.
מה שאעשה זה בדיקה האם * נמצא בתחילה המערכת תעביר אותו לתפריט ראשי, אחרת המערכת תמיר אותו לנקודה.
תודה רבה.