2016-10-08 37 views
-1

我一直在嘗試將用戶重定向到他當前的頁面(他在登錄前),但仍然無法正常工作。我嘗試了下面的腳本。而不是將用戶帶到他所在的地方..用戶被帶到主頁。有人能以正確的方式來做到嗎?我如何成功地將用戶重定向到他在他登錄後在哪裏(他當前的頁面)?

<?php 
session_start(); 

if (!isset($_SESSION['cart'])) { 
$_SESSION['cart'] = array(); 
} 

if (isset($_SESSION['user_id']) && filter_var($_SESSION['user_id'], FILTER_VALIDATE_INT,array('min_range' => 1))) { 
header('Location:accueil.html.php'); 
} 
if (array_key_exists('login', $_POST)) { 

$email=$pass=""; 

$errors = array(); 

// Check for an email address: 
if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { 
$email = trim($_POST['email']); 
} else { 
    $errorEmail ="Entrer un email valide"; 
    } 

if (empty($_POST['pass'])) { 
$errorPass = "Entrer votre mot de passe"; 
} 
    else{ 
    $pass = trim($_POST['pass']); 
    } 

if ($email && $pass) { //All IS GUD 

include('includes/connect.inc.php'); 
try { 
$sql = "SELECT user_id FROM registered_user WHERE email = :email AND pass = :pass"; 
$stmt = $conn->prepare($sql); 
$stmt->bindValue(':email', $email); 
$stmt->bindValue(':pass', SHA1($pass)); 
$stmt->execute(); 
$row = $stmt->fetch(PDO::FETCH_ASSOC); 

    if ($row) { //email and pwd combination is rigth 
    $_SESSION['user_id'] = $row['user_id']; 
    header('Location:'. $_SERVER['HTTP_REFERER']); 
    exit(); 
    } 
    else{ 
    $errors[] = "Nom d'utilisateur et/ou mot de passe incorrect(s)"; 
    } 

} catch (PDOException $e) { 
    $systemErr = "Désolé, Erreur de system".$e->getMessage(); 
} 

} else{ 
    $errors[] = "Désolé, votre connexion a échoué"; 
} 

}//END MAIN IF 

?> 
+0

您需要在之前'頭(調試。 '地點:accueil.html.php');'線和'header('Location:'。$ _SERVER ['HTTP_REFERER']);'line。檢查這兩行是否有正確的調試OR不? –

+0

[PHP:在登錄後將用戶返回到其原始頁面]的可能重複(http://stackoverflow.com/questions/1984573/php-returning-a-user-to-their-original-page-after-login) – laltin

回答

0

試試這個,

$usr_header = "Location:".$_SERVER['HTTP_REFERER']; 
header($usr_header); 
exit(); 
1

你可以在每一個頁面一個會話變量。

見下

1)如果你的header.php共同文件,那麼你可以加入這一行存儲在header.php中最後瀏覽的網址,否則你可以在每個頁面中添加。

$_SESSION['last_url'] = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 

2)然後,你可以將用戶重定向到URL,當他登錄

if ($row) { //email and pwd combination is rigth 
    $_SESSION['user_id'] = $row['user_id']; 
    header('Location:'. $_SESSION['last_url']); 
    exit(); 
    } 
相關問題