【发布时间】:2017-10-22 21:53:47
【问题描述】:
我正在尝试将$user_domain 传递给login.php。我从first_page.php 从header(); 获得值。在returning_user.php 中,我设置了一个变量$_SESSION['returning_user'],让我的程序知道在login.php 中要做什么。如果一切顺利,用户将留在login.php。如果出现问题,用户将被重定向到first_page.php,并且必须重新提交表单。我现在面临的问题是当我在login.php 中包含returning_user.php 时,用户被返回到first_page.php。当我删除它时,用户停留在login.php 但似乎if() 语句之间的代码没有被执行。我不知道我做错了什么。任何帮助将不胜感激。
first_page.php
//rest of code above
if($stmt){
header("Location: returning_user.php?domain=".$domain."&key=".$key."");
exit;
}
returning_user.php
session_start();
if(isset($_GET['key']) && isset($_GET['domain']) ){
//get domain variable
$user_domain = $_GET['domain'];
//put key variable in session
$_SESSION['user_domain'] = $user_domain;
//create a returning_user session
$_SESSION['returning_user']="TRUE";
//direct user to login page
header("location:../login.php");
exit;
}else{
header("location : first_page.php");
exit;
}
login.php
session_start();
include 'returning_user.php';
if(isset($_SESSION['returning_user']) && $_SESSION['returning_user']=="TRUE"){
//do something amazing here
}
var_dump($_GET)
array(2) { ["domain"]=> string(10) "mydomain" ["key"]=> string(7) "7024158" }
【问题讨论】:
-
那么
var_dump($_GET)告诉你什么? -
我的观点是,
$domain和$key的值是问题所在。所以,正如@MatsLindh 亲切地问的那样,您应该向我们提供$_GET数组的输出。如果您忽略我们的 cmets,那么您希望我们如何帮助您? -
对不起,但我不买公认的答案。两个 GET 数组/变量的值是多少?我看到
$domain和$user_domain对我来说,这告诉我一些没有正确定义的东西。我已经用示例值测试了你的代码,它没有失败。 -
@Fred-ii-: 测试代码后,你是对的,问题不在return.php,而是在login.php
-
include(returning_user.php);如果这是实际的语法,它会出错并且很可能会抛出未定义的常量通知。它需要用引号include('returning_user.php');括起来,如果不是,则应该在所有使用会话的页面内启动会话。使用错误报告php.net/manual/en/function.error-reporting.php 查看它是否确实返回错误。exit;也应该在header之后使用,否则你的代码可能要继续执行。
标签: php session-variables getvalue