【问题标题】:php session variables getting lost in next pagephp会话变量在下一页中丢失
【发布时间】:2018-11-30 13:40:04
【问题描述】:

我现在厌倦了这个问题,我想离开网络编程。我创建了一个表单,并将文件命名为“index.php”。代码在这里:

   <form action='login.php' method='post'><br>
<center><input type='text' class='form-control' style='width:320px;' placeholder='Username' required name='username'><br></center>
<center><input type='password' class='form-control' style='width:320px;' placeholder='Password' required name='password'><br></center><br>

<center><button type='submit' class='btn btn-danger btn-lg' name='login'>Log In</button></center>
</form><br><br>

点击提交后,该过程发生在“login.php”,我正在插入代码。在这里,我构建了一个仅在此页面中正常工作的会话变量。代码在这里:

 <?php
session_start();
ob_start();


$servername = "localhost";
$username = "root";
$password = "";
$dbname = "plusyou";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

// variables
$UName = $_POST["username"];
$Password = $_POST["password"];

$sql = "SELECT FName, UName, Password, Email FROM users WHERE UName='$UName' AND Password='$Password'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        //variables
        $_session["Email"] = $row["Email"];
        echo $_session["Email"];

        echo "<a href='home.php'>Home</a>";
    }
} else {
    echo "0 results";
}




ob_end_flush();

?>

在主页中,会话变量不起作用。请在这里告诉我我的任何错误。任何形式的帮助将不胜感激。 'home.php' 文件的代码在这里:

   <?php
session_start();

echo $_session["Email"];

?>

谢谢。

【问题讨论】:

    标签: php html variables session


    【解决方案1】:

    $_SESSION 变量总是需要大写,因为它是 superglobal

    【讨论】:

    • 不,因为它是超全局的。您所做的实际上是创建一个名为 $_session 的新变量,而超全局变量将永远是 $_SESSION
    • @KowsarRahmanSadit 如果有帮助,请接受我的回答:)
    【解决方案2】:

    $_SESSION 需要大写。

    另外,请对您的密码进行哈希+加盐: http://php.net/manual/en/function.password-hash.php

    【讨论】:

    • OP 还需要使用准备好的语句,因为他们的代码容易受到 SQL 注入攻击
    【解决方案3】:

    您好像在使用 $_session 小案例。

    请尝试使用大写的 $_SESSION。将所有 $_session 替换为 $_SESSION 并重试。

    也许这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-05
      • 1970-01-01
      • 2014-04-03
      • 2016-07-02
      • 2011-04-15
      • 2019-08-11
      相关资源
      最近更新 更多