2010-11-22 44 views
7

背景:我有一些代碼在處理我想設置爲auto_prepend_file的php頁面之前檢查用戶是否擁有有效的會話。但是,我需要排除用戶嘗試登錄時需要有效會話的頁面。我希望能夠爲每個目錄設置auto_prepend_file值。如何爲每個目錄設置Php的auto_prepend_file指令?

環境:PHP 5.2.6m的Apache 2,運行PHP作爲CGI不是mod_php,並且在Windows(如果該事項)和一臺機器,我有完全的控制權(而不是託管環境)

上使用一個htaccess文件不在b/c我沒有使用mod_php。我一直無法改變在php.ini設置auto_prepend_file,服務器拋出一個內部錯誤。並且ini_set()不起作用b/c它已經加載了會話檢查文件,然後我才能更改auto_prepend_file的值。

如果您不使用mod_php/htaccess,我不會在每個目錄基礎上設置auto_prepend_file。我錯過了什麼嗎?

+1

你使用什麼網絡服務器軟件? – Gumbo 2010-11-22 17:20:39

+0

@Gumbo好點...剛更新說Apache 2 – CLJ 2010-11-22 17:21:29

回答

5

你提到你不能使用.htaccess文件,但你可以修改httpd.conf文件,做這樣的事情:

<Directory "c:/wamp/www/dev/"> 
    Php_value auto_prepend_file c:/wamp/www/dev/prepend.php 
</Directory> 

編輯 - 作爲CGI運行時,才意識到這並不工作。我認爲,儘管這一點,將工作是,如果你創建你的php.ini文件的副本,將其放置在目錄中,並把你的前插指令在那裏,像:

auto_prepend_file = c:/wamp/www/dev/prepend.php 
+0

這對我而言並不適用於我的系統...應該工作嗎? – CLJ 2010-11-22 18:37:36

0

有一個叫偉大的教程:Automatically Include Files with PHP & Apache解釋如何做到這一點與Apache指令PHP代碼在末尾添加。首先,定義一個文件趕上頁它的輸出之前和追加任何你想要的:

<?php 
{ 
    $script = <<<GA 
<script type="text/javascript"> 
    var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-xxxxxxxxx-y']); 
    _gaq.push(['_trackPageview']); 

    (function() { 
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 
    })(); 
</script> 
GA; 
    $replace = array('</body>','</BODY>'); 
    $page = str_replace($replace, "{$script}\r</body>", $page); 
// $replace2 = array('</title>','</TITLE>'); 
// $page = str_replace($replace2, " - My Awesome Site</title>", $page); 
    return $page; 
} 
ob_start("appendToFile"); 
?> 

然後Apache的指令添加到您的虛擬主機。您需要前插 PHP文件,以使用ob_start()方法:

<Directory "/path/to/folder"> 
    AddType application/x-httpd-php .html .htm 
    php_value auto_prepend_file /absolute/path/to/apache-prepend.php 
</Directory> 
相關問題