2014-09-02 124 views
0

好吧,我在這裏是一個簡單的PHP登錄會話。即使我不破壞會話,有時會破壞會話。在我的Index.php中,有一個用於編輯記錄的鏈接。我的問題是,如果會話銷燬,我點擊編輯,頁面打開在模式或fancybox,並顯示login.php,並在我登錄後它去index.html。我需要做的不是進入index.html,而是需要使用GET值重定向到edit.php以繼續編輯過程。任何幫助?Php會話重定向頁面

的index.php

<a class="fancybox" href="edit.php?pn='.$row["id"].'"><img src="images/edit.png"></a> 

Edit.php

<?php 
session_start(); 
include('connect.php'); 
$tbl_name="login_admin"; 
if(! isset($_SESSION['id'])){ 
header('location:login.php'); 
exit; 
} 
$id = $_SESSION['id']; 
$sql = $mysqli->query("SELECT * FROM $tbl_name WHERE username='$id'"); 
$accounts = $sql->fetch_assoc(); 

$term= $mysqli->real_escape_string($_GET["pn"]); 
?> 

的login.php

<?php 
require_once('connect2.php'); 

session_start(); 
$username = $_POST['username']; 
$password = $_POST['password']; 
$submit = $_POST['submit']; 

if($username && $password){ 
$sql = sprintf("SELECT * FROM $tbl_name WHERE username='$username' AND password='$password'"); 
$result = @mysql_query($sql); 
$accounts = @mysql_fetch_array($result); 
} 
if($accounts){ 
$_SESSION['id'] = $accounts['username']; 
header("location:index.html"); 
exit; 
}elseif($submit){ 
$msg = 'Invalid Username or Password'; 
} 
?> 
+0

這是不可能的,因爲當你登錄它總是重定向到主頁。而不是編輯頁面或上次會話的頁面被銷燬。 – LOKESH 2014-09-02 05:26:10

回答

0

可惜你不能繼續編輯過程,但您可以重定向用戶登錄後編輯頁面。

還有更多的方法來展示它,我會展示其中的一個。

  1. 重定向用戶登錄腳本,他原來的URL保存到會議之前(另一種方法是將它傳遞給login.php中的GET參數 - 不要忘記以這種方式驗證):

Edit.php:

<?php 
session_start(); 
include('connect.php'); 
$tbl_name="login_admin"; 
if(! isset($_SESSION['id'])){ 
    $_SESSION['original_url']=$_SERVER['REQUEST_URI'] 
    header('location:login.php'); 
    exit; 
} 
// rest of the code..... 
  1. 然後用戶重定向到該頁面,而不是默認的index.html頁

的login.php:

<?php 
require_once('connect2.php'); 

session_start(); 
$username = mysql_real_escape_string($_POST['username']); 
$password = mysql_real_escape_string($_POST['password']); 
$submit = $_POST['submit']; 

// Security note: see I've sanitized $username and $password with mysql_real_escape_string() to avoid SQL injection 
if($username && $password){ 
    $sql = sprintf("SELECT * FROM $tbl_name WHERE username='$username' AND password='$password'"); 
    $result = mysql_query($sql); 
    $accounts = mysql_fetch_array($result); 
} 

// when account was found store identity to session 
if($accounts){ 
    $_SESSION['id'] = $accounts['username']; 

    if (isset($_SESSION['original_url']) { 
     // if user came from internal url, redirect to it and remove it from session 
     $originalUrl = $_SESSION['original_url']; 
     unset($_SESSION['original_url']); 
     header("location:".$originalUrl); 
     exit; 
    } else { 
     // redirect user to default page after login 
     header("location:index.html"); 
     exit; 
    } 

} elseif($submit){ 
    // login form was sent, but user with given password not found 
    $msg = 'Invalid Username or Password'; 
} 
?>