如何将字符串分配给 $_SESSION?
How do I assign a string to $_SESSION?
我已经解决了,谢谢大家的帮助!
$_SESSION["nama_pengguna"] 和 $_SESSION["kata_laluan"] 的值保持为 NULL,不会更改为 $nama_pengguna 和 $kata_laluan 在通过所有 3 个 if 语句后。
时间:
- $_POST 不为空
- $_POST["daftar"] 不为 NULL
- $结果不为空
我得到的值:
- $_SESSION["nama_pengguna"] => NULL
- $_SESSION["kata_laluan"] => NULL
期望值:
- $_SESSION["nama_pengguna"] => $nama_pengguna
- $_SESSION["kata_laluan"] => $kata_laluan
补充信息:
$_SESSION["login"] 工作正常
- 当传递所有 if 语句时,$_SESSION["login"] => true
- 当没有通过所有 if 语句时,$_SESSION["login"] => false
- 我希望 $_SESSION["nama_pengguna"] 和 $_SESSION["kata_laluan"] 复制此行为,但它没有。
我试过删除第一次出现的
$_SESSION["nama_pengguna"] 和 $_SESSION["kata_laluan"],但是那些
一旦我这样做了,两个变量就停止存在了。
来自 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 某些错误的条件添加“其他”,因为数据没有我们需要的足够数据。
我已经解决了,谢谢大家的帮助!
$_SESSION["nama_pengguna"] 和 $_SESSION["kata_laluan"] 的值保持为 NULL,不会更改为 $nama_pengguna 和 $kata_laluan 在通过所有 3 个 if 语句后。
时间:
- $_POST 不为空
- $_POST["daftar"] 不为 NULL
- $结果不为空
我得到的值:
- $_SESSION["nama_pengguna"] => NULL
- $_SESSION["kata_laluan"] => NULL
期望值:
- $_SESSION["nama_pengguna"] => $nama_pengguna
- $_SESSION["kata_laluan"] => $kata_laluan
补充信息:
$_SESSION["login"] 工作正常
- 当传递所有 if 语句时,$_SESSION["login"] => true
- 当没有通过所有 if 语句时,$_SESSION["login"] => false
- 我希望 $_SESSION["nama_pengguna"] 和 $_SESSION["kata_laluan"] 复制此行为,但它没有。
我试过删除第一次出现的 $_SESSION["nama_pengguna"] 和 $_SESSION["kata_laluan"],但是那些 一旦我这样做了,两个变量就停止存在了。
来自 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 某些错误的条件添加“其他”,因为数据没有我们需要的足够数据。