2013-05-12 3 views
-3

세션을 사용하여 사용자를 추적하고 있습니다. 다른 페이지의 사용자가 로그인하여이 페이지로 리디렉션 할 때 사용자 이름과 암호 변수를 설정합니다. 사용자가 나는 사용자가 로그인되어 있는지 확인하려면 여기 오는세션이 정상적으로 작동하지 않습니다.

보안상의 이유로

. 그런 다음 사용자가 로그인하지 않은 경우가 index.php를 페이지

<?php 

    session_start(); 
    if(isset($_SESSION['sessionid'])) { 
if (isset ($_SESSION['username' and 'password'])){ 
} 
else 
{ 
    header("Location:Index.php"); 
} 
    } 
?> 

로 사용자를 리디렉션합니다 문제가 난 그냥 관련 URL을 입력하여 페이지를로드하는 경우 내가 어떤 도움에 감사드립니다

인덱스 페이지로 이동하지 오전입니다

+0

당신이 심각하게 사용자 이름과 함께 세션에 암호를 저장하는가? –

답변

1

로 변경 separatly 세션 값을 선언해야합니다. '당신 같은

if (isset ($_SESSION['username']) && isset ($_SESSION['password'])) {...} 

하지만, 내가 더 추가 할 수 있다면, 나는 (아주 최소한) 추천 클래스 중 하나를 만들거나 당신을 위해이 작업을 수행하는 기능 : 그것은 당신이 당신의 구문에 오류가 말했다되고 내가 한번 생각한 것 이상으로 그것을 사용하게 될 것이다.

예를 들어, 자신에게 함수를 만듭니다 :

function is_logged_in() { 
    if ((isset ($_SESSION['username'])) && (isset ($_SESSION['password']))) { 
    /* this is an awful way of checking if a user is logged in! */ 
    return true; 
    } else { 
    return false; 
    } 
} 

을 그런 다음 사용자가 로그인되어 있는지 확인해야 할 때, 단지 참조하는 기능 :

if (is_logged_in()) { 
    /* show members only stuff */ 
} else { 
    echo 'Please login'; 
} 

을 그런 다음 학습으로 더 많은 작업을 수행하고 응용 프로그램을 계속 진행하면 돌아가서 코드의 모든 곳에서 로그인 확인을 업데이트하지 않고도 하나의 기능을 조정할 수 있습니다.

하지만 사용자 보안을 읽어 보거나 미리 만들어진 많은 패키지 중 하나를 사용하시기 바랍니다.

건배. 그래서 기본적으로 isset($_SESSION[true])는 두 변수 $_SESSION['username']$_SESSION['password']이 있는지 여부를 isset ($_SESSION['username' and 'password'])

+0

이 주셔서 감사합니다 :) 이것은 곧 전달되어야하는 CMS 시스템을 설계하기위한 제 임무의 일부입니다. 따라서 사이트를 100 % 안전하게 만들 시간이 없지만 비슷한 일을 할 가능성이 높습니다 내 마지막 년 프로젝트에 대한 다음 학년도에 나는 이것을 고마워 할 것이다. :) 나는이 전체 스크립트를 어떤 시점에 포함 시키려고한다. 처음에 나는 실제로 백엔드를 얻고 싶다.전자 나는 그것을 만지기 전에 나의 할당을 위해해야하는 CMS의 일부 :) –

+0

차갑다. 프로젝트에 행운을 빈다. 기꺼이 도와주세요. –

1

이 문이

,536를 사용하는 경우에 검사의 잘못된 방법입니다
if (isset($_SESSION['username']) && isset($_SESSION[ 'password'])) 
0

당신은 당신의 if 상태에서 sintax 오류를 가지고, 당신은 그래서 매우 세션에서 해당 정보를 저장에 대한 추천이

if((isset($_SESSION['username'])) && (isset($_SESSION['password']))) { 
1

당신은 확인하지 않지만 (true로 평가) 키를 'username' and 'password'$_SESSION 변수가 존재하는지 여부.

당신은 실제로 두 변수 나열 할 필요가

:

isset($_SESSION['username'], $_SESSION['password']) 
관련 문제