2012-06-03 7 views
0

작동 방식은 다음과 같습니다. 사용자가 링크를 클릭하여 제품을 나열하면 제품 페이지로 연결됩니다. 보안을 위해 처음에 뭔가를 설정하여 'cid'또는 'sid'가 설정되도록합니다. 사용자가 브라우저에서 마우스를 가져 가면 CID 또는 SID로 연결된 페이지로 이동한다고 확신합니다. 코드는 다음과 같습니다.명령문이 실행되지 않아도되는 경우

<?php require("includes/header.php"); ?> 
<?php 

if(!isset($_GET['cid'])||!isset($_GET['sid'])) { 
    header("Location: index.php"); 
} 

불행히도 사용자는 계속지도를받습니다. 필요한 경우 더 많은 코드를 게시 할 것입니다.

+1

'header (...)'호출을'var_dump ($ _ GET)'로 대체하십시오. 너 뭐가 보이니? –

+0

당신 session_start() 했습니까? – Sebas

+0

올리 찰스 워스 : 배열 (1) {[ "cid"] => 문자열 (1) "2"} –

답변

4

코드에 $_GET['cid']$_GET['sid']이 모두 정의되어 있어야하며 그 중 하나는 정의되어 있지 않아야합니다. 귀하의 조건에서 ||&&으로 대체하십시오.

+0

도움을 주셔서 감사합니다. 문제 해결됨 –

0

그것은해야합니다 : 귀하의 경우

if (!(isset($_GET["sid"]) || isset($_GET["cid"]))) 

, ?sid=foo와 함께 URL을 가정 :

  • !isset($_GET["sid"])
  • 거짓 !isset($_GET["cid"])로 평가

    true로 평가 true || false
  • true로 평가, 따라서 사용자는 리디렉션됩니다.
0

연산자를 & &으로 변경하십시오. 이와 같이

If(!isset($_GET... && !isset($_GET...) 
관련 문제