【问题标题】:Session. Variable won't pass at the next page会议。变量不会在下一页传递
【发布时间】:2012-10-05 16:05:50
【问题描述】:

所以我要在第二页传递一个变量。我在我的索引页面顶部测试了会话,以了解会话是否包含变量。像这样:

<?php
error_reporting(E_ALL ^ E_NOTICE);
session_start();
$UserID = $_SESSION['CustNum'];
$UserN = $_SESSION['UserName'];
echo "$UserN";
?>

索引页面完全没问题。它确实打印了用户名。但是当涉及到我将传递变量的下一页时,我尝试了相同的代码来查看会话是否包含某些内容。但是,没有。请帮忙。此外,这些代码都高于我的代码,高于一切。

【问题讨论】:

  • 顺便说一句:不要:echo "$UserN"; 但echo $UserN;
  • 你能把你的代码贴在下一页吗?
  • 他写的代码是一样的……
  • 不要在错误报告中隐藏E_NOTICE。通知是一个很棒的工具,而不是一个烦恼。

标签: php session variables


【解决方案1】:

在哪里:

$_SESSION['CustNum'] = 'xxx';
$_SESSION['UserName'] = 'yyy';

?

【讨论】:

  • 在索引页- if($numrows === 1){ $row = mysql_fetch_assoc($query)or die ('Unable to run query:'.mysql_error()); // 获取关联:从数据库查询中获取函数 $dbpass = $row['PassWord']; // 从查询中读取输入用户的密码。 $dbuser = $row['用户名']; // 从查询中读取用户名 $dbactive = $row['Active']; // 如果用户处于活动状态,则读取 $dbid = $row['CustNum']; if($UserP == $dbpass){ if($dbactive == 1){ //设置会话信息 $_SESSION['CustNum'] = $dbid; $_SESSION['用户名'] = $dbuser; }
  • @user1717305 您是否使用session_start()在另一个页面上启动了会话?
  • 是的。我上面发布的代码与我下一页的代码完全相同。
【解决方案2】:

您是否在其他页面上声明了session_start()?

你需要在某个地方初始化$_SESSION['UserName']。

就这样$_SESSION['UserName'] = "my_username"

【讨论】:

  • 是的。我确定会话开始,并且我还在 $_SESSION['UserName'] 中初始化了一个变量
【解决方案3】:

请试试这个方法

在第一页

error_reporting(E_ALL ^ E_NOTICE);

session_start();

$_SESSION['CustNum']='12345';

$_SESSION['UserName']='sivanthi';

在另一个页面中

error_reporting(E_ALL ^ E_NOTICE);

session_start();

echo $_SESSION['CustNum'];

echo $_SESSION['UserName'];

【讨论】:

    【解决方案4】:

    根据你的评论和代码:

    if($numrows === 1){ $row = mysql_fetch_assoc($query)or die ('Unable to run query:'.mysql_error());
    // fetch associated: get function from a query for a database
    $dbpass = $row['PassWord']; // read password of inputted user from the query.
    $dbuser = $row['UserName']; // read username  from the query
    $dbactive = $row['Active']; // read if user is active $dbid = $row['CustNum'];
    
    if($UserP == $dbpass){ if($dbactive == 1){ //set session information
        $_SESSION['CustNum'] = $dbid;
        $_SESSION['UserName'] = $dbuser;
    }
    

    ..我想:if($UserP == $dbpass){ if($dbactive == 1) 是false。检查一下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-17
      • 2015-10-22
      相关资源
      最近更新 更多