如果我要使用 $_GET 方法获取用户名,如果我有多个用户登录,我会遇到问题。最新登录的用户会覆盖其他用户的信息(不在数据库中),如果前一个用户用户试图谈论他们的用户名将是最新用户的用户名。
前任。用户 Xp10d3 登录。他的用户名仍然是 Xp10d3。用户 IiBlurBeriI 登录。Xp10d3 的用户名突然变成了 IiBlurBeriI 的用户名。
我知道这样做的原因,但我想知道是否要将 $_SESSION 变量分配给 $_GET 变量,该变量会保持静态而不改变吗?如果没有,我该如何解决这个问题?
login_check_update.php:
<?php
session_start();
/* Sends an email to the user and adds the special key to another database */
$username = $_GET['username']; /* Gets the username that was submitted in the HTML form. */
$password = $_GET['password']; /* Gets the password that was submitted in the HTML form. */
$servername = "localhost"; /* MySQL database. Change if needed! Most of the time its not localhost unless you're hosting on your computer. */
$user = 'usernamelol'; /* MySQL username. Change if needed. */
$pass = 'passwordlol'; /* MySQL password. Change if needed. */
$dbname = 'vibemcform'; /* MySQL database name. Change if needed. */
$bytes = random_bytes(10); /* Randomized code */
$key = bin2hex($bytes); /* Makes the randomized code */
$link = "live.php";
$con = new mysqli($servername, $user, $pass, $dbname); /* Connects to the database */
$query = mysqli_query($con, "SELECT * FROM data WHERE (USERNAME = $username) AND password = $password");
if (!$query || mysqli_num_rows($query) == 1) {
echo "Found data in the database! Visit the chat!";
echo "<form action='live.php' method='post'><a href='".$link."'><input type='submit' name='btn1' value='$username'/></a></form>";
echo "Session ID: ". session_id() . ". ";
} else {
echo "Username not found/password incorrect. Please try again!";
}
$conn = null;
echo 'Username submitted: ' . $username . ' Password submitted: ' . $password . ' .'; exit;
?>
以下代码并不真正相关,因为我主要是复制它,因为我不知道如何进行实时聊天,但我了解其中的 98%:live.php:
<?php
session_start();
$username = $_POST['btn1'];
//Create a session of username and logging in the user to the chat room
if(isset($_POST['username'])){
$_SESSION['username']=$username;
}
holdtom