2014-05-25 3 views
-2

나는 틀린 것이 틀림 없다 - 세션 변수 전역 변수를 통해 한 PHP 페이지에서 다른 변수로 전달하려고 시도했지만 작동하지 않는 것 같다. 여기에 내가했던 일이야 : 흐름

: 양식 제출 - 성공하면> login.php, 리디렉션 - 기본적> chat.php

, 나는 로그인에서 세션 변수를 전달할 수 없습니다. php to chat.php.

    :

    다음
    <?php 
    session_start(); 
    
    $username = $_SESSION['username']; 
    
    echo $username; 
    ?> 
    

    은 몇 가지 가정입니다

    login.php

    <?php 
    session_start(); // pass on variables 
    
    // Pass on variables 
    $_SESSION['username'] = $_POST['username']; 
    
    // some code here 
    
    if (mysqli_num_rows($result) == 0) { 
        // some code here 
    } else { 
        // some code here 
         $url = "./chat.php"; 
         $js = "<script>window.location = '{$url}'</script>"; 
         echo $js; 
    } 
    

    chat.php : 여기

    코드입니다
  1. $_POST['username]이 정확합니다.
  2. 나머지 코드는 login.php에 올바르게 표시되지 않습니다.
  3. echo "works!";은 echo 라인 이후에 추가했을 때 chat.php에서 작동합니다. 그래서 그것은 틀린 변수 일뿐입니다.
  4. <?php ?> 태그 외부에는 다른 HTML 코드가 없습니다.

몇 가지 아이디어가 있습니다.

감사합니다.

+5

*에 의해 chat.php

<?php $username = $_SESSION['username']; echo $username; ?> 

당신은 당신의 세션을 확인하실 수 있습니다에서 작동합니다 생각 "여기에 몇 가지 가정이 있습니다 :"* 가정하지 마십시오. 검사! '$ _POST [ 'username']'은 정말로 가치가 있습니까? – GolezTrol

+0

이것을 디버깅 한 적이 있습니까? –

+0

@GolezTrol - 예 확인했는데 작동합니다. – blazonix

답변

-1

시스템에서 실행중인 아파치가 세션 변수를 저장하는 데 필요한 파일을 만들 수없는 경우 세션 변수가 작동하지 않습니다. 해당 폴더에 대한 사용 권한을 부여하고 그룹 소유자를 www-data로 설정하십시오. php 코드 끝에이 session_commit()을 추가하십시오. 또는 session_write_close();

+0

"아파치"가 무슨 뜻이야? – blazonix

+0

어떤 시스템을 사용하고 있습니까? –

+0

이것은 일이 실패 할 수있는 많은 이유 중 하나 일뿐입니다. 또한 세션 변수는 서버에서 전원 플러그를 뽑을 때 실패합니다. – hakre

1

이 코드를 사용해보십시오. 나는이 print_r($_SESSION);

관련 문제