我正在尝试设置一个需要获取用户在登录表单上传递的凭据的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