2015-11-08 81 views
3

我正在嘗試設置一個需要獲取用戶在登錄表單上傳遞的憑據的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 

感謝)

+1

您在提交使用POST,你應該用戶'$ _POST'的用戶名和密碼。會話cookie包含一個散列值(session-id)來標識用戶與服務器的連接。所有會話變量(鏈接到會話ID)存儲在服務器而不是客戶端(瀏覽器/ cookie)上。 – shanmuga

+0

$ _POST已設置,但爲空。是否有任何其他方式獲得憑據傳遞給form-login-handler? –

+0

php'$ _POST'是獲取HTTP POST請求的表單屬性的推薦方式。如果你說的'$ _POST'是空的,那麼可能會有一些其他問題(可能是ajax sysntax等),這會導致錯誤的請求。你應該看看如何讓'$ _POST'工作而不是其他選擇。 – shanmuga

回答