2012-07-20 2 views
2

로그인 할 사용자를 기반으로 사용자 이름을 저장하기 위해 세션 변수를 사용하여 로그인 페이지를 완료했습니다. 가능한지 여부를 알고 싶습니다. 로그인 한 사용자 만 액세스 할 수있는 URL 링크를 만들지 만, 로그인하지 않은 사용자, 예를 들어 로그인 한 사용자가 URL을 복사하여 다른 사람에게 제공하려는 경우 URL 링크를 사용할 수 없어야합니다 해당 사람이 로그인하지 않고 주소 표시 줄에 URL을 붙여 넣으면 로그인 페이지로 리디렉션해야하며 해당 URL 링크를 보려면 inorder에 로그인해야한다는 메시지가 표시되어야합니다.로그 인한 사용자가 로그인 한 사용자가 사용할 수있는 URL 링크에 액세스하지 못하도록 함

Google에서이 문제와 관련하여 검색 한 결과 해결책을 찾을 수 없습니다.

* EDIT * 실제로 링크가 누구의 URL을 우리가 헤더를 사용하여 다운로드에 사용되는 PDF 파일의 경로를 숨기는 방법과 유사, 숨겨진해야하는 HTTPS 페이지입니다.

예를 들어, 사용자 이름이 세션에 있고 링크를 클릭하면이 링크 페이지로 리디렉션되지만 URL을 볼 수없는 PHP 페이지를 만듭니다.

감사합니다.

+0

이 가능합니다. CakePHP와 같은 프레임 워크를 사용하는 것이 더 쉽지만 PHP에서도 똑같이 할 수 있습니다. – Antimony

+0

분명히 할 수 있습니다. URL은 물론 PHP에서 처리해야합니다. '$ _SESSION [ 'username']'set (또는 무엇을 호출했는지)가 보이지 않으면 코드에서 오류를 보내도록하십시오. 시도해보십시오. 작동하지 않으면 코드를 게시하십시오. – ghoti

답변

2

로그인이 성공하면 세션 변수를 만듭니다.

$_SESSION['logged_in'] = $_POST['username']; 

그런 다음 모든 페이지를 사용하는 후 즉시 session_start()

의 시작에서 "URL 링크"를 가정하면

if(! isset($_SESSION['logged_in'])) { /* redirect to login page */ }

0

확인 각 페이지의 상단에 PHP 페이지에 있습니다 페이지를 요청하는 웹 브라우저가 유효한 세션을 설정했는지 확인하십시오.

0

은 다음과 같이 수행 물론

<?php 

session_start(); 

if(isset($_SESSION['loggeduser']){ 
echo "Welcome"; 
} 
else{ 
echo "Unauthorized User"; 
//redirect user to login page 
} 

?> 
관련 문제