2015-02-10 27 views
0

案例:在圖像上 用戶點擊如何在一個變量保存的用戶會話在PHP中的JavaScript引用

  • 如果迴歸用戶(用戶會話有效期爲30分鐘),瀏覽到該鏈接圖像的
  • 如果是新用戶顯示一個彈出的div

我現在顯示在彈出的div每當被點擊的形象。關於如何保存了會議,並指它作爲變量在JavaScript的任何意見,執行功能,如:

if { 
    // user is log in.. do your task here.. 
} else { 
    //user is not log in.. do your task here... 
} 

編輯:

<script> 
<? if(isset($_SESSION["logged_in"])) { 
    echo "var $check=1"; 
} else { 
    echo "var $check=0"; 
} ?> 

function SetMood() { 
    if($check==1) { 
     // user is log in.. do your task here.. 
     alert('URL'); 
    } else { 
     //user is not log in.. do your task here... 
     document.getElementById('light').style.display='block'; 
     document.getElementById('fade').style.display='block'; 
     document.getElementById('fade').scrollIntoView(true); 
    } 
} 
</script> 

這就是所謂的形象:

<a id="register" href = "javascript:void(0)" onclick = "SetMood();" data-fancybox-group="gallery"> 
    <img src="<cms:show my_image_thumb />" alt="" class="fade"> 
</a> 

上面有沒有影響,現在沒有打開onClick

+0

我想你可以通過php自動編寫javascript並插入會話的值.. – MadsBjaerge 2015-02-10 13:54:19

+0

我該如何將會話保存在JavaScript中?請參閱編輯問題 – Sarah 2015-02-10 13:56:12

+0

人們一直在使用cookies來完成這一代。 – 2015-02-10 13:56:59

回答

0

這個S hould help you:

<script> 
    var yourValue = '<?php echo $_SESSION['yourSessionValue'] ?>'; 
    if(yourValue == 'hello') { 
     console.log('hide yo kids'); 
    } else { 
     console.log('hide yo wife'); 
    } 
</script> 
2

不要在客戶端代碼中執行條件檢查,在服務器端代碼中執行它。

假設你有你想要達到什麼樣的JavaScript實現,讓我們分別稱他們爲這些:

navigateToLink(); 
showPopUp(); 

那麼你還是有條件地發出代碼爲一個或其他依賴於服務器端的會話確認。像這樣:

<?php 
if ($_SESSION['someValue'] == 'someKnownValue') { 
?> 
    navigateToLink(); 
<?php 
} else { 
?> 
    showPopUp(); 
<?php 
} 
?> 

這個想法是,服務器端代碼應該確定用戶可以或不可以做什麼。發送到客戶端代碼的任何內容都完全可見(並且可由用戶修改)。

+0

如何在圖像的'onClick'中調用php腳本?由於PHP只響應get,post等,我會設置值爲真? – Sarah 2015-02-10 14:09:47

+0

你不能。如果你沒有函數showPopup()和navigateToLink(),你仍然需要編寫它們。 – Pinki 2015-02-10 14:11:12

+0

我已經有函數showPopup()和navigateToLink(),但我需要調用圖像上的PHP單擊以顯示正確的函數 – Sarah 2015-02-10 14:12:05