הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   include + משתנה ב PHP (https://hosts.co.il/forums/showthread.php?t=41149)

SlipY 08-03-07 16:32

include + משתנה ב PHP
 
שלום,
יש לי מקום מסויים באתר שעושה
include נגיד לעמוד cont.php

עכשיו אני רוצה שאם יכנסו נגיד לכתובת
www.xxx.xxx/page.php?go=page.php

אז במקום cont.php יהיה בinclude את העמוד page.php
אבל אם לא מכניסים ערך לgo אז הוא ישאר cont.php

Meir 08-03-07 16:36

תעשה תנאי פשוט

PHP קוד:

<?php
if(!$_GET['go'])
{
include(
'cont.php');
}
else
{
include(
$_GET['go']);
}
?>

אבל אם אתה רוצה לשמור על אבטחת המערכת תכתוב ביטוי רגולרי שלא יאפשר לשים .. וכל מיני דברים כאלה בכתובת

Level-Serv 08-03-07 16:37

PHP קוד:

if(isset($_GET['go']))
     include (
$_GET['go']);
else
      include(
'cont.php'); 

עריכה:
אמ... כנראה אני וelbaz.moar פרסמו ביחד..
בכל מקרה, נתנו את אותו פתרון עם שינוי קל של התנאי. בכל מקרה, לגבי אבטחה הוא צודק, שלא כדי לעבוד ככה אבל זאת כבר החלטה שלך.

BlueNosE 08-03-07 16:43

ציטוט:

נכתב במקור על ידי Level-Serv (פרסם 435225)
PHP קוד:

if(isset($_GET['go']))
     include (
$_GET['go']);
else
      include(
'cont.php'); 

עריכה:
אמ... כנראה אני וelbaz.moar פרסמו ביחד..
בכל מקרה, נתנו את אותו פתרון עם שינוי קל של התנאי. בכל מקרה, לגבי אבטחה הוא צודק, שלא כדי לעבוד ככה אבל זאת כבר החלטה שלך.

אבטחה?
לא יותר פשוט לקצר את הקוד ביותר מחצי?
PHP קוד:

if (!@include ($_GET['go'].".php"))
include (
"default.php"); 


SlipY 08-03-07 16:45

ציטוט:

נכתב במקור על ידי Level-Serv (פרסם 435225)
PHP קוד:

if(isset($_GET['go']))
     include (
$_GET['go']);
else
      include(
'cont.php'); 

עריכה:
אמ... כנראה אני וelbaz.moar פרסמו ביחד..
בכל מקרה, נתנו את אותו פתרון עם שינוי קל של התנאי. בכל מקרה, לגבי אבטחה הוא צודק, שלא כדי לעבוד ככה אבל זאת כבר החלטה שלך.

תודה רבה עובד לי :)

BlueNosE 08-03-07 17:06

רק שתדע שהקוד שהוא הביא לך יצור שגיאה אם הPATH לא קיים.

Level-Serv 08-03-07 18:39

ציטוט:

נכתב במקור על ידי SlipY (פרסם 435232)
תודה רבה עובד לי :)

שמחתי לעזור :D

RS324 08-03-07 20:06

דרך הרבה יותר טובה וקצרה ומאובטחת מכל מה שהוצע פה...

PHP קוד:

function include_my_file($filename)
{
    
$filename trim($filename);
    if (!empty(
$filename))
    {
        if (
file_exists($filename))
        {
            include(
$filename);
            return 
true;
        }
        return 
false;
    }
    return 
false;
}
include_my_file($_GET['op']); 


DorWD 08-03-07 20:29

ציטוט:

נכתב במקור על ידי RS324 (פרסם 435371)
דרך הרבה יותר טובה וקצרה ומאובטחת מכל מה שהוצע פה...

PHP קוד:

function include_my_file($filename)
{
    
$filename trim($filename);
    if (!empty(
$filename))
    {
        if (
file_exists($filename))
        {
            include(
$filename);
            return 
true;
        }
        return 
false;
    }
    return 
false;
}
include_my_file($_GET['op']); 


קצרה?|Lol|

RS324 08-03-07 21:20

כן קצרה...

אתה כותב את הפונקציה פעם אחת
ואז משתמש בה בכל הדפים שקיימים... בעזרת שורה אחת בלבד.


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

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