2016-09-08 6 views
1

Derzeit habe ich ein bisschen Ärger. Ich habe meine Website über einen Router arbeiten, aber es erscheint, wenn ich und meine Schwester zusammen auf meiner Website sind, sind wir in demselben Konto/Benutzer angemeldet.Mehrere Benutzer mit Login-Sitzung

Beispiel: Sag, ich habe mich ausgeloggt. Dann ist meine Schwester ausgeloggt, oder ich logge mich ein, dann ist sie mit demselben Konto wie ich angemeldet.

Ich weiß, dass etwas mit meinen Sitzungen falsch sein muss, und derzeit versuche ich zu lernen und über was nachzudenken wäre es so, wenn mehr als ein Benutzer online interagiert und Dinge tut. Ehrlich gesagt, habe ich gerade die Oberfläche von Sitzungen gekratzt, und ich versuche zu erfahren, was passiert, wenn mehrere Benutzer gleichzeitig online sind.

und ich habe mir die anderen Q & wie hier angeschaut, aber ich habe nicht viel Glück gehabt, etwas hilfreiches zu diesem Thema zu finden. Ich hätte keine Hilfe oder Vorschläge, irgendwelche Punkte auf Fehler in meinem grundlegenden System.

<?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(); 
?> 

Antwort

0

Sie müssen für jede Sitzung eine eindeutige Sitzungs-ID erstellen.

+0

Nun, das ist, was ich dachte, aber ich habe kein Glück über _how_, eine eindeutige 'session_id' für jeden Benutzer zu setzen. –

Verwandte Themen