如何将字符串分配给 $_SESSION?

How do I assign a string to $_SESSION?

我已经解决了,谢谢大家的帮助!

$_SESSION["nama_pengguna"] 和 $_SESSION["kata_laluan"] 的值保持为 NULL,不会更改为 $nama_pengguna 和 $kata_laluan 在通过所有 3 个 if 语句后。

时间:

我得到的值:

期望值:

补充信息:

来自 login.php

的片段
<?php
    session_start();
    include("sambungan.php");
    $_SESSION["login"] = false;
    $_SESSION["nama_pengguna"] = NULL; #Problem
    $_SESSION["kata_laluan"] = NULL;  #Problem

    if (!empty($_POST) && !empty($_POST["nama_pengguna"]) && !empty($_POST["kata_laluan"])) {
        $nama_pengguna = $_POST["nama_pengguna"];
        $kata_laluan = $_POST["kata_laluan"];
    
        if (isset($_POST["daftar"])) {
            $sql = "INSERT INTO urusetia (nama_pengguna,kata_laluan) VALUES ('$nama_pengguna','$kata_laluan')";
            $result = mysqli_query($sambungan,$sql);
            if ($result) {
                $_SESSION["login"] = true;
                $_SESSION["nama_pengguna"] = $nama_pengguna; #Problem
                $_SESSION["kata_laluan"] = $kata_laluan; #Problem

                $_POST = array();
                header("Location:./hakim.php");
                die();
            }
        }
    ...

来自 login.php

的片段
...
        <form action="login.php" method="post">
            <table>
                <tr>
                    <td>Nama Pengguna</td>
                    <td><input type="text" name="nama_pengguna" autocomplete="off" placeholder="max 30 characters" required></td>
                </tr>
                <tr>
                    <td>Kata Laluan</td>
                    <td><input type="password" name="kata_laluan" autocomplete="off" placeholder="max 15 characters" required></td>
                </tr>
            </table>
            <input type="submit" name="daftar" value="Daftar">
            <input type="submit" name="log_masuk" value="Log Masuk">
        </form>
...

回显所有 $_SESSION 变量

您只检查了第一个条件中的 $_POST。 最好检查 $_POST["nama_pengguna"] 和 $_POST["kata_laluan"] 是否也为空。 (isset 不够):

...
if ($_POST && !empty($_POST["nama_pengguna"]) && !empty($_POST["kata_laluan"])) {
    // not you can be sure both of that data is exist and have some data.
    $nama_pengguna = $_POST["nama_pengguna"];
    $kata_laluan = $_POST["kata_laluan"];

    ....
} else {
  // return some error because of being empty needed data.
}

但是您可能需要为 return 某些错误的条件添加“其他”,因为数据没有我们需要的足够数据。