2012-04-09 5 views
1

Ich versuche, Daten auf der Anmeldeseite mit dem Benutzernamen und Passwort Hash auf der Registrierungsseite generiert zu posten. Ich hatte diese Arbeit, aber für das Leben von mir kann nicht herausfinden, warum es aufgehört hat.PHP-Weiterleitung Post-Daten auf die Anmeldeseite nach der Registrierung

Im Grunde leitet der Code den Benutzer automatisch um, wenn die Registrierung erfolgreich war. Der Code wird jedoch auch in einem Admin-Steuerfeld verwendet, sodass Benutzer hinzugefügt und an den Benutzerverwaltungsbildschirm zurückgegeben werden können.

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

    } 

Antwort

0

Ich denke, dass Sie nur Passwort, nicht seinen Hash-Code angeben müssen.

Oder (wenn zu diesem Zeitpunkt Passwort ist nicht zugänglich) können Sie Login-Skript zu erweitern. Es muss eine andere Bedingung für die Anmeldung des Benutzers in einem Zustand unterstützen, in dem kein Passwort eingegeben werden muss - es kann beispielsweise den Hash-Wert des Passworts annehmen. Oder platzieren Sie Code, der den Benutzer als an dem separat zugänglichen Ort angemeldet kennzeichnet, und führen Sie ihn nach der Registrierung durch, ohne auf die ursprüngliche Anmeldeseite zu wechseln.

+0

Danke für den Punkt auf die Verwendung des Kennworts anstelle des Hash. Das ist absolut richtig, mein Login-Skript nimmt ein Passwort, kein Hash. Allerdings wird der file_get_contents immer noch übersprungen. Ich werde versuchen zu sehen, ob ich den Benutzer auf der Registrierungsseite einloggen kann ... Hoffentlich funktioniert es. – Panda

+0

Ich habe gerade die Benutzersitzung erstellt, anstatt zu versuchen, die Daten an die Anmeldeseite zu senden. Vielen Dank. – Panda

Verwandte Themen