【问题标题】:Issues while creating a session创建会话时的问题
【发布时间】:2015-12-20 13:08:36
【问题描述】:

我正在创建一个用户会话,但就像代码在某个地方出错并且没有保持会话一样,我只是将用户重定向到一个空白页面,我在其中回显会话持有者的用户 ID 以检查它是否工作。它们对表或数据库没有问题,因为注册页面工作正常并且数据存储在数据库中。我的login.php

<?php
$con = mysqli_connect("localhost","root","","findfriends") or die ("Connection not established");
?>

<?php
if(isset($_POST['login'])){ 
 $username = strip_tags(@$_POST['user_login']);
 $password = strip_tags(@$_POST['password_login']);    
 $result = $con->query("SELECT * FROM users WHERE username='$username' AND password='$password'");
 $row = $result->fetch_array(mysqli_both);
 session_start();
 $_SESSION["userid"] = $row['userid'];
 header("Location: test12.php");
 }
 ?>

    <h2>Already a member? Login Below</h2>
    <form action="" method="POST">
    <input type="text" name="user_login" size="25" placeholder="Username"/><br><br>
    <input type="password" name="password_login" size="30" placeholder="Passsword"/><br><br>
    <input type="submit" name="login" value="Login">
    </form>

test.php 用于检查会话

<?php
$con = mysqli_connect("localhost","root","","findfriends") or die ("Connection not established");
?>
<?php  
session_start();
?>
<div style="margin-left:30px;margin-right:400px;border:1px solid #000;">
<h2>User id is:</h2>
<?php echo $_SESSION["userid"]; ?>
</div>

【问题讨论】:

  • 您得到的是一个完全空白的页面还是仍然显示 HTML / H2 / 其他文本?如果它是一个完全空白的页面,您会收到服务器错误,您是否打开了错误报告?
  • h2 是否正是我输入的“用户 ID 是”但用户 ID 没有回显
  • 正如@AwaisTahir 在他的回答下的 cmets 中提到的,尝试做一个var_dump($row['userid']); 看看它是否有任何价值,
  • login.php 中的确切位置以及从login.php 中删除的代码部分
  • 放在login.php中,只要放在header('Location:...');上方即可

标签: php session mysqli


【解决方案1】:

session_start(); 设为文件中的第一行

【讨论】:

  • var_dump($row['userid']);在登录文件中检查它持有什么值
  • header("Location: test12.php") 这不是会导致错误吗?您正在重定向到 test12 而不是 test
  • 你检查过 var_dump($row['userid']);死(); ?
  • 不知道在 login.php 中的确切位置以及删除哪一行?
  • 所以错误在你的 $row['userid'];变量做检查它
【解决方案2】:

尝试使用 $_SESSION['userid'] 而不是 $_SESSION["userid"]。

【讨论】:

  • 即使这不起作用,还有哪些可能的错误可能导致此问题?
  • 您可以使用函数 session_id() 检查您的会话 ID。如果两个文件中的 id 相同,您可以尝试更改会话变量的名称(我遇到了会话变量问题,因为我使用了像 $userID 这样的本地变量以及会话变量 $_SESSION['userID' ])
猜你喜欢
  • 2021-10-07
  • 2021-04-08
  • 1970-01-01
  • 2019-09-17
  • 2011-06-23
  • 1970-01-01
相关资源
最近更新 更多