0

我编码了这个:

<?php
include("includes/config.php");
if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['username']))
{


if(is_numeric($_GET['num']) && mysql_real_escape_string($_GET['id'])){
$username=$_SESSION['username'];
$video_id=$_GET['id'];
$video_num=$_GET['num'];
$checknum=mysql_query("select visitedpage.video_id,visitedpage.video_num from visitedpage where video_num='$video_num'");
$num=mysql_num_rows($checknum);

if($num < 1){   
$savepage=mysql_query("insert into visitedpage(username,video_id,video_num) values ('$username','$video_id','$video_num')");
}

if($num < 1 ){
    $get=mysql_query("select users.percent from users where username='$username'");
    $fetch=mysql_fetch_assoc($get);
    $now=$fetch['percent'];
    $add=1;
    $sum=$now + $add;
    $update=mysql_query("update users set percent='$sum' where username='$username'");
}

}}

?>

我希望当用户仍在页面中大约 10 分钟时执行代码

我试过 (sleep()) 但这将停止执行页面的其余部分,我只需要延迟执行这个片段......

4

4 回答 4

1

您必须使用客户端脚本 (Javascript) 来执行此操作。事后,您不能让服务器端脚本编辑已经显示在客户端浏览器上的内容。

于 2012-12-11T18:40:52.420 回答
1

您可能需要使用 javascript 来做您想做的事情,因为一旦您渲染页面源并将其发送到浏览器,PHP 就根本不再使用(直到来自客户端浏览器的下一个请求)。

于 2012-12-11T18:41:43.980 回答
1

我会建议使用 cookie 的基于 javascript 的解决方案,然后执行 AJAX 请求。

于 2012-12-11T18:49:14.320 回答
1

为什么不在 10 分钟后对这段代码执行 ajax 请求?像这样的东西。...

setTimeout(function() {
  // Do the ajax after 10 seconds. 
}, 10000);

优雅地看到这个Detecting idle time in JavaScript 和这个http://www.jquery4u.com/jquery-functions/settimeout-example/

于 2012-12-11T18:49:15.247 回答