Если бы я использовал метод $ _GET для получения имени пользователя, я столкнулся бы с проблемой, если у меня было зарегистрировано более одного пользователя. Последний пользователь, который входит в систему, переопределяет информацию другого пользователя (не в базе данных) и если предыдущий пользователь пытается говорить, его имя будет новым именем пользователя.
Пример. Пользователь Xp10d3 входит в систему. Его имя пользователя все еще Xp10d3. Пользователь IiBlurBeriI входит в систему. Имя пользователя Xp10d3 внезапно становится именем пользователя IiBlurBeriI.
Я знаю причину этого, но мне интересно, если бы я назначил переменную $ _SESSION переменной $ _GET, останется ли эта переменная статичной? c а не поменять? Если нет, то как я могу решить эту проблему?
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;
}
//Unset session and logging out user from the chat room
if(isset($_GET['logout'])){
unset($_SESSION['username']);
header('Location:logout.php');
}
?>
<html>
<head>
<title>Simple Chat Room</title>
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,400,300' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="css/style.css" />
<script type="text/javascript" src="js/jquery-1.10.2.min.js" ></script>
</head>
<body>
<div class='header'>
<h1>
SIMPLE CHAT ROOM
<?php // Adding the logout link only for logged in users ?>
<?php if(isset($_SESSION['username'])) { ?>
<a class='logout' href="?logout">Logout</a>
<?php } ?>
</h1>
</div>
<div class='main'>
<?php //Check if the user is logged in or not ?>
<?php if(isset($_SESSION['username'])) { ?>
<div id='result'></div>
<div class='chatcontrols'>
<form method="post" onsubmit="return submitchat();">
<input type='text' name='chat' id='chatbox' autocomplete="off" placeholder="ENTER CHAT HERE" />
<input type='submit' name='send' id='send' class='btn btn-send' value='Send' />
<input type='button' name='clear' class='btn btn-clear' id='clear' value='X' title="Clear Chat" />
</form>
<script>
// Javascript function to submit new chat entered by user
function submitchat(){
if($('#chat').val()=='' || $('#chatbox').val()==' ') return false;
$.ajax({
url:'chat.php',
data:{chat:$('#chatbox').val(),ajaxsend:true},
method:'post',
success:function(data){
$('#result').html(data); // Get the chat records and add it to result div
$('#chatbox').val(''); //Clear chat box after successful submition
document.getElementById('result').scrollTop=document.getElementById('result').scrollHeight; // Bring the scrollbar to bottom of the chat resultbox in case of long chatbox
}
})
return false;
};
// Function to continously check the some has submitted any new chat
setInterval(function(){
$.ajax({
url:'chat.php',
data:{ajaxget:true},
method:'post',
success:function(data){
$('#result').html(data);
}
})
},1000);
// Function to chat history
$(document).ready(function(){
$('#clear').click(function(){
if(!confirm('Are you sure you want to clear chat?'))
return false;
$.ajax({
url:'chat.php',
data:{username:"<?php echo $_SESSION['username'] ?>",ajaxclear:true},
method:'post',
success:function(data){
$('#result').html(data);
}
})
})
})
</script>
<?php } else { ?>
<div class='userscreen'>
<form method="post">
<input type='text' class='input-user' placeholder="ENTER YOUR NAME HERE" name='username' />
<input type='submit' class='btn btn-user' value='START CHAT' />
</form>
</div>
<?php } ?>
</div>
</body>
</html>