2014-07-21 4 views
0

Perch CMS를 사용하는 2 개의 라디오 버튼이있는 양식을 추가하고 세션 중에 한 번 제출 한 후 양식을 다시 제출할 수 없도록 옵션을 중지하려고합니다. <[email protected]@^^[email protected]@^^-->양식 완료 후 세션 설정

나는 다른 모든 코드보다 위에 시작하고 내 위에서도 정상적으로 작동하지만 제대로 작동하지 않습니다.

내 코드는 다음과 같습니다. 내 머리 속에는 세션이 제출 된 것과 같으면 성공 코드가 표시되므로 콘텐츠가 표시되지 않지만 세션이 설정되지 않은 경우 성공 코드가 없으므로 내용을 표시해야합니다. 양식 제출 및 성공 코드를 출력 한 후 작성하여 제출의 세션 ...

<?php if (isset($_SESSION['survey']) == 'submitted') 
echo (strpos($content,'<[email protected]@^^[email protected]@^^-->')!=false); 
else { 
     $content = perch_content('Survey',true); 
    echo str_replace('<[email protected]@^^[email protected]@^^-->','',$content); 

    if (strpos($content,'<[email protected]@^^[email protected]@^^-->')!=true) { 
     $_SESSION['survey'] = 'submitted'; 
    }; 
}; 
    ?> 

내가 내가 거기에 양식을 얻을 같이이 부하에 따라 작동하는 것으로 나타났습니다하지만 페이지를 변경할 때 사라집니다되면 양식을 작성한 후.

시도해 보았지만 잘못 돌아가는 곳에서 머리를 감길 수는 없습니다. 도움을 주시면 감사하겠습니다. CBroe의 도움을

+0

나는'session_start();'가 어딘가에로드되어 있다고 생각합니까? 그렇지 않은 경우 추가하십시오. 세션을 사용할 때 필요합니다. –

+0

session_start가 내 글로벌 헤더 파일 내에 있습니다. – curty409

+1

html에 "마법 코드"를 포함하면 안됩니다. 악의적 인 사용자가 코드를 캡처/반복해서는 안되는 곳에서는 악의적 인 사용자가 코드를 캡처/반복하는 것을 막을 수 없습니다. 세션을 사용하고 있습니다. 성공 코드를 거기에 저장하십시오. 코드가 아닌 다른 모든 사람들이 접근 할 수 있습니다. 코드가 문자열의 시작 부분에 있으면 strpos 호출이 실패합니다. 그 시점의 strpos는 0이며 false로 테스트합니다. 당신은 엄격한 평등 테스트'! == false'를 사용해야합니다. 그것은 거짓말을하지 않을 것입니다. –

답변

0

덕분에 내가

<?php if (isset($_SESSION['survey']) == 'submitted') 
echo (strpos($content,'<[email protected]@^^[email protected]@^^-->')!=true); 
else { 
     $content = perch_content('Survey',true); 
    echo str_replace('<[email protected]@^^[email protected]@^^-->','',$content); 

    if (strpos($content,'<[email protected]@^^[email protected]@^^-->')!==false) { 
     $_SESSION['survey'] = 'submitted'; 
    }; 
}; 
    ?> 

모든 왼쪽 ... 조금 더 장난과 strpos에 독서 다음과 같은 코드가 작동 발견했을 strpos가 true를 반환 할 수 없다 내게 조언 세션이 활성화되어있는 동안 1이 영역에 표시되는 것을 중지하는 것입니다.