2014-10-14 5 views
0

"잘못된 사용자 로그인"과 같은 사용자에게 메시지를 표시하기 위해 JS와 함께 호출 할 수있는 PHP 메서드/함수/속성을 만들려고 시도하고 표시 한 다음 다시 설정합니다.오류 메시지 후 변수 다시 설정

지금까지 내가 가진 문제는 사용자가 다음 페이지로 이동하거나 메시지를 다시로드 할 때 문제가 발생하여 다시 null로 설정하는 것을 원하지 않는 것입니다.

<script> 

window.setTimeout(displayErrorMessage(), 2000); 

function displayErrorMessage(){ 

if(!displayErrorMessage.called) 
{ 
var errorMessage = ("<?php echo "ERROR: ".$_SESSION['error'] ?>"); 
document.getElementById('errormessage').innerHTML = errorMessage; 
resetErrorMessage(); 
} 

displayErrorMessage.called = true; 
} 

function resetErrorMessage() 
    { 
    var errorMessage = null; 

    setTimeout(function() 
    { 
    document.getElementById('errormessage').innerHTML = ""; 

    }, 5000); 
} 
</script> 
+0

검사 스크립트를 출력하기 전에 –

+0

가 오류 처리기로 설정된 후 문제점이라고 변수는 항상 설정됩니다. 나는 그것을 표시 한 후에 그것을 지우는 것을 멀리 찾고 있습니다. –

답변

1

표시 후에 세션 변수를 제거해보십시오.

<script> 
    <?php if(isset($_SESSION['error'])) { ?> 
    window.setTimeout(displayErrorMessage(), 2000); 

    function displayErrorMessage(){ 
      if(!displayErrorMessage.called) { 
        var errorMessage = ('<?php echo "ERROR: ".$_SESSION['error']; ?>'); 
        // Here is where you remove the error so it won't persist to the 
        // next pages when user continues to navigate through 
        <?php if(isset($_SESSION['error'])) unset($_SESSION['error']); ?> 
        document.getElementById('errormessage').innerHTML = errorMessage; 
        resetErrorMessage(); 
       } 

      displayErrorMessage.called = true; 
     } 
    <?php } ?> 

    function resetErrorMessage() { 
      var errorMessage = null; 
      setTimeout(function(){ 
        document.getElementById('errormessage').innerHTML = ""; 
       }, 5000); 
     } 
</script> 
0

이 시도`$ _SESSION [ '에러'] '의 값 또는 존재

<?php if(isset($_SESSION['error'])) : ?> 
<script> 
window.setTimeout(displayErrorMessage(), 2000); 

function displayErrorMessage() 
{ 
    if(!displayErrorMessage.called) 
    { 
     var errorMessage = ("<?php echo "ERROR: ".$_SESSION['error'] ?>"); 
     document.getElementById('errormessage').innerHTML = errorMessage; 
     resetErrorMessage(); 
    } 

    displayErrorMessage.called = true; 
} 

function resetErrorMessage() 
{ 
    var errorMessage = null; 

    setTimeout(function() { 
        document.getElementById('errormessage').innerHTML = ""; 
       }, 5000); 
} 
</script> 
<?php endif; ?> 

<?php 
unset($_SESSION['error']); 
?> 
관련 문제