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 に答える