2012-04-09 47 views
1

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

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

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>'); 

    } 

回答

0

我认为你必须提供只是密码,而不是它的哈希码。

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

+0

感谢您使用密码而不是哈希值。这是绝对正确的我的登录脚本需要密码而不是哈希。 但是,file_get_contents仍在跳过。 我要试一下,看看我是否可以让用户在注册页面内登录...希望它有效。 – Panda 2012-04-09 06:09:57

+0

我刚刚创建了用户会话,而不是尝试将数据发送到登录页面。谢谢。 – Panda 2012-04-09 06:18:44