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

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

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 22-12-06, 16:39   # 1
LosNir
מתאורר / יצא בחוץ
 
LosNir's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: ראשון לציון
גיל: 33
הודעות: 2,686
שלח הודעה באמצעות ICO אל LosNir שלח הודעה באמצעות MSN אל LosNir

LosNir לא מחובר  

[טיפ] איך לדעת שה ACT שהכניסו הוא תקין

שלום,
שמתי לב צל הרבה מתכנתים פה, שהם משתמשים בשיטה לא הכי יעילה בשביל לבדוק אם ה ACT תקין.

מה שהם עושים זה לעשות תנאי IF ולבדוק כל פעם ב OR אם ה ACT תקין.

למשל:

PHP קוד:
$act $_GET['act'];
if(
$act == "1" OR $act == "2" OR $act == "3" OR $act == "4" OR $act == "5")
include(
"$act.php");
else
echo 
"error"
שיטה זה לא ממש יעילה, מכיוון שאולי יש לכם הרבה ACTים?
וכל פעם שרוצים להוסיף ACT חדש צריך לעדכן את הדף.

אז אני מראה לכם טיפ קטן שמצאתי, שיכול לעזור לכם:

PHP קוד:
$act $_GET['act'];
if(!@include(
"pages/$act.php"))
echo 
"שגיאה!"
הסבר של הקוד:

בשורה ראשונה אנחנו שולפים את ה ACT שלנו דרך ה GET, כרגיל.
שורה שניה (תנאי ה IF), זה פשוט למדי,
אנחנו בודקים אם לא ניתן לעשות include ל ACT,
אם לא ניתן מציגים שגיאה.. אם כן ניתן, זה פשוט עושה Include אוטומטית.

הערה: שמתי לפני ה include את התו "@" על מנת "להשתיק" את ה include במידה ולא ניתן לעשות include ל ACT.

אופן שימוש:

עכשיו כל דף שאתם מעוניינים שיהיה בתוך ה ACT, מכניסים אותה לתיקיה pages.

ניתן לשפץ קצת את הקוד, ולעשות שרק דפים שמתחילים ב page_ יהיו בתוך ה ACT, ככה למשל:

PHP קוד:
$act $_GET['act'];
if(!@include(
"pages/page_$act.php"))
echo 
"שגיאה!"
פשוט לכו לפי הדמיון שלכם

תהנו

Last edited by LosNir; 22-12-06 at 16:43..
  Reply With Quote
ישן 22-12-06, 16:48   # 2
DorWD
תודה על תרומתך.
 
DorWD's Avatar
 
מיני פרופיל
תאריך הצטרפות: Jan 2006
מיקום: עפולה
גיל: 31
הודעות: 2,259

DorWD לא מחובר  

וואלה תודה רעיון נחמד
__________________
מתכנת WEB
  Reply With Quote
ישן 22-12-06, 16:53   # 3
SDF
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Sep 2006
מיקום: Negev
הודעות: 270

SDF לא מחובר  

PHP קוד:
$act $_GET['act'];
if(!@include(
"pages/$act.php"))
echo 
"שגיאה!"
במידה ואנחנו עושים משהו כמו

קוד:
bla.php?act=../../../../usr/home/someuser/somedomain.com/public_html/index
מה יקרה?
לפי דעתי זו לא דרך חכמה לבנות סקריפט שמשתמש הקצה הוא הקובע איזה קובץ הוא יקבל,
צריך להכין רשימה קבוע מראש של קבצים.

Last edited by SDF; 22-12-06 at 16:56.. סיבה: הסבר יותר מפורט לקוד
  Reply With Quote
ישן 22-12-06, 17:10   # 4
Tomer
Whatever
 
Tomer's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 7,039
שלח הודעה באמצעות MSN אל Tomer Send a message via Skype™ to Tomer

Tomer לא מחובר  

ציטוט:
נכתב במקור על ידי SDF צפה בהודעה
PHP קוד:
$act $_GET['act'];
if(!@include(
"pages/$act.php"))
echo 
"שגיאה!"
במידה ואנחנו עושים משהו כמו

קוד:
bla.php?act=../../../../usr/home/someuser/somedomain.com/public_html/index
מה יקרה?
לפי דעתי זו לא דרך חכמה לבנות סקריפט שמשתמש הקצה הוא הקובע איזה קובץ הוא יקבל,
צריך להכין רשימה קבוע מראש של קבצים.
נתחיל בזה ש include סה"כ יצרף את הקוד לדף, ולא יציג לך אותו.
דבר שני, incldue לא יכול לגשת לתיקיות שאתה לא יכול, וגם לא יכול להוסיף דפים מחוץ לתיקיית ה public_html.
__________________
תומר
  Reply With Quote
ישן 22-12-06, 17:13   # 5
Eli-Hai
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 2,758

Eli-Hai לא מחובר  

אני מעדיף יותר להשתמש ב-readdir כדי למפות את כל הקבצים שנמצאים אצלי ואיתם אני משתמש ב-$_GET, ואז ליצור איתם switch, שמתעדכן לפי הקובץ, פשוט וקל. יש כאלה שלא בונים עמודים, אלא קוראים לפונקציות מתוך switch או if, elseif, else או כל שיטה אחרת שעולה בדעתכם.
אם תרצו, אני יעבוד על זה עוד מעט, נעשה לכם משהו פשוט עם readdir ו-switch.
  Reply With Quote
