에 대해 정의 내가 두 페이지가 : rooms.php을 사용자가 방에서 갈 때 나는 define('NOT',1);
및 if (!defined('NOT')) exit('no direct!');
을 사용하지만 한 rooms.php 를 통해 reservation.php에만 액세스 할 수 사용자 reservation.php. PHP는 reservation.php에 오류 메시지가 무엇입니까? 함수가 작동하지 않는 이유는 무엇입니까? 사전정의하고 허용 안 직접 액세스
답변
감사 당신이 rooms.php
먼저 호출하고 링크를 통해 reservation.php
로 이동하는 가정 : 당신이 다른 페이지에 액세스 한 후
상수가 손실됩니다. 당신은 session에 값을 저장해야합니다
session_start();
$_SESSION['NOT'] = 1;
PHP 파일을 당신이 그것을 호출 할 때마다 실행됩니다 스크립트. 그러나 그것은 또한 스크립트가 실행 된 후에 모든 변수, 상수가 이 (가)으로 손실되었음을 의미합니다. 그러나 세션은 여러 페이지 호출을 통해 데이터를 보존하기위한 것입니다.
대괄호는 Markdown 링크가 깨졌습니다. 나는 이것이 그가 의미하는 것이라고 생각한다. –
@ 페카 : 오, 고마워. –
맨 그래서이
과 같은if(!defined('FROM_ROOM')){ exit("Please go away");}
를 추가하려면 rooms.php는 상기 Reservation.php 내 reservation.php
define('FROM_ROOM',true);
의 포함 앞에 다음 코드를 추가로
rooms.php : define ('FROM_ROOM', true); 에는 'reservation.php'가 포함됩니다.
reservation.php :
if(!defined('FROM_ROOM')){ exit("Please go away");}
echo "Im reservation.php, i only can be include by rooms.php";
Im 예약 파일을 포함하지 않음, 예약에서 객실로 이동 – TheNone
다음 세션을 사용해야합니다. DEFINE은 파일에 직접 액세스하지 못하도록 보호하는 데 사용되며, referer에 따라 특정 HTML을 허용하지 않습니다. – RobertPitt
예, 맞습니다. pekka가 말했듯이이 문제에 대한 오해가 있습니다. 도와 주셔서 감사합니다. – TheNone
당신은 여기에서 오해가있을 수 있습니다 : rooms.php
포함하여() 또는 필요reservation.php
포함 된 경우이 방법은 작동합니다(). 그것은, 예를 들어, referers를 위해 작동하지 않습니다.
그게 뭐니? 이 경우 코드가 올바르게 표시됩니다. rooms.php
는reservation.php
가 포함 된 줄 앞에
define('NOT', 1);
를 포함 할 필요가있다; 그러나 그것은 효과가있다.
세션 변수가 필요하거나 HTTP 참조자를 확인하기 위해 상수가 필요하지 않습니다. 상수는 사용자가 ( reservation.php 포함) 일 경우에만 작동하며 사용자는 reservation.php를보기 전에 사용자가 rooms.php를 보았 음을 간단히 명시해야합니다.
- 1. 내가 인터페이스를 정의하고 그 직접 사용하고 상황이
- 2. 게스트 OS가 그래픽 어댑터에 직접 액세스 할 수 있도록 허용
- 3. .htaccess를 통해 특정 폴더 이름에 대한 직접 액세스 만 허용
- 4. DataAnnotations - 숫자 허용 안 함 또는 주어진 문자열 만 허용
- 5. iOS : Facebook 앱 로그인을 탭하지 않아도 허용/허용 안 함
- 6. NerdDinner 자습서에 따라 중복 허용 안 함
- 7. Robots.txt 특정 폴더 이름 허용 안 함
- 8. 같은 브라우저에서 여러 탭 허용 안 함
- 9. 페이지 다시 제출 허용 안 함
- 10. 델파이에서 직접 파일 액세스
- 11. 직접 비디오 카드 액세스
- 12. VB.NET - 직접 데이터베이스 액세스
- 13. 파일의 직접 액세스 데이터
- 14. SimpleDB 직접 클라이언트 액세스
- 15. SPListItemCollection에서 직접 SPListItem에 액세스
- 16. 직접 액세스 및 편집,
- 17. URL에서 직접 액세스 금지
- 18. 직접 필드 액세스 3
- 19. facebook 허용 액세스 대화 상자
- 20. 액세스 제어 서블릿의 원본 허용
- 21. Selenium 만 페이지에 액세스 허용
- 22. 액세스 - 데이터 업데이트 허용, 양식을 통해서만 가능
- 23. Silverlight를 사용하여 SQL에 직접 액세스
- 24. OSX에서 키보드 이벤트에 직접 액세스
- 25. Windows Mobile에서 모뎀에 직접 액세스
- 26. 구성 요소의 기능에 직접 액세스
- 27. Sprite의 그래픽에 대한 직접 액세스
- 28. 직접 Iphone 3gs 카메라에 액세스
- 29. C++에서 직접 파일 액세스?
- 30. JavaScript를 통해 MongoDB에 직접 액세스
이것은 어떤 의미가 없습니까? 이제까지. 사용하고있는 실제 코드를 게시하고 (필자는 가정하지 않고 코드를 작성하십시오.) 글을 쓸 때 더 명확히하려고하십시오. –
* 오류 메시지가 있습니다. * 오류 메시지를 아는 것이 도움이 될 것이라고 생각하십니까? 나도 그렇게 생각해! –