2016-03-04 62 views
1

方法註銷中的php在未調用的情況下執行。起初用戶名被回顯很好,但在signout方法下面的第二個回顯表明它的null。當singout鏈接被點擊時它應該被調用。這是爲什麼發生?php中<script>標籤執行不通話爲什麼?

<?php echo $_SESSION['username']; ?> // this echo show real value 

<script> 

function singout() 
{ 
    <?php $_SESSION['username']='null'; ?> 
    window.alert("<?php echo $_SESSION['username'];?>"); 

} 

<?php echo $_SESSION['username']; ?> // but this echo show null value 

</script> 

<a onclick="singout();" href="login.html" style="float: right">singout</a> 
+0

服務器/客戶端體系結構101的編碼... – CD001

+0

任何解決方案? – phpnet

+0

只是試圖找到一個快速鏈接 - 本質上PHP運行在服務器上它總是在客戶端上的任何東西(HTML,JavaScript)之前執行,因此你不能使用JavaScript來執行PHP ...除非你在一個單獨的電話與Ajax – CD001

回答

2

您的PHP被調用時沒有調用JS函數,因爲在瀏覽器加載時,每個PHP行都被程序調用。僅僅因爲你的PHP線在JS功能之內並不意味着它不會在瀏覽器加載時調用

+0

那麼我應該如何解決和實現我想要的功能,任何解決方案? – phpnet

+0

感謝@iJamesPHP幫助 – phpnet

+0

有沒有確切的解決方案來與您的Javascript中的PHP變量進行交互,您是否可以將它們重定向到一個名爲logout.php的頁面,然後調用session_start();其次是session_destroy();?如果你不想要任何形式的頁面重定向,那麼只需運行logout.php,通過使用一些隨機虛擬變量對文件執行POST請求,僅僅觸發logout.php而不重定向用戶 – iJamesPHP

相關問題