ישן 22-12-06, 18:44   # 6
tnadav
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2006
הודעות: 216

tnadav לא מחובר  

ציטוט:
נכתב במקור על ידי LosNir צפה בהודעה
שלום,
שמתי לב צל הרבה מתכנתים פה, שהם משתמשים בשיטה לא הכי יעילה בשביל לבדוק אם ה ACT תקין.

מה שהם עושים זה לעשות תנאי IF ולבדוק כל פעם ב OR אם ה ACT תקין.

למשל:

PHP קוד:
$act $_GET['act'];
if(
$act == "1" OR $act == "2" OR $act == "3" OR $act == "4" OR $act == "5")
include(
"$act.php");
else
echo 
"error"
שיטה זה לא ממש יעילה, מכיוון שאולי יש לכם הרבה ACTים?
וכל פעם שרוצים להוסיף ACT חדש צריך לעדכן את הדף.

אז אני מראה לכם טיפ קטן שמצאתי, שיכול לעזור לכם:

PHP קוד:
$act $_GET['act'];
if(!@include(
"pages/$act.php"))
echo 
"שגיאה!"
הסבר של הקוד:

בשורה ראשונה אנחנו שולפים את ה ACT שלנו דרך ה GET, כרגיל.
שורה שניה (תנאי ה IF), זה פשוט למדי,
אנחנו בודקים אם לא ניתן לעשות include ל ACT,
אם לא ניתן מציגים שגיאה.. אם כן ניתן, זה פשוט עושה Include אוטומטית.

הערה: שמתי לפני ה include את התו "@" על מנת "להשתיק" את ה include במידה ולא ניתן לעשות include ל ACT.

אופן שימוש:

עכשיו כל דף שאתם מעוניינים שיהיה בתוך ה ACT, מכניסים אותה לתיקיה pages.

ניתן לשפץ קצת את הקוד, ולעשות שרק דפים שמתחילים ב page_ יהיו בתוך ה ACT, ככה למשל:

PHP קוד:
$act $_GET['act'];
if(!@include(
"pages/page_$act.php"))
echo 
"שגיאה!"
פשוט לכו לפי הדמיון שלכם

תהנו
זה לא כזה חדש..
בכל מקרה, אני אישית בניתי איזה מערכת עם אבטחה חשובה ותחזוקה מהירה, והייתי צריך לעשות משהו דומה לחלקים גדולים, אז עשיתי משהו כזה:
PHP קוד:
include("places/".$_GET['act']."/main.php"); 
__________________
"אני לא מעצב גרפי... אני לא פלאשר תותח... בטח שלא מנכ"ל של חברת בניית אתרים, כעיקרון אסור לי להיות מועסק.. אבל אני... מתכנת ב-PHP , וגם, לא ממש מציעה.." (יצא לי מוזר משהו...חח)
  Reply With Quote
ישן 22-12-06, 18:49   # 7
RS324
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 3,173

RS324 לא מחובר  

למה לא להשתמש ב SWITCH ? הכי פשוט..
לתת לו מספר קייסים אפשריים...אם לא נתפס באחד מהם אז זה הולך ל DEAFULT
ככה שאין שום דבר ושום בעיה של אבטחה...
  Reply With Quote
ישן 22-12-06, 19:38   # 8
LosNir
מתאורר / יצא בחוץ
 
LosNir's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: ראשון לציון
גיל: 33
הודעות: 2,686
שלח הודעה באמצעות ICO אל LosNir שלח הודעה באמצעות MSN אל LosNir

LosNir לא מחובר  

נו זה הקטע,
אבל אם יש לך מלא עמודים?
כל פעם תוסיף קייס? לא הכי יעיל...
  Reply With Quote
ישן 22-12-06, 19:41   # 9
RS324
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 3,173

RS324 לא מחובר  

ציטוט:
נכתב במקור על ידי LosNir צפה בהודעה
נו זה הקטע,
אבל אם יש לך מלא עמודים?
כל פעם תוסיף קייס? לא הכי יעיל...
הרבה יותר יעיל..ובטוח....

אבל נעזוב את זה... אם כבר אתה משתמש בדרך שלך המינימום שלפחות אתה יכול לעשות זה לבדוק אם הקובץ קיים....
  Reply With Quote
ישן 22-12-06, 20:24   # 10
psycho
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 35
הודעות: 1,926

psycho לא מחובר  

ציטוט:
נכתב במקור על ידי RS324 צפה בהודעה
למה לא להשתמש ב SWITCH ? הכי פשוט..
לתת לו מספר קייסים אפשריים...אם לא נתפס באחד מהם אז זה הולך ל DEAFULT
ככה שאין שום דבר ושום בעיה של אבטחה...
בדיוק.

כל שאר האלטרנטיבות פשוט לא יעילות.

ולמה להשתמש בשיטה הזו אי-פעם בכלל? של ה INCLUDEים. מיותר.

יש יותר מדי אופציות אחרות יעילות ואפילו עדיפות מבחינת אופטימיזציה
  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. הזמן כעת הוא 10:24.

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