2014-08-28 109 views
-3

我有一個確認電子郵件帳戶進行驗證的php頁面。如何在php頁面內執行javascript

我想要做的是當頁面重定向我想清除所有本地存儲並在我的javascript中觸發我的單擊事件。

我的問題是我的腳本在我的PHP文件不執行。在我verify.php

<?php 

include_once('database.php'); 

$db = new Connection(); 
$db = $db->dbConnect(); 
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 

    $vemail = $_GET['vemail']; 
    $vhash = $_GET['vhash']; 

    $search = "SELECT user_email, user_hash, user_active FROM tbl_user WHERE user_email = :vemail AND user_hash = :vhash AND user_active = '0'"; 

    $verify = $db->prepare($search); 
    $verify->bindParam(':vemail', $vemail, PDO::PARAM_STR); 
    $verify->bindParam(':vhash', $vhash, PDO::PARAM_STR); 
    $verify->execute(); 
    $match = $verify->rowCount(); 

    if($match > 0){   

     $qup = "UPDATE tbl_user SET user_active='1' WHERE user_email= :vemail AND user_hash = :vhash AND user_active='0'"; 

     $query = $db->prepare($qup); 
     $query->bindParam(':vemail', $vemail, PDO::PARAM_STR); 
     $query->bindParam(':vhash', $vhash, PDO::PARAM_STR); 
     $query->execute(); 

     header('Location: http://pro13.pnp.gov.ph/nup-application'); 

    ?> 
     <script> 
     $(document).ready(function(){ 
      localStorage.clear(); 
      $(".show-page[data-page=Email_verified]").trigger("click"); 
     }); 
     </script> 
     <?php 
     exit; 
    }else{ 

     header('Location: http://pro13.pnp.gov.ph/nup-application'); 

     ?> 
     <script> 
     $(document).ready(function(){ 
      localStorage.clear(); 
      $(".show-page[data-page=Email_alreadyVerified]").trigger("click"); 
     }); 
     </script> 
     <?php 
     exit; 
    } 

?> 
+0

請接受答案或添加自己的答案並接受答案。這樣做會阻止將此問題顯示爲未答覆。 @ user3986930 – 2016-02-01 19:58:08

回答

3

我整個PHP代碼。當然它沒有得到執行,因爲你告訴瀏覽器重定向到一個不同的頁面。瀏覽器不再關心其他任何事情。

解決方案:使用JavaScript重定向而不是通過頭響應重定向。

例:取而代之的是

header('Location: http://pro13.pnp.gov.ph/nup-application'); 

?> 
    <script> 
    $(document).ready(function(){ 
     localStorage.clear(); 
     $(".show-page[data-page=Email_verified]").trigger("click"); 
    }); 
    </script> 
    <?php 
    exit; 

做到這一點

?> 
    <script> 
    $(document).ready(function(){ 
     localStorage.clear(); 
     $(".show-page[data-page=Email_verified]").trigger("click"); 
     window.location.href = 'http://pro13.pnp.gov.ph/nup-application'; 
    }); 
    </script> 
    <?php 
    exit; 
+0

請注意,儘管...如果響應不包含該元素,那麼該腳本無論如何都不會起作用。上一頁消失了,取而代之的是你現在生成的那個。你不能告訴瀏覽器點擊它的東西。 – cHao 2014-08-28 20:29:18

+0

@cHao我不知道他的頁面是如何構建的,或者它是如何構建的,所以我不能確定是否仍然存在此元素(因爲它是在解析verify.php之前打印的)或者它已經消失。所以我只是把它包括在內。如果元素消失了,當然他必須刪除它。但不知道該表單是否真的直接進入verify.php或首先轉到另一個腳本,在這種情況下我無法幫助。 – 2014-08-28 20:32:22

+0

是的......沒有足夠的信息來知道該元素是否存在。你的答案沒有錯。 :)雖然OP似乎有點困惑,但我認爲值得一提。 – cHao 2014-08-28 20:44:17

0

你必須瞭解服務器端和客戶端。 PHP是一個服務器端腳本,在您的Web服務器上執行數據庫查詢,頁面呈現和響應您的瀏覽器請求。

一旦PHP服務器將其響應發送到您的瀏覽器,您就會(通常)得到一個HTML頁面,該頁面會被您的Web瀏覽器解析。這是客戶端。 Javascript運行在客戶端,這意味着它只能與頁面上已有內容一起播放(當然,使用AJAX例外)。

我沒有在您的PHP腳本中看到呈現我認爲位於電子郵件字段的表單的部分。