2016-05-19 14 views
1

Ich benutze einige neue Software, die ein Login-PHP-Setup enthält. Funktioniert gut, bis ich beschloss, die Anmeldeseite in einem Leuchtkasten zu öffnen. Jetzt kann ich nicht aus dem Licht brechen Box an einen normalen Ansicht Browser-Seite für meinen Erfolg Zielseite der pHP-Code wie folgt ist;add target = '_ top "zu php header location

<?php 
    if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['form_name'])  && $_POST['form_name'] == 'loginform') 
{ 
    $success_page = './club_registered_breeders_only.php'; 
    $error_page = './Error_form_failure.html'; 
    $database = './usersdb.php'; 
    $crypt_pass = md5($_POST['password']); 
    $found = false; 
    $fullname = ''; 
    $session_timeout = 600; 
    if(filesize($database) > 0) 
    { 
     $items = file($database, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 
     foreach($items as $line) 
     { 
     list($username, $password, $email, $name, $active) = explode('|', trim($line)); 
     if ($username == $_POST['username'] && $active != "0" && $password == $crypt_pass) 
     { 
      $found = true; 
      $fullname = $name; 
     } 
     } 
    } 
    if($found == false) 
    { 
     header('Location: '.$error_page); 
     exit; 
    } 
    else 
    { 
     if (session_id() == "") 
     { 
     session_start(); 
     } 
     $_SESSION['username'] = $_POST['username']; 
     $_SESSION['fullname'] = $fullname; 
     $_SESSION['expires_by'] = time() + $session_timeout; 
     $_SESSION['expires_timeout'] = $session_timeout; 
     $rememberme = isset($_POST['rememberme']) ? true : false; 
     if ($rememberme) 
     { 
     setcookie('username', $_POST['username'], time() + 3600*24*30); 
     setcookie('password', $_POST['password'], time() + 3600*24*30); 
     } 
     header('Location: '.$success_page); 
     exit; 
    } 
} 
$username = isset($_COOKIE['username']) ? $_COOKIE['username'] : ''; 
$password = isset($_COOKIE['password']) ? $_COOKIE['password'] : ''; 
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['form_name']) && $_POST['form_name'] == 'forgotpasswordform') 
{ 
    $email = isset($_POST['email']) ? addslashes($_POST['email']) : ''; 
    $found = false; 
    $items = array(); 
    $success_page = ''; 
    $error_page = './Error_form_failure.html'; 
    $database = './usersdb.php'; 
    if (filesize($database) == 0 || empty($email)) 
    { 
     header('Location: '.$error_page); 
     exit; 
    } 
    else 
    { 
     $items = file($database, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 
     foreach($items as $line) 
     { 
     list($username, $password, $emailaddress, $fullname, $active) = explode('|', trim($line)); 
     if ($email == $emailaddress && $active != "0") 
     { 
      $found = true; 
     } 
     } 
    } 
    if ($found == true) 
    { 
     $alphanum = array('a','b','c','d','e','f','g','h','i','j','k','m','n','o','p','q','r','s','t','u','v','x','y','z','A','B','C','D','E','F','G','H','I','J','K','M','N','P','Q','R','S','T','U','V','W','X','Y','Z','2','3','4','5','6','7','8','9'); 
     $chars = sizeof($alphanum); 
     $a = time(); 
     mt_srand($a); 
     for ($i=0; $i < 6; $i++) 
     { 
     $randnum = intval(mt_rand(0,55)); 
     $newpassword .= $alphanum[$randnum]; 
     } 
     $crypt_pass = md5($newpassword); 
     $file = fopen($database, 'w'); 
     foreach($items as $line) 
     { 
     $values = explode('|', trim($line)); 
     if ($email == $values[2]) 
     { 
      $values[1] = $crypt_pass; 
      $line = ''; 
      for ($i=0; $i < count($values); $i++) 
      { 
       if ($i != 0) 
        $line .= '|'; 
       $line .= $values[$i]; 
      } 
     } 
     fwrite($file, $line); 
     fwrite($file, "\r\n"); 
     } 
     fclose($file); 
     $mailto = $_POST['email']; 
     $subject = 'New password'; 
     $message = 'Your new password for Club Login is:'; 
     $message .= $newpassword; 
     $header = "From: [email protected]"."\r\n"; 
     $header .= "Reply-To: [email protected]"."\r\n"; 
     $header .= "MIME-Version: 1.0"."\r\n"; 
     $header .= "Content-Type: text/plain; charset=utf-8"."\r\n"; 
     $header .= "Content-Transfer-Encoding: 8bit"."\r\n"; 
     $header .= "X-Mailer: PHP v".phpversion(); 
     mail($mailto, $subject, $message, $header); 
     header('Location: '.$success_page); 
    } 
    else 
    { 
     header('Location: '.$error_page); 
    } 
    exit; 
} 
?> 

Irgendwie ich brauche Ziel gesetzt = „- top“, so der Erfolg Seite im selben Fenster mit normalen Browser öffnet. Kann jemand mir zeigen, wie man das bitte erreicht, ich habe keine Fähigkeiten in diesem Zeug gerade, was ich vom Lesen dieser Seiten und dem Anwenden auf mein Problem abnehme Danke Roger

+0

Ist die Lichtbox ein iframe? –

+0

Im Grunde, wenn Sie sagen, dass Ihre Weiterleitung in etwas umleitet, anstatt die Seite umzuleiten, gibt es nichts, was PHP tun kann. Sie müssen auf der Browserseite etwas dagegen tun. –

Antwort

0

Um es kurz und klar zu halten, benötigen Sie die in Ihrer URL.

header("Location: index.php#top"); 

, die Sie index.php umleitet und das Ziel zu #top

Hinweis eingestellt: Denken Sie daran, dass header('Location: ...') auf eine URL umleiten sollte, wie Sie in Ihrem Browser verwenden würden. Nicht der interne Serverpfad.

+0

Ziel = "_ TOP" in einem Anchor-Tag (was ich denke, was OP sagt, dass er über PHP passieren will), ist nicht das gleiche wie nur auf den Anfang einer Seite. –

0

Leider WYSIWYG Web Builder ermöglicht nur die Auswahl einer internen Seitenadresse und wird nicht Bearbeitung ermöglichen, so dass dies nicht ausprobieren. Es wurde jedoch eine andere Lösung mit Java-Skript im Kopf der Zielseite gefunden:

Dies funktionierte perfekt. Ich werde Ihre Kommentare an das WYSIWYG Web Builder Forum weiterleiten. Dank

0

Versuchen mit Window-Ziel

header('Window-target: _top'); 
header('Location: index.php');