2017-02-02 1 views
1

모든 URL 매개 변수를 표시해야하는 매우 간단한 page.php가 있습니다. 내가 page.php 직접 이동하면

<?php 
if (!isset($_SESSION)) { 
    session_start(); 
} 
print_r($_GET); 
?> 

(I 더 복잡한 페이지에서이 문제가 발생하지만이 시험에 아래로 제거하고, 문제가 지속 있어요)? someProperty = 테스트, 가끔 빈을 얻을 array(), 두 번째 시도에서 예상대로 작동하고, 이후의 모든 시도. 잠시 떨어져있는 서버에서 요청을 처음 만들 때 항상 실패하는 것 같습니다. 나는 그것이 저급이라고 생각하기 시작했습니다. 디버그하기가 매우 어렵습니다. 관찰하자마자 사라집니다. 무엇이 이것을 일으킬 수 있습니까?

환경 정보 :

  • PHP 5.3
  • 아파치 2
  • 레드햇 리눅스

PS - 나는 다른 유사한 게시물을 읽었지만, 각각의 경우에, 누군가가 있었다 세션 또는 무언가를 초기화하는 것을 잊어 버렸습니다. 또한 세션이 초기화되기 전에 공백이나 헤더가 설정되지 않았는지 확인했습니다.

업데이트 - 페이지가 URL 매개 변수를 읽지 못하면 브라우저는 위치 표시 줄에서도 쿼리 문자열을 즉시 삭제하고 도메인으로 축소합니다. .com/page.php
URL 바에 page.php? test = test의 전체 주소를 수동으로 입력하더라도 바로 단축되고 페이지에 빈 배열이 출력됩니다. 또한 Apache에서 활성화 된 모든 종류의 재 작성이 없습니다

+0

은 어디에서 $ _GET을 받고? 제 말은, $ _GET은 꽤 일반적입니다. $ _GET에서 출력하려고하는 매개 변수를 정의하지 않은 것입니다. 마찬가지로, 당신은 다음과 같은 URL에서 "사용자"와 같은 것을 얻으 려하고 있습니까? http://mywebsite.com/index.php?user=130252 –

+0

$ _GET이 세션과 어떻게 관련이 있는지는 알지 못합니다. 나는 세션을 사용하지 않는다. 그러나 $ _GET은 URL의 내용과 관련이 있습니다. –

+0

이것은 브라우저 캐싱 문제일까요? Ctrl + F5를 누르면 캐시가 비워집니다. 또는 대부분의 브라우저에는 캐시를 사용하지 않는 메커니즘이 있습니다. 개발중인 스크립트를 테스트 할 때 상당히 좋은 생각입니다. – RiggsFolly

답변

0

시험 목적으로 만 print_r($_REQUEST);을 포함하고 출력을 확인하십시오.

+0

감사합니다. 나는 $ _REQUEST를 테스트 할 때 같은 빈 배열을 얻는다. 죄송합니다. 제 게시물의 제목에 $ _REQUEST를 테스트했지만 코드에서 설명하지 않았습니다. – user3554288

0

왜 $ _SESSION의 ifset 내부에 session_start가 있습니까? 세션이 시작될 때까지 $ _SESSION을 읽을 수 없습니다. 아마도 이것이 문제의 원인입니다. 코드는으로 session_start 시작해야

<?php 
    session_start(); 
    if (!isset($_SESSION)) { 
     // Do something 
    } 
    print_r($_GET); 
?>