복붙노트

PHP 로그인 스크립트에서 세션 및 세션 변수 사용

PHP

PHP 로그인 스크립트에서 세션 및 세션 변수 사용

난 그냥 전체 로그인을 만들고 PHP에서 등록 systsem을 완료했지만, 내 문제는 아직 어떤 세션을 사용하지 않은 것입니다. 나는 PHP에서 초보자이고 세션을 사용한 적이 한번도 없다. 사용자가 로그인 양식을 등록하고 채운 후에도 동일한 페이지에 계속 머물러 있기를 원합니다. 따라서 세션이 logged_in이고 다른 부분이 else (로그인 양식이 표시되지 않도록 사용자가 로그인되어 있지 않은 경우)의 한 부분이 있습니다. 누구든지 시작하는 법을 말해 줄 수 있습니까?

해결법

  1. ==============================

    1.희망이 도움이 :)

    희망이 도움이 :)

    세션을 시작하면 페이지 상단이나 세션 코드를 호출하기 전에이를 말해야합니다.

     session_start(); 
    

    세션에 사용자 ID를 넣어 로그인 한 사용자를 추적하십시오.

     $_SESSION['user'] = $user_id;
    

    누군가가 로그인했는지 확인하십시오.

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

    로그인 한 사용자 ID 찾기

    $_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. ==============================

    2.다음은 PHP를 사용하는 가장 간단한 세션 코드입니다. 우리는 3 개의 파일을 사용하고 있습니다.

    다음은 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. ==============================

    3.첫째, PHP 문서에는 세션에 대한 훌륭한 정보가 있습니다.

    첫째, PHP 문서에는 세션에 대한 훌륭한 정보가 있습니다.

    둘째, 웹 사이트의 각 사용자 (예 : 데이터베이스)의 자격 증명을 저장하는 방법이 필요합니다. 사람이 읽을 수 있고 암호화되지 않은 일반 텍스트로 암호를 저장하지 않는 것이 좋습니다. 암호를 저장할 때 PHP의 crypt () 해시 함수를 사용해야합니다. 즉, 자격 증명이 손상된 경우 암호를 즉시 사용할 수 없습니다.

    대부분의 로그인 시스템은 사용자가 입력 한 암호를 해시 / 암호 해독하고 결과를 해당 사용자 이름의 저장소 시스템 (예 : 데이터베이스)의 해시와 비교합니다. 입력 된 암호의 해시가 저장된 해시와 일치하면 사용자가 올바른 암호를 입력했습니다.

    세션 변수를 사용하여 사용자의 현재 상태에 대한 정보 (예 : 로그인 여부)를 저장할 수 있으며, 고유 한 사용자 ID 또는 필요한 즉시 사용할 수있는 기타 정보를 저장할 수도 있습니다.

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

    나는 또한 당신이 이것에 관해 살펴볼 것을 권할 것이다. 거기에 간단한 로그인 시스템을 만드는 데 대한 정보를 따르기 쉽고 좋은 정보가 있습니다.

  4. ==============================

    4.나는 항상 OOP를하고이 클래스를 사용하여 세션을 유지하므로 is_logged_in 함수를 사용하여 사용자가 로그인했는지 여부를 확인할 수 있습니다. 그렇지 않은 경우 원하는 것을 수행 할 수 있습니다.

    나는 항상 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. ==============================

    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. ==============================

    6.페이지 상단에서 또는 세션 코드를 호출하기 전에 세션을 시작해야합니다.

    페이지 상단에서 또는 세션 코드를 호출하기 전에 세션을 시작해야합니다.

    session_start(); 
    
  7. ==============================

    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;
    }
    
  8. ==============================

    8.

    $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']))     
      {
      }
    
  9. from https://stackoverflow.com/questions/10097887/using-sessions-session-variables-in-a-php-login-script by cc-by-sa and MIT license