Intereting Posts
Как просто проверить, есть ли у серверов PHP версия 5 или выше? Модель аутентификации для приложения Android Simultaneusly заполняет несколько выпадающих списков данными из таблицы mysql, используя тот же запрос HTML-адрес электронной почты, отправленный через PHP, рассматриваемый как спам в Gmail setAttribute для PDO с использованием драйвера ODBC? Получение валютного символа из кода валюты PDO: выбор с использованием подготовленного оператора возвращает имя столбца Как результаты смешиваются между двумя таблицами при использовании UNION Можно ли присвоить значение переменной по умолчанию для выбора формы в Laravel Как можно проверить, существует ли удаленный файл с помощью PHP? Проанализируйте строку php и замените подстроки Как ограничить коэффициент загрузки изображения до 16: 9 в кодеригере? Аутентификация пользователя через субдомены на локальном хосте как запустить команды imagemagik в PHP? подготовленные заявления – создание единого метода *

Использование сеансов и переменных сеанса в скрипте входа PHP

Я только что закончил создание всего входа и регистрации systsem в PHP, но моя проблема в том, что я еще не использовал сеансы. Я как бы новичок в PHP, и раньше я никогда не использовал сеансы. Я хочу, чтобы после регистрации пользователя и заполнения формы входа в систему они все равно останутся на одной странице. Итак, будет одна часть, которая будет, если сеанс будет logged_in, а другая часть будет else (пользователь не войдет в систему, чтобы отобразить форму входа). Может ли кто-нибудь сказать мне, как начать?

Solutions Collecting From Web of "Использование сеансов и переменных сеанса в скрипте входа PHP"

Надеюсь это поможет 🙂

начинается сеанс, вам нужно сказать это в верхней части страницы или перед вызовом кода сеанса

session_start(); 

поместите идентификатор пользователя в сеанс, чтобы отслеживать, кто входит в систему

  $_SESSION['user'] = $user_id; 

Проверьте, не зарегистрирован ли кто-либо

  if (isset($_SESSION['user'])) { // logged in } else { // not logged in } 

Найти зарегистрированный идентификатор пользователя

 $_SESSION['user'] 

Итак, на вашей странице

  <?php session_start(); if (isset($_SESSION['user'])) { ?> logged in HTML and code here <?php } else { ?> Not logged in HTML and code here <?php } 

Вот простейший код сеанса с использованием php. Мы используем 3 файла.

login.php

 <?php session_start(); ?> // session starts with the help of this function <?php if(isset($_SESSION['use'])) // Checking whether the session is already there or not if // true then header redirect it to the home page directly { header("Location:home.php"); } if(isset($_POST['login'])) // it checks whether the user clicked login button or not { $user = $_POST['user']; $pass = $_POST['pass']; if($user == "Ank" && $pass == "1234") // username is set to "Ank" and Password { // is 1234 by default $_SESSION['use']=$user; echo '<script type="text/javascript"> window.open("home.php","_self");</script>'; // On Successful Login redirects to home.php } else { echo "invalid UserName or Password"; } } ?> <html> <head> <title> Login Page </title> </head> <body> <form action="" method="post"> <table width="200" border="0"> <tr> <td> UserName</td> <td> <input type="text" name="user" > </td> </tr> <tr> <td> PassWord </td> <td><input type="password" name="pass"></td> </tr> <tr> <td> <input type="submit" name="login" value="LOGIN"></td> <td></td> </tr> </table> </form> </body> </html> 

home.php

 <?php session_start(); ?> <html> <head> <title> Home </title> </head> <body> <?php if(!isset($_SESSION['use'])) // If session is not set then redirect to Login Page { header("Location:Login.php"); } echo $_SESSION['use']; echo "Login Success"; echo "<a href='logout.php'> Logout</a> "; ?> </body> </html> 

logout.php

 <?php session_start(); echo "Logout Successfully "; session_destroy(); // function that Destroys Session header("Location: Login.php"); ?> 

Во-первых, в документации PHP есть отличная информация о сеансах .

Во-вторых, вам понадобится способ хранения учетных данных для каждого пользователя вашего сайта (например, базы данных). Это хорошая идея не хранить пароли как удобочитаемый, незашифрованный простой текст. При хранении паролей вы должны использовать функцию хэширования PHP crypt() . Это означает, что, если какие-либо учетные данные скомпрометированы, пароли недоступны.

Большинство систем входа в систему будут хешировать / шифровать пароль, который вводит пользователь, а затем сравнить результат с хэшем в системе хранения (например, базы данных) для соответствующего имени пользователя. Если хэш введенного пароля совпадает с сохраненным хэшем, пользователь ввел правильный пароль.

Вы можете использовать переменные сеанса для хранения информации о текущем состоянии пользователя – то есть, они вошли в систему или нет, и если они есть, вы также можете сохранить свой уникальный идентификатор пользователя или любую другую информацию, которую вы легко можете получить.

Чтобы начать сеанс PHP, вам нужно вызвать session_start() . Аналогично, чтобы уничтожить сеанс и его данные, вам нужно вызвать session_destroy() (например, когда пользователь выходит из системы):

 // Begin the session session_start(); // Use session variables $_SESSION['userid'] = $userid; // Eg find if the user is logged in if($_SESSION['userid']) { // Logged in } else { // Not logged in } // Destroy the session if($log_out) session_destroy(); 

Я также рекомендую вам взглянуть на это . Там есть хорошая и простая информация о создании простой системы входа в систему.

Я всегда делаю OOP и использую этот класс для поддержания сеанса, поэтому вы можете использовать функцию is_logged_in, чтобы проверить, зарегистрирован ли пользователь или нет, и если вы не делаете то, что хотите.

 <?php class Session { private $logged_in=false; public $user_id; function __construct() { session_start(); $this->check_login(); if($this->logged_in) { // actions to take right away if user is logged in } else { // actions to take right away if user is not logged in } } public function is_logged_in() { return $this->logged_in; } public function login($user) { // database should find user based on username/password if($user){ $this->user_id = $_SESSION['user_id'] = $user->id; $this->logged_in = true; } } public function logout() { unset($_SESSION['user_id']); unset($this->user_id); $this->logged_in = false; } private function check_login() { if(isset($_SESSION['user_id'])) { $this->user_id = $_SESSION['user_id']; $this->logged_in = true; } else { unset($this->user_id); $this->logged_in = false; } } } $session = new Session(); ?> с <?php class Session { private $logged_in=false; public $user_id; function __construct() { session_start(); $this->check_login(); if($this->logged_in) { // actions to take right away if user is logged in } else { // actions to take right away if user is not logged in } } public function is_logged_in() { return $this->logged_in; } public function login($user) { // database should find user based on username/password if($user){ $this->user_id = $_SESSION['user_id'] = $user->id; $this->logged_in = true; } } public function logout() { unset($_SESSION['user_id']); unset($this->user_id); $this->logged_in = false; } private function check_login() { if(isset($_SESSION['user_id'])) { $this->user_id = $_SESSION['user_id']; $this->logged_in = true; } else { unset($this->user_id); $this->logged_in = false; } } } $session = new Session(); ?> с <?php class Session { private $logged_in=false; public $user_id; function __construct() { session_start(); $this->check_login(); if($this->logged_in) { // actions to take right away if user is logged in } else { // actions to take right away if user is not logged in } } public function is_logged_in() { return $this->logged_in; } public function login($user) { // database should find user based on username/password if($user){ $this->user_id = $_SESSION['user_id'] = $user->id; $this->logged_in = true; } } public function logout() { unset($_SESSION['user_id']); unset($this->user_id); $this->logged_in = false; } private function check_login() { if(isset($_SESSION['user_id'])) { $this->user_id = $_SESSION['user_id']; $this->logged_in = true; } else { unset($this->user_id); $this->logged_in = false; } } } $session = new Session(); ?> с <?php class Session { private $logged_in=false; public $user_id; function __construct() { session_start(); $this->check_login(); if($this->logged_in) { // actions to take right away if user is logged in } else { // actions to take right away if user is not logged in } } public function is_logged_in() { return $this->logged_in; } public function login($user) { // database should find user based on username/password if($user){ $this->user_id = $_SESSION['user_id'] = $user->id; $this->logged_in = true; } } public function logout() { unset($_SESSION['user_id']); unset($this->user_id); $this->logged_in = false; } private function check_login() { if(isset($_SESSION['user_id'])) { $this->user_id = $_SESSION['user_id']; $this->logged_in = true; } else { unset($this->user_id); $this->logged_in = false; } } } $session = new Session(); ?> 
 //start use session $session_start(); extract($_POST); //extract data from submit post if(isset($submit)) { if($user=="user" && $pass=="pass") { $_SESSION['user']= $user; //if correct password and name store in session } else { echo "Invalid user and password"; header("Locatin:form.php"); } if(isset($_SESSION['user'])) { //your home page code here exit; } 

Вам нужно начать сеанс в верхней части страницы или перед вызовом кода сеанса

 session_start(); 
 $session_start(); extract($_POST); //extract data from submit post if(isset($submit)) { if($user=="user" && $pass=="pass") { $_SESSION['user']= $user; //if correct password and name store in session } else { echo "Invalid user and password"; header("Locatin:form.php"); } if(isset($_SESSION['user'])) { //your home page code here exit; }