1

我正在尝试使用注册页面中生成的用户名和密码哈希将数据发布到登录页面。我有这个工作,但我一生无法弄清楚它为什么停止了。

基本上,如果注册成功,代码将重定向用户以自动登录。但是,该代码也用于管理面板,因此可以添加用户并返回到用户管理屏幕。

    if (isset($_GET['redirect'])){
        if (isset($_GET['login'])){
            if($_GET['login'] == "true"){
                    // So we can log users automatically after registering
                $post = http_build_query(
                    array(
                        "username" => $username,
                        "password" => $password
                    )
                );
                $context = stream_context_create(
                    array(
                        "http"=>array(
                            "method" => "POST",
                            "header" => "Content-Type: application/x-www-form-urlencoded\r\n",
                            "content" => $post
                        )
                    )
                );
                // testing shows that the code gets this far...
                // but does not send the following... instead it skips this


                $page = file_get_contents('http://example.com/login.php?redirect='.$_GET['redirect'], false, $context);
            }
        }
        header('Location: ' . $_GET['redirect']);

        echo('<p><a href="'.$_GET['redirect'] . '">Back to where you were...</a></p>');

    }
4

1 回答 1

0

我认为您必须只提供密码,而不是其哈希码。

或者(如果此时无法访问普通密码)您可以扩展登录脚本。它必须支持一些其他条件来登录用户 - 不需要明文密码的条件 - 例如,它可以采用密码的哈希值。或者将标记用户已登录的代码放在单独的可访问位置,并在注册后执行,而无需转到原始登录页面。

于 2012-04-09T06:05:15.350 回答