php - 登录 Apache 后如何将凭据传递给 PHP 脚本

标签 php forms apache .htaccess session

我正在尝试设置一个 php 脚本,该脚本需要获取用户在登录表单上传递的凭据。我已经在我的 apache 服务器上设置了表单例份验证,登录表单将用户重定向到 php 脚本,但是当我访问“ session ”cookie 时,我得到一个长的加密行,而不是用户名和密码的单独记录。有没有办法让 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/profile/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/login/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/login/htaccess:

Require all granted

.htaccess 用于登录处理程序目录 - webi/login/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

谢谢)

最佳答案

我找到了这个问题的部分解决方案。可以使用 _SERVER['PHP_AUTH_USER'] 访问通过登录表单例份验证传递的用户名。

我仍然无法访问密码。

感谢这篇文章 - http://software.danielwatrous.com/access-apache-ldap-authentication-details-in-php/

关于php - 登录 Apache 后如何将凭据传递给 PHP 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33597753/

相关文章:

java - Eclipse 在 Web 部署程序集中包含来自 apache ivy IDE 插件的多个 jar

php - 无法使用 laravel 尝试每次都返回 false 登录

php - Markdown 正则表达式中的原子组

forms - vCard 还是 MeCard?特定于创建详细的库存表格

javascript - EJS语法: generate a HTML file with a function whose argument is a string

Apache有条件地将子域重定向到主域

php - 使用 PHP preg_replace 匿名化 IPv4 和 IPv6 地址?

php - 根据另一列值获取一列的值

php - Laravel Form::select multiple,保存所有选定字段的数组或列表,而不仅仅是最后选择的字段

apache - 如何从 Solr 的关键字字段中搜索关键字集?