2017-05-24 47 views
0

我有一個頁面,其中有一個名爲buy.B的按鈕,當點擊購買按鈕時,假設用戶登錄後轉到購買頁面在登錄頁面或如果用戶沒有登錄。我試圖用「is_user_logged_in()」來實現這一點。我試過「header:location」,它給了我一個警告,因爲我最初爲get_header()寫了一個警告。我曾嘗試使用JavaScript,但似乎沒有work.here是我的代碼請幫助我。根據用戶登錄狀態,如何重定向到「登錄頁面」或「購買頁面」

<script> 

function myfunction() { 
    location.reload(); 
}  

function redirect() { 
    <?php if(!is_user_logged_in()){ 
     ?> 
    window.location.replace("login.php"); 
    <?php 
}else{ 
    ?> 
    window.location.replace("buy.php"); 
    <?php } 
    ?> 

} 
} 
</script> 
<?php 
get_header(); 
?> 

<form action="" method="post"> 
<div> 
<br> 
<input type="submit" name="delete" value="Delete" class="btn btn-primary" id="show" onclick="myfunction()"> 
<input type="submit" name="buy" value="Buy Now" class="btn btn-primary" onclick="redirect()"> 

</div> 
+0

不能使用PHP頭髮送後數據作爲PHP中的響應。您必須在所有文本和html輸出之前使用標題。 –

+0

試試這個==>'window.location =「http://www.yoururl.com」;' – Narayan

回答

0

有沒有必要寫一個JS只是爲了檢查用戶登錄狀態和相應的重定向。您可以按照以下指示進行操作。

在get_header()之前的頁面頂部,你可以寫這個。

if (!is_user_logged_in()) { 
    auth_redirect(); 
} 

此,如果條件檢查如果登錄將繼續加載頁面的其餘部分,如果用戶沒有登錄這將迫使用戶獲得通過登錄頁面驗證的用戶。

0

而不是使用onClick,你可以把這個PHP腳本放在頁面的頂部。

if(isset($_POST['buy'])){ 
    if(is_user_logged_in()){ 
     header("Location:buy.php"); 
     exit(); 
    } 
    else{ 
     header("Location:login.php"); 
     exit(); 
    } 
} 

//產生任何輸出之前,此代碼必須放在/應置於頂部