将一个页面移动到其他页面时的空会话值

时间:2015-09-29 19:11:29

标签: php mysql session

我遇到访问会话变量值的问题。

我正在创建一个登录页面,这是我设置会话变量的值。

的index.php

<?php
session_start();
$result=mysql_query("select * from myuser where id='".$id ."' and password='".$password."'");    
if(mysql_num_rows($result) > 0){
    $user = mysql_fetch_assoc($result);
    $_SESSION['SESS_ID'] = $user['id'];
    $_SESSION['SESS_UNAME'] = $user['username'];
    $_SESSION['SESS_PASS'] = $user['password'];
    header("location:home.php");
    exit();
}
?>

home.php

<?php
session_start();
if(!isset($_SESSION['SESS_ID']) || (trim($_SESSION['SESS_ID'])) == ''){
    header("location:index.php");
    exit();
}
?>

<html>
<body>
    <p>Login Successful</p>
<?php echo $_SESSION['SESS_ID'] ; ?>

</body>
</html>

这里的问题是我在$ _SESSION ['SESS_ID']中没有价值..那么如何在home.php中获取或访问此会话变量的值?

编辑:我对SQL的查询是

  

从myuser中选择*,其中id ='“。$ id。”'和密码='“。$ password。”''

1 个答案:

答案 0 :(得分:1)

有关您遇到此问题的原因的一些观点:

  • 您填充$_SESSION数组的值直接来自数据库,但您没有数据库SQL查询 - 而是
  

“! - 这里写的查询 - ”

如果您可以使用返回idusernamepassword值的查询替换此占位符,那么您的代码应按预期执行。

我不确定你的语法是否错误,但它不是我想要的形状,我自己的形状会是:

   $result = mysqli_query($connection, $sql);
    while ($outputrow = mysqli_fetch_array($result)){
       // In here $outputrow is an array of ONE row of your database, so
       // $outputRow['id'] = the id from one row. ordered by the ORDER BY in your SQL query. 
    }
  • 在SQL查询中添加mysqli_error($connection)子句以检测错误。如:

下面:

  $result=mysqli_query($connection, "<!--query written here -->") or die("error :".mysqli_error($connection));
  • 正如我在这些示例中使用的那样,请停止使用MySQL并至少使用MySQLi甚至是PDO。 SO上有许多改进和错误修复以及关于此转换的大量信息。

  • 此外,永远不要将密码作为字符串进行比较,保存到数据库的密码应作为最低要求保存为具有PHP函数password_hash()的哈希值。永远不要行if($_POST['pwd'] == $row['pwd']){

  • 最后,正如Fred-ii-在评论中正确提到的那样,添加错误记录并检查你的脚本,以便你知道发生了什么:

如:

error_reporting(E_ALL); 
ini_set('display_errors', 1);

将这些添加到PHP页面的最顶层,它们会向您显示错误和警告,以便您可以查看哪些内容有效,哪些内容无效。

编辑:

从您的编辑中有两个biq问题,您的陈述是:

  

“select * from myuser where id ='”。$ id。“'and password ='”。$ password。“''

那么$id$password的价值来自哪里?是页面顶部的<?php,如果是这样,这些变量将始终为空,您需要将值应用于这些变量。