2010-06-09 442 views
2

我在我的網站上有一個目錄,我已經實現了PEAR的身份驗證來運行我的身份驗證。它運作良好。如何調試PEAR認證?

但是,我試圖複製我的網站(它將被翻譯成不同的語言),並且在這個新網站上,Auth過程似乎沒有正常工作。

我可以正常登錄,但每次嘗試訪問同一目錄中的其他頁面,並使用Auth進行授權時,它都會強制我再次登錄。

這裏是我的邏輯:

$auth_options = array(
     'dsn' => mysql://user:[email protected]/db', 
     'table' => 'users', 
     'usernamecol' => 'username', 
     'passwordcol' => 'password', 
     'db_fields' => '*' 
    ); 

$auth = new Auth("DB", $auth_options, "login_function"); 
$auth->setFailedLoginCallback('bad_login'); 
$auth->start(); 

if (!$auth->checkAuth()) 
{ 
    die('cannot succeed in checkAuth') 
    exit; 
} else { 
    include("nocache.php"); 
} 

這是一個隨機配備在每一個PHP頁面我,我希望需要驗證的文件的一部分。我可以正確登錄一次,但每當我嘗試訪問需要身份驗證的其他頁面時,它都會讓我再次登錄(並且我看到頁面底部的'無法成功'信息)。

同樣,這種解決方案在我的原始網站上工作正常,我複製了所有文件,並且只更改了數據庫服務器/密碼 - 它仍然不起作用。我爲兩者使用相同的虛擬主機。

我在這裏做錯了什麼?或者我怎樣才能進一步調試呢?

回答

0

好的 - 它看起來像我的虛擬主機在PHP會話上有問題(至少對於這個網站)。

這是他們嘗試過的工作。以下是在.htaccess文件中:

php_value session.gc_probability 1 
php_value session.gc_divisor 100 
php_value session.gc_maxlifetime 3600 
php_value session.save_path /path/to/sessions/folder 

希望這可以幫助別人!