2012-07-19 6 views
1

현재 간단한 웹 시스템을 개발 중이므로 사용자는 먼저 로그인 페이지로 이동 한 다음 처리 페이지로 이동합니다. 제공된 계정 데이터가 정확하다면 메인 페이지로 이동하여 마침내 로그 아웃 할 수있는 몇 가지 작업을 수행 할 수 있습니다.로그인하지 않은 경우 사용자가 액세스하지 못하도록합니다.

내가 물어보고 싶은 것은 : 로그인을하기 전에 사용자가 처리, 메인 또는 로그 아웃 페이지에 액세스하는 것을 막을 수있는 방법은 무엇인가 제한하는 경우 로그인 동작은 쓸모가 없다는 것입니다. 나는 wamp를 사용하여 웹 시스템을 개발하고있다.

나는 세션 변수를 사용하는 것을 고려해 보았지만 변수의 값을 확인하는 방법을 모릅니다. 로그인 페이지에서 세션을 시작하면 로그인 페이지를 건너 뛰지 만 기본 페이지로 이동하면 기본 페이지에 해당 세션 변수가 있습니까?

답변

4

1) PHP 페이지 상단에 session_start();을 추가하여 세션을 초기화하십시오. 문

if($_SESSION['logged_in'] == 1) { ..show page.. } else { show login page } 

3) 데이터를 검증하는 로그인 양식을 작성하는 경우

2) 데이터가 올 경우 다음이 $_SESSION['logged_in'] = 1;을 추가하고 로그 아웃 버튼으로 페이지를 프로필에 리디렉션 추가합니다.

그게 전부입니다! :)

자습서를 확인하는 것이 좋습니다. 그 이유는 좀 더 자세한 정보 (http://www.intechgrity.com/create-login-admin-logout-page-in-php-w/ 또는 google을 통한 다른 링크 - "세션에서 로그인/로그 아웃 기능을 만드는 방법")을 제공하기 때문입니다.

질문에 대해서는 각 페이지에서 session_start();을 파일의 시작 부분에 넣으십시오. 사용자가 지정한 모든 세션을 갖게됩니다.

편집 :

추가 된 몇 가지 유용한 링크 -

http://www.php.net/manual/en/book.session.php

http://www.tizag.com/phpT/phpsessions.php/

http://www.w3schools.com/php/php_sessions.asp

+1

왜 로그인하지 않은 각 페이지에''if (! $ _ SESSION [ 'logged_in'])) {// redirect}''를 추가해야합니까? – Luceos

+0

네, 작동해야합니다;)! 그냥 예를 보여 줬어.편집 해 주셔서 감사합니다 :) – y2ok

+0

@ Luceos, 하나는 브라우저에서 리디렉션을 사용 중지하여 어쨌든 페이지를 볼 수 있습니다. – Roman

0

잘, 이것은 내가 무엇을 할 것입니다. 로그인 페이지의 사용자 이름과 같은 세션 변수가있는 경우 if 문으로 확인한 다음 오류 404 페이지가 표시되지 않거나 사용자를 오류 페이지로 리디렉션하는 경우 ... 확인하십시오. 어쨌든 자신을 생성하십시오 (다시 로그인 페이지로 리다이렉트하도록).

<? 
session_start(); 
if(!$_SESSION['username']){ 
header("Location: HTTP/1.1 404 File Not Found", 404); 
      exit;} 
?> 
또한 새 파일을 만들고 everypage에를 부르는을 액세스하기 전에 사용자가 로그인해야하는 것 때문에 거기에 코드를 삽입 할 수

....

0

하지만 비 로그인 액세스하려고 페이지를 처음 방문하면 로그인 페이지로 리디렉션되고 동일한 비 로그인 페이지에 액세스하여 두 번째 로그인하면 로그인하지 않은 상태에서도 액세스 할 수 있습니다.

관련 문제