PHP 로그인 스크립트에서 세션 및 세션 변수 사용
PHPPHP 로그인 스크립트에서 세션 및 세션 변수 사용
난 그냥 전체 로그인을 만들고 PHP에서 등록 systsem을 완료했지만, 내 문제는 아직 어떤 세션을 사용하지 않은 것입니다. 나는 PHP에서 초보자이고 세션을 사용한 적이 한번도 없다. 사용자가 로그인 양식을 등록하고 채운 후에도 동일한 페이지에 계속 머물러 있기를 원합니다. 따라서 세션이 logged_in이고 다른 부분이 else (로그인 양식이 표시되지 않도록 사용자가 로그인되어 있지 않은 경우)의 한 부분이 있습니다. 누구든지 시작하는 법을 말해 줄 수 있습니까?
해결법
-
==============================
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.다음은 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.첫째, 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.나는 항상 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.
//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; }
-
==============================
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'])) { }
from https://stackoverflow.com/questions/10097887/using-sessions-session-variables-in-a-php-login-script by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
간단한 포스트 리디렉션 - 코드 예제보기 (0) | 2018.09.16 |
---|---|
php.ini & SMTP = - 사용자 이름과 패스워드를 어떻게 전달합니까? (0) | 2018.09.16 |
암호화없이 PHP 코드를 보호하는 최상의 솔루션 (0) | 2018.09.16 |
php 여러 공백을 하나의 공백으로 바꾸기 (0) | 2018.09.16 |
URL에 http : //를 추가하는 방법은 무엇입니까? (0) | 2018.09.16 |