我正在嘗試設置一個需要獲取用戶在登錄表單上傳遞的憑據的php腳本。我已經在我的apache服務器上用登錄表單設置了表單身份驗證,該登錄表單將用戶重定向到php腳本,但是當我訪問「會話」cookie時,我得到一長長的加密行,而不是單獨記錄用戶名和密碼。有沒有辦法讓Apache將這些值傳遞給PHP腳本?如果有,我如何獲得這些價值?如何在登錄Apache後將憑據傳遞給PHP腳本
請詳見下文:
的.htaccess爲目錄中的PHP腳本 - webi /的.htaccess:
AuthFormProvider ldap
AuthType form
AuthFormLoginRequiredLocation "http://my.server.addr/webi/login/index.html"
AuthName "LDAP"
AuthLDAPURL "ldap://ldap.server.ip/ou=users,dc=example,dc=com"
Require valid-user
Session On
SessionEnv On
SessionCookieName session path=/
SessionCryptoPassphrase secret
SessionMaxAge 900
PHP腳本 - webi /資料/ index.php文件:
<?php
$cookie_name = "session";
if(isset($_COOKIE[$cookie_name]))
{
echo "<li class='active'><a href='#'><span>$_COOKIE[$cookie_name]</span></a></li>";
echo "<li><a href='#'><span>Update profile data</span></a></li>";
echo "<li><a href='#'><span>Company</span></a></li>";
echo "<li class='last'><a href='#'><span>Contact</span></a></li>";
}
else
{
echo "<li class='active'><a href='#'><span>NO PROFILE</span></a></li>";
}
?>
登錄表格 - webi/log在/ index.html中:
<form class="form" method="POST" action="login-handler">
<input type="text" name="httpd_username" value="" placeholder="Username">
<input type="password" name="httpd_password" value="" placeholder="Password">
<button type="submit" name="login" id="login-button">Login</button>
<input type="hidden" name="httpd_location" value="http://my.server.addr/webi/profile" />
</form>
htaccess的對於其中登錄表單是目錄 - webi /登錄/ htaccess的:
Require all granted
htaccess的進行登錄處理程序目錄 - webi /登錄/login-handler/.htaccess
SetHandler form-login-handler
AuthFormProvider ldap
AuthType form
AuthFormLoginRequiredLocation "http://my.server.addr/webi/login/index.html"
AuthName "LDAP"
AuthLDAPURL "ldap://ldap.server.ip/ou=users,dc=example,dc=com"
Require valid-user
Session On
SessionEnv On
SessionCookieName session path=/
SessionCryptoPassphrase secret
SessionMaxAge 900
感謝)
您在提交使用POST,你應該用戶'$ _POST'的用戶名和密碼。會話cookie包含一個散列值(session-id)來標識用戶與服務器的連接。所有會話變量(鏈接到會話ID)存儲在服務器而不是客戶端(瀏覽器/ cookie)上。 – shanmuga
$ _POST已設置,但爲空。是否有任何其他方式獲得憑據傳遞給form-login-handler? –
php'$ _POST'是獲取HTTP POST請求的表單屬性的推薦方式。如果你說的'$ _POST'是空的,那麼可能會有一些其他問題(可能是ajax sysntax等),這會導致錯誤的請求。你應該看看如何讓'$ _POST'工作而不是其他選擇。 – shanmuga