Подтвердить что ты не робот

Использование сеансов и переменных сеанса в PHP Login Script

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

4b9b3361

Ответ 1

Надеюсь, что это поможет:)

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

 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
 }

Ответ 2

вот простейший код сеанса с использованием 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");
?>

Ответ 3

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

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

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

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

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

// Begin the session
session_start();

// Use session variables
$_SESSION['userid'] = $userid;

// E.g. find if the user is logged in
if($_SESSION['userid']) {
    // Logged in
}
else {
    // Not logged in
}

// Destroy the session
if($log_out)
    session_destroy();

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

Ответ 4

Я всегда делаю 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();
?>

Ответ 5

//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;
}

Ответ 6

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

session_start(); 

Ответ 7

$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;
}