0

我正在尝试创建一个 PHP 触发器,当用户查看我网站上的某些页面时,它将更新部分中的用户表。

我知道这个过程会像这样

on page view > update user > where user id is (**get username from session**) > add 5 to points row

任何人都知道如何设置这样简单的东西来为用户提供查看页面的简单点?

我的网站使用 PHP 和 mySQL 作为数据库。

4

4 回答 4

2

使用 cookie 或会话变量来跟踪用户详细信息,例如用户名或 ID。因此,制作页面浏览触发器就像在每个页面的顶部添加一个 mysql 查询一样简单,该查询将更新数据库表以获取视图。有点像论坛的运作方式。

例如

<?php

session_start();

$db_connection = mysqli_connect('host','username','password','db');
$user_id = $_SESSION['userid']; //That is asssuming that you had gotten the user id on login

mysqli_query($db_connection, 'UPDATE page_views SET views_column=views_column+1 WHERE userid=$user_id');

?>
于 2012-10-22T18:15:36.153 回答
1

是的,您可以执行以下操作(如果您拥有用户必须访问的页面):

<?php 
$pointsForThisSite = 5;
include "points_adder.php";
?>

当 Points_adder 查看 $pointsForThisSite 是否已定义且 > 0 时,然后按照您的描述将点添加到数据库中。

那是你要找的吗?

于 2012-10-22T18:08:53.830 回答
1

创建一个 php 函数并在用户每次进入页面时调用它。您不需要 mysql 触发器,因为该操作位于网页上。

function add_points($user, $page){
//If users visits too many maybe you don't want to gave him some points.
//add points
}

并调用您要评分的页面中的函数

于 2012-10-22T18:10:05.250 回答
1

最不显眼的方法是在页面加载后使用 AJAX 调用。调用应该是一个包含文件,该文件执行数据库更新操作并返回 204 响应,以便访问者的浏览器不会等待响应内容。

对于 Apache 服务器;

header('HTTP/1.0 204 无内容');

header('Content-Length: 0', true);

header('Content-Type: text/html', true);

冲洗();

// 在这里更新表

于 2012-10-23T07:04:39.253 回答