1
현재 약간의 문제가 있습니다. 라우터를 통해 작동하는 웹 사이트가 있지만 나와 내 동생이 함께 내 웹 사이트에있는 경우 동일한 계정/사용자로 로그인 한 것처럼 보입니다.로그인 세션이있는 복수 사용자
예 : 로그 아웃했습니다. 그럼 내 동생이 로그 아웃되었거나 로그인했습니다. 그녀는 I과 같은 계정으로 로그인했습니다.
내 세션에 문제가 있음을 알고 있으며, 현재 무엇에 대해 배우고 생각하고 있는지 알고 있습니다. 상호 작용하고 일을하는 온라인 사용자가 한 명 이상있는 것처럼 보일 것입니다. 솔직히 말해서, 저는 세션의 표면을 간신히 긁어 냈습니다. 여러 사용자가 동시에 온라인 상태 일 때 어떤 일이 일어나는지 배우려고합니다.
나는 다른 Q를 보았습니다 & 여기에 관해서는, 그러나 나는이 주제에 도움이되는 것을 찾는 것을별로 행운이 없었습니다. 어떤 도움이나 제안도하지 않을 것입니다. 기본 시스템의 결함을 지적합니다.
<?php
session_start();
session_id("userID");
if(!isset($_SESSION['login'])) {
$_SESSION['login'] = false;
} elseif($_SESSION['login'] === true) {
$query = "SELECT * FROM users WHERE username='{$_SESSION['l-user']}' LIMIT 1";
$set = mysqli_query($db->connection, $query);
$get = mysqli_fetch_assoc($set);
$_SESSION['l-avatar'] = "{$get['avatar']}";
}
class Registery {
// variables
public $login;
public $user;
private $reg;
private $log;
public function register() {
$db = new MySQLDatabase();
if($_SESSION['login'] === false) {
$s_user = strip_tags($_POST['user']);
$s_pass = strip_tags($_POST['pass']);
$s_bio = strip_tags($_POST['content'], "<p><b><i><img><br><a>");
$s_gend = strip_tags($_POST['gender']);
$s_age = strip_tags($_POST['age']);
$s_u = mysqli_real_escape_string($db->connection, $s_user);
$s_p = mysqli_real_escape_string($db->connection, $s_pass);
$s_b = mysqli_real_escape_string($db->connection, $s_bio);
$s_g = mysqli_real_escape_string($db->connection, $s_gend);
$s_a = mysqli_real_escape_string($db->connection, $s_age);
$sql = "INSERT INTO users (id, username, password, content, tag, gender, rank, age, date, time) VALUES (NULL, '{$s_u}', '".sha1($s_p)."', '{$s_b}', 'I\'m new! And my name is {$s_u}', '{$s_g}', 'member', '{$s_a}', CURDATE(), NOW())";
$this->reg = mysqli_query($db->connection, $sql);
if($this->reg === true) {
$_SESSION['login'] = true;
$_SESSION['l-user'] = "{$s_u}";
}
}
}
public function confirm_reg() {
if($this->reg === true) {
$success = "<div class=\"success\">";
$success .= "<p><b><i class=\"fi-info\"></i></b> Successfully registered.</p>";
$success .= "</div>";
echo "{$success}";
} else {
$error = "<div class=\"error\">";
$error .= "<p><b><i class=\"fi-info\"></i></b> Failed to register.<br /><b>NOTE:</b> You may have entered a username that already exists.</p>";
$error .= "</div>";
echo "{$error}";
}
}
public function login() {
$db = new MYSQLDatabase();
if($_SESSION['login'] === false) {
$s_user = strip_tags($_POST['user']);
$s_pass = strip_tags($_POST['pass']);
$s_u = mysqli_real_escape_string($db->connection, $s_user);
$s_p = mysqli_real_escape_string($db->connection, $s_pass);
$sql = "SELECT * FROM users WHERE username='{$s_u}' AND password='".sha1($s_p)."' LIMIT 1";
$this->log = mysqli_query($db->connection, $sql);
if(mysqli_num_rows($this->log) === 1) {
$_SESSION['login'] = true;
$_SESSION['l-user'] = "{$s_u}";
}
}
}
public function confirm_log() {
if(mysqli_num_rows($this->log) === 1) {
$success = "<div class=\"success\">";
$success .= "<p><b><i class=\"fi-info\"></i></b> Successfully logged in.</p>";
$success .= "</div>";
echo "{$success}";
} else {
$error = "<div class=\"error\">";
$error .= "<p><b><i class=\"fi-info\"></i></b> Failed to login.<br /><b>NOTE:</b> You entered the wrong username or password, make sure your capslock is off.</p>";
$error .= "</div>";
echo "{$error}";
}
}
public function logout() {
$_SESSION['login'] = false;
$_SESSION['l-user'] = "";
}
} // end of class
$user = new Registery();
?>
그게 내가 생각한 것이지만, _how_에 대해 각 사용자마다 고유 한'session_id '를 설정하는 것에 대해 행운이 없습니다. –