Can you please tell me how to get the name of the logged in user and other user information? I would be glad to have a couple of simple examples, thanks.

<?php if (!empty($_COOKIE['sid'])) { // check session id in cookies session_id($_COOKIE['sid']); } session_start(); require_once 'classes/Auth.class.php'; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP Ajax Authorization</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="./vendor/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="./css/style.css"> </head> <body> <div class="container"> <?php if (Auth\User::isAuthorized()): ?> <h1>Your are welcome!</h1> <form class="ajax" method="post" action="./ajax.php"> <input type="hidden" name="act" value="logout"> <div class="form-actions"> <button class="btn btn-large btn-primary" type="submit">Logout</button> </div> </form> <?php else: ?> <form class="form-signin ajax" method="post" action="./ajax.php"> <div class="main-error alert alert-error hide"></div> <input name="username" type="text" class="input-block-level" placeholder="Имя пользователя" autofocus> <input name="password" type="password" class="input-block-level" placeholder="Пароль"> <label class="checkbox"> <input name="remember-me" type="checkbox" value="remember-me" checked> Remember me </label> <input type="hidden" name="act" value="login"> <button class="btn btn-large btn-primary" type="submit">Sign in</button> <div class="alert alert-info" style="margin-top:15px;"> <p>Not have an account? <a href="/register.php">Register it.</a> </div> </form> <?php endif; ?> </div><!-- /container --> <script src="./vendor/jquery-2.0.3.min.js"></script> <script src="./vendor/bootstrap/js/bootstrap.min.js"></script> <script src="./js/ajax-form.js"></script> </body> </html> <?php namespace Auth; class User { private $id; private $username; private $db; private $user_id; private $db_host = "localhost"; private $db_name = "php"; private $db_user = "php"; private $db_pass = "php"; private $is_authorized = false; public function __construct($username = null, $password = null) { $this->username = $username; $this->connectDb($this->db_name, $this->db_user, $this->db_pass, $this->db_host); } public function __destruct() { $this->db = null; } public static function isAuthorized() { if (!empty($_SESSION["user_id"])) { return (bool) $_SESSION["user_id"]; } return false; } public function passwordHash($password, $salt = null, $iterations = 10) { $salt || $salt = uniqid(); $hash = md5(md5($password . md5(sha1($salt)))); for ($i = 0; $i < $iterations; ++$i) { $hash = md5(md5(sha1($hash))); } return array('hash' => $hash, 'salt' => $salt); } public function getSalt($username) { $query = "select salt from users where username = :username limit 1"; $sth = $this->db->prepare($query); $sth->execute( array( ":username" => $username ) ); $row = $sth->fetch(); if (!$row) { return false; } return $row["salt"]; } public function authorize($username, $password, $remember=false) { $query = "select id, username from users where username = :username and password = :password limit 1"; $sth = $this->db->prepare($query); $salt = $this->getSalt($username); if (!$salt) { return false; } $hashes = $this->passwordHash($password, $salt); $sth->execute( array( ":username" => $username, ":password" => $hashes['hash'], ) ); $this->user = $sth->fetch(); if (!$this->user) { $this->is_authorized = false; } else { $this->is_authorized = true; $this->user_id = $this->user['id']; $this->saveSession($remember); } return $this->is_authorized; } public function logout() { if (!empty($_SESSION["user_id"])) { unset($_SESSION["user_id"]); } } public function saveSession($remember = false, $http_only = true, $days = 7) { $_SESSION["user_id"] = $this->user_id; if ($remember) { // Save session id in cookies $sid = session_id(); $expire = time() + $days * 24 * 3600; $domain = ""; // default domain $secure = false; $path = "/"; $cookie = setcookie("sid", $sid, $expire, $path, $domain, $secure, $http_only); } } public function create($username, $password) { $user_exists = $this->getSalt($username); if ($user_exists) { throw new \Exception("User exists: " . $username, 1); } $query = "insert into users (username, password, salt) values (:username, :password, :salt)"; $hashes = $this->passwordHash($password); $sth = $this->db->prepare($query); try { $this->db->beginTransaction(); $result = $sth->execute( array( ':username' => $username, ':password' => $hashes['hash'], ':salt' => $hashes['salt'], ) ); $this->db->commit(); } catch (\PDOException $e) { $this->db->rollback(); echo "Database error: " . $e->getMessage(); die(); } if (!$result) { $info = $sth->errorInfo(); printf("Database error %d %s", $info[1], $info[2]); die(); } return $result; } public function connectdb($db_name, $db_user, $db_pass, $db_host = "localhost") { try { $this->db = new \pdo("mysql:host=$db_host;dbname=$db_name", $db_user, $db_pass); } catch (\pdoexception $e) { echo "database error: " . $e->getmessage(); die(); } $this->db->query('set names utf8'); return $this; } } 
  • Eh, I ask you a lot. - Yupi

1 answer 1

In the address bar you register:

 site.ru/index.php?id=1 

And you conclude:

index.php

 $result = ("SELECT * FROM table_name WHERE id='$_GET[id]'"); //выводим из таблицы users строку id в которой есть цифра 1, то есть id=1 $row = mysql_fetch_array($result); //устанавливаем переменную echo $row[name]; //вывод имя пользователя id1 
  • And we get SQL injection! - Vadim Pedchenko