2013-01-20 2 views
0

나는 학교에서 프로젝트를하고 있는데, 세션없이 poeple이 사이트에 들어오는 것을 막을 수있는 간단한 방법을 알아야합니다. 나는 모든 페이지에 코드를 붙여 넣는 데 시간을 썼다고 믿지 않는 페이지가 많다. 또한 나는 모든 페이지 PHP 덕분에 포함 된 메뉴 막대, 그래서 내가 코드없이 왓지 유형의 세션없이 사용자를 차단하는 메뉴에 넣어야 궁금 해서요. 나머지 콘텐츠 코드는 숨기고 싶은 페이지에 있습니다. 나는 당신이 URL을 타이핑하여 로그인 할 수 있고 로그인 한 사용자를위한 숨겨진 페이지를 볼 수 있다고 믿는다.로그인이 필요한 곳에 숨겨진 페이지에 액세스하는 사람들을 막는 방법은 무엇입니까?

+0

사용자가 세션 변수로 로그인했는지 기억하십시오. 모든 웹 페이지의 시작 부분에서이 변수를 확인하십시오. 설정되어 있지 않으면 로그인 페이지로 리디렉션하십시오. –

+0

글쎄, 나는 모든 페이지에 대한 링크 인 내 메뉴 바에 넣어두면, 여전히 로그인 할 필요없이 사람들이 웹 사이트에 접속하는 것을 막을 수 있다는 것을 –

+0

가능한 복제본이라고 이해한다. (http://stackoverflow.com/questions/14426059/no-to-stop-people-from-to-logged-without-web-in-logged-in) –

답변

-1

세션을 사용하지 않으려면 쿠키를 사용하십시오.

<?php 
/*Just add this piece of PHP code to top of any page you 
    don't want not-logged in users to see */ 
if (!isset($_COOKIE['logged'])) 
    header("Location: login.php"); //It redirects the user to your login page 

?> 

<html> 
    <body> 
     ... 
    </body> 
</html> 

로그인 페이지는 다음과 같이 할 수있다 :

<?php 
    if (isset($_COOKIE['logged'])) 
     header("home.php"); 

    if ($_POST['submit']) { 
     //get username and password 
     $uname = $_POST['uname']; 
     $pass = $_POST['password']; 

     if ($uname=="correct" && $pass=="correct"){ //EDIT 
      setcookie('logged','1'); 
        header("Location: home.php"); //Redirect to home page 
     } 
     else echo "Wrong combinaton!"; 
    } 

?> 

<html> 
    <body> 
     <form action="login.php" method="post"> 
      <label>Username</label><input type="text" name="uname" /><br /> 
      <label>Password</label><input type="password" name="pass" /><br /> 
      <input type="submit" name="submit" value="Login" /> 
     </form> 
    </body> 
</html> 
+0

이 세션을 통해 어떤 일을 할 수있는 방법이 있습니까? –

+0

모든 질문에 감사합니다. –

+0

예. 그것은 간단합니다. 사용자 이름과 패스워드를 확인한 후에'session_start();'세션 쓰기를 시작한 다음 세션 변수를'$ _SESSION [ 'logged'] = 1'로 설정합니다. 그리고 쿠키를 검사하는 대신 세션 변수가 설정되어 있는지 확인하십시오. 'session_start(); if (isset ($ _ SESSION [ 'logged'])) ...'. –

4

일반 쿠키를 사용하지 마십시오. 세션은 갈 길입니다. 또는 세션을 사용할 수없고 쿠키를 사용해야하는 경우 먼저 쿠키에 서명하여 응용 프로그램이 실제로 쿠키를 설정했는지 확인할 수 있습니다.


<?php 
session_start(); 

if (!isset($_SESSION['authenticated'])) { 
    header('Location: login.php'); 
    exit; 
} 

... whatever logged in users should see .. 


관련 문제