2014-08-28 46 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脚本中看到呈现我认为位于电子邮件字段的表单的部分。