2016-05-19 2 views
1

Я использую новое программное обеспечение, которое включает в себя настройку php входа. Работает нормально, пока я не решил открыть страницу входа в лайтбокс. Теперь я не могу вырваться из света поле для нормальной страницы вид браузера для моей страницы успеха назначения код PHP заключается в следующем;Добавить target = '_ top "в расположение заголовка php

<?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; 
} 
?> 

как-то мне нужно установить цель = «- верх», чтобы страница успеха открывается в том же окне с обычным браузером. Я не знаю, как это сделать. Я не обладаю навыками в этом материале, только то, что я забираю, читая эти сайты и применяя к своей проблеме Спасибо Roger

+0

ли световой короб с помощью IFRAME? –

+0

В принципе, если вы говорите, что ваше перенаправление перенаправляется внутри чего-то, вместо того, чтобы перенаправлять страницу, PHP ничего не может сделать. Вам нужно что-то сделать со стороны браузера. –

ответ

0

Чтобы это было коротко и понятно, вам понадобится # в вашем URL-адресе.

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

Это перенаправит вас index.php и установить цель #top

Примечание: Помните, что header('Location: ...') должен перенаправлять на URL, как вы будете использовать в вашем браузере. Не внутренний путь к серверу.

+0

target = "_ TOP" в теге привязки (который, я думаю, является тем, что OP говорит, что он хочет произойти через PHP), это не то же самое, что только таргетинг на верх страницы. –

0

К сожалению, WYSIWYG Web Builder разрешает только выбор внутреннего адреса страницы и не позволяет редактировать, поэтому не удается выполнить это. Однако другое решение было найдено с использованием Java-скрипта в заголовке целевой страницы:

<script> 
this.top.location !== this.location && (this.top.location = this.location); 
</script> 

это сработало отлично. Я передам ваши комментарии на форум WYSIWYG Web Builder. Благодаря

0

Попробуйте с окном-мишени

header('Window-target: _top'); 
header('Location: index.php'); 
Смежные вопросы