2017-04-14 7 views
0

지난 몇 달 전에 마지막으로 테스트했을 때 작동했던 PHP 세션을 디버깅하고 있습니다. 코드는 어떤 식 으로든 변경되지 않았지만 세션은 이제 작동을 멈췄습니다.세션 데이터가 저장되지 않습니다.

다른 기사뿐만 아니라 여기에 여러 질문을 읽었지만이 문제를 해결 한 제안은 없습니다. 나는 내 코드가 정확한지 생각하지만, 내가 Bluehost를에서 지원을 물었을 때, 그들은 그것이 코드 문제가 될 수 있어야합니다 말 :

내가 세션을 시작하고 몇 가지 세션 변수를 설정하고있다 :

<?php 
    session_start(); 

$_SESSION["franchise_name"] = $_POST["name"]; 
$_SESSION["db_name"] = $_POST["name"]; 
$_SESSION["franchise_location"] = $_POST["franchise_location"]; 
$_SESSION["franchise_phone"] = $_POST["franchise_phone"]; 
$_SESSION["franchise_address"] = $_POST["franchise_address"]; 
$_SESSION["franchise_email"] = $_POST["franchise_email"]; 

header("Location: session.php"); /* Redirect browser */ 
exit; 

?> 

내가 에코 경우를 그것들을 설정 한 직후의 세션 변수는 모두 정상입니다. 좋은 물건. 그래서 나는이 섹션에서 모든 것이 작동한다는 것을 알고 있습니다.

session.php은 다음과 같습니다 :이 테스트 때, 데이터가 세션에 전달되고 있지

<?php 
ini_set('display_errors', 1); 
ini_set('display_startup_errors', 1); 
error_reporting(E_ALL); 
    session_start(); 
echo 'Testing Output:'; 
echo session_status(); 
echo '<pre>'; 
var_dump($_SESSION); 
echo '</pre>'; 
phpinfo(); 
?> 

합니다. session.php의 출력은 다음과 같습니다

Testing Output:2 
array(0) { 
} 
세션 데이터가 활성화 된 경우 나 또한 볼 수있는 테스터를 설정

:

<?php 
// Start Session 
session_start(); 
// Show banner 
echo '<b>Session Support Checker</b><hr />'; 
if (!is_writable(session_save_path())) { 
    echo 'Session path "'.session_save_path().'" is not writable for PHP!<br />'; 
} else { 
    echo 'Session path "'.session_save_path().'" is writable for PHP!<br />'; 

} 
// Check if the page has been reloaded 
if(!isset($_GET['reload']) OR $_GET['reload'] != 'true') { 
    // Set the message 
    $_SESSION['MESSAGE'] = 'Session support enabled!<br />'; 
    // Give user link to check 
    echo '<a href="?reload=true">Click HERE</a> to check for PHP Session Support.<br />'; 
} else { 
    // Check if the message has been carried on in the reload 
    if(isset($_SESSION['MESSAGE'])) { 
     echo $_SESSION['MESSAGE']; 
    } else { 
     echo 'Sorry, it appears session support is not enabled, or you PHP version is to old. <a href="?reload=false">Click HERE</a> to go back.<br />'; 
    } 
} 
?> 

이 테스트의 결과는 세션 데이터가 작동하지 않았 음을 보여줍니다 여기서도 세션 경로가 실제로 쓰기가 가능하다는 것을 의미합니다. Phpinfo는 세션을 사용할 수 있음을 나타냅니다.

이 문제를 해결할 수있는 다른 방법이 있습니까? 감사.

업데이트 :ini_set ('session.save_path', 'SOME WRITABLE PATH')로 세션 경로를 확인하려고했습니다. 하지만 문제가 해결되지 않았습니다. PHP session_start() 페이지에서

+0

참고 :이 정확한 파일을 bluehost에서 hostgator로 복사했으며 정상적으로 작동합니다.그래서 그것은 호스팅 관련이있는 것으로 보이지만 블루 호스트는 문제를 해결해야한다고 말합니다. 그들에게 무엇을하도록 요구해야하는지 잘 모릅니다. – WilliamAlexander

+0

혹시 다른 요청이 있으십니까? 어떤 경우에는 세션을 시작하는 404 페이지가있었습니다. 내 사이트에는 favicon이 없었고 브라우저가 요청했으며 두 개의 요청이 예기치 않은 동작을하는 서버에 도착했습니다. –

+0

코드는 모두 위에 나열되어 있으므로 그렇게 생각하지 않습니까? – WilliamAlexander

답변

0

:

:
은 쿠키 기반 세션을 사용하려면이 session_start()는 브라우저에 아무것도하고 출력하기 전에 를 호출해야합니다.

session_start() 앞에 공백을 제거하면 출력으로 간주됩니다.


업데이트 :

ini_set('session.save_path','/some/safe/path/to/sessions'); 
session_start(); 

sessions 적절한 권한이 있는지 확인하십시오 :

그것은 또한 세션 파일의 위치와 관련 될 수있다, 당신은 새로운 위치를 설정하려고 할 수 있습니다

+0

해결하지 못했습니다. – WilliamAlexander

+0

내 대답을 –

+0

업데이트했습니다. Pedro 업데이트를 가져 주셔서 감사합니다. 초기 문제 해결 테스트 중 하나로 세션 경로를 변경하려고 시도한 적이 있습니다. – WilliamAlexander

0

나는 Blue Host라고 불렀습니다.이 두 번째 지원 담당자는 처음보다 더주의를 기울였습니다. 광택 캐싱은 문제를 일으킬 수 있습니다. 우리는 그것을 무능하게했고 짜잔! 결정된.

관련 문제