2017-03-02 106 views
0

我的網站基本上是5個「頁面」,大約30個由php調用的「幫助頁面」,每個「頁面」有時包含1或2個「幫助頁面」,有時每頁「10頁」。是否可以檢測頁面是否包含PHP?

因爲這些都包括我有某些變量和我的mysql連接代碼在「頁面」和助手頁面依賴於這些變量。例如,這裏是我的「edit.php」頁:

<form method="POST" enctype="text/plain" action="<?php echo $actual_link; ?>"> 

<div class="one-hundred"><?php include("include/pages/vehicle.php"); ?></div> 

<div class="fifty"><?php include("include/pages/vehicle_valuations.php"); ?></div> 
<div class="fifty"><?php include("include/pages/vehicle_features.php"); ?></div> 

<div class="thirty-three"> 
    <?php 
     include("include/pages/purchased_info.php"); 
     include("include/pages/vehicle_Titles.php"); 
    ?> 
</div> 

<div class="thirty-three"><?php include("include/helper_content/warranty_lookup.php"); ?></div> 
<div class="thirty-three"><?php include("include/pages/vehicle_advertising.php"); ?></div> 

<div id="buttons"> 
    <input type="submit" id="Submit" value="Submit"> 
</div> 

我想知道如果我直接指導我的瀏覽器www.____.com/include/pages/vehicle.php是該頁面失敗,因爲缺少mysql連接腳本和缺少變量。有沒有辦法來檢測是否有人直接訪問頁面,或通過iframe或ajax或包括?

+0

你應該限制訪問你的'include'目錄,沒有必要讓它可以訪問。 – AntoineB

+0

如果連接不正確,請檢查每個文件或包含所有這些include/*文件的連接。 –

回答

0

您可以在「包含」php文件內查找$ _GET參數。

例如,

include(".../file.php?included=true"); 

然後,裏面file.php ...

<?php 

if isset($_GET['included']) { 

//page was "included!" 

} 

但是,當用戶通過HTTP訪問頁面:// ...有沒有$ _GET參數添加到URL字符串,因此該頁面不包括在內。

+0

我沒有想到這一點。謝謝 –

0

是的,但它有點凌亂。首先,你撥打get_included_files。它返回迄今爲止包含的所有文件的數組,因此您只需根據__FILE__驗證其中的每個文件,即可使用__FILE__

0

將其連接定義在單獨的PHP文件中,並將其包含在需要它的頁面/子頁面中, include_once()而不是include()。這樣,您可以在所有頁面上使用您的連接,而不必將其重新包括在內。

+0

我不知道,謝謝! –

相關問題