【问题标题】:$_SESSION doesn't work. xampp php7$_SESSION 不起作用。 xampp php7
【发布时间】:2018-08-19 03:22:49
【问题描述】:

我试图在 xammp 上注册网站,但看起来 $_SESSION 不起作用。我有 session_start();在每个文件上。这是我的文件。我希望你能帮助我:)

我还有一些 index.php,其中只有 2 个重定向按钮到 register.php 和 login.php(它不完整)

这是我的 register.php:

<?php
session_start();

$db = mysqli_connect("localhost", "root", "", "login");

if(isset($_POST['reg_btn'])) {
$username  = $_POST['username'];  //here I also tried with $_SESSION but it doesn't work
$email = $_POST['email'];         //
$password = $_POST['password'];   //
$password2 = $_POST['password2']; //

    if ($password == $password2){
        $password = md5($password);
        $sql = "INSERT INTO users(username, email, password) VALUES('$username', '$email', '$password')";
        mysqli_query($db, $sql);
        $_SESSION['message'] = "You are logged in!";
        $_SESSION['username'] = $username;
        header("location:home.php");
    }else{
        $_SESSION['message'] = "The passwords doesn't match!";
    }
}
?>

<html>
<head>
<title>Login Page</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="header"> 
    <h1>Register</h1>
</div>
<div id="frm"> 
<form action="register.php" method="POST">
<table>
    <tr>
        <td><label>Email:</label></td>
        <td><input type="email" name="email" class="textInput" /></td>
    </tr>
    <tr>
        <td><label>Username:</label></td>
        <td><input type="text" name="username" class="textInput" /></td>
    </tr>
    <tr>
        <td><label>Password:</label></td>
        <td><input type="password" name="password"     class="textInput"/></td>
    </tr>
    <tr>
        <td><label>Password Confirmation:</label></td>
        <td><input type="password" name="password2" class="textInput"/></td>
    </tr>
    <tr>
        <td><input type="submit" name="reg_btn" value="Register"/>
    </tr>
</table>
</form>

</div>
</body>
</html> 

这是我希望在其中显示会话变量的 home.php:

<?php 
session_start();

?>
<html>
<head>
<title>Home Page</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="header"> 
    <h1>Welcome <?php echo ",".$_SESSION['username'];?></h1>
</div>
</html>

【问题讨论】:

  • 您是否遇到任何错误?您可能还想考虑使用 password_hash 函数来加密您的密码
  • 在一个文档中尝试&lt;?php session_start(); $_SESSION['foo'] = 'bar';,然后在另一个文档中:&lt;?php session_start(); var_dump($_SESSION); 以查看值是否仍然存在。
  • (您也可以考虑使用准备好的查询。)
  • 我可能会使用以前使用的用户名劫持其他用户的会话/帐户。
  • @chinloyal 不,我没有收到错误。这个“密码 = md5($password);”是密码哈希不是吗?

标签: php html session xampp


【解决方案1】:

使用其他编辑器检查文件,或将代码复制到新文件中。我之前遇到过这样的问题,它发生是因为我的文件在开始的 php 标记之前包含一个字符。

【讨论】:

    【解决方案2】:

    当我使用 session_unset() 清除会话时;有用! 感谢您的帮助 =)

    【讨论】:

      猜你喜欢
      • 2018-05-20
      • 1970-01-01
      • 1970-01-01
      • 2012-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-07
      • 2014-09-25
      相关资源
      最近更新 更多