gpt4 book ai didi

php - 如何为单个用户隐藏特定时间段的记录?

转载 作者:行者123 更新时间:2023-11-30 22:39:45 24 4
gpt4 key购买 nike

如何在点击时从数据库中隐藏检索到的行一段指定的时间,但只有一个用户感兴趣?

示例:用户 Nobody 打开站点,单击结果 XXXX 将在新页面中打开一个链接,现在站点 XXXX 结果已隐藏 10 分钟以防止再次单击。同时用户World加入站点,他可以看到所有记录(对用户Nobody的修改,不影响用户World)。

我正在考虑使用 $_SESSION 来存储信息,但它不会与所有结果发生冲突吗?

为了显示结果,我使用了一段时间将记录放入表中:

$SQL = "SELECT * FROM table_records";

$result = mysql_query($SQL);

while ( $rows = mysql_fetch_assoc($result) ) {

echo "<td><center>".$rows['id']."</center></td>";
echo "<td><center>".$rows['name']."</center></td>";
echo "<td><center>".$rows['link']."</center></td>";
echo "<td><center>".$rows['delay']."</center></td>";`

延迟是链接必须对点击它的用户“隐藏”的实际时间。

简而言之,我为我的用户制作了一个页面,其中显示了一组实用程序/附属机构的链接,但由于有 100 多个链接,他们会搞不清他们已经访问过哪些链接。

最佳答案

您可以使用 session 轻松跟踪哪些页面已被访问,哪些页面未被访问。

索引

<?php
session_start();

$sql = "SELECT * FROM table_records";

$result = mysql_query($sql);

$records = array();
while ($row = mysql_fetch_assoc($result)) {
$records[] = $row;
}
foreach ($records as $record) {
$now = new DateTime();
if (!array_key_exists($record, $_SESSION['records']) || ($now->getTimestamp()-$_SESSION['records'][$record]) <= 600) {
echo "<td><center>".$record['id']."</center></td>";
echo "<td><center>".$record['name']."</center></td>";
echo "<td><center>".$record['link']."</center></td>";
echo "<td><center>".$record['delay']."</center></td>";`
} else {
// link disabled
}
}
?>

您链接到的页面

<?php
session_start();
$now = new DateTime();

$id = $_GET['id'];

if (!array_key_exists($id, $_SESSION['records'])) {
$_SESSION['records'][$id] = $now->getTimestamp();
} elseif (array_key_exists($id, $_SESSION['records']) && ($now->getTimestamp()-$_SESSION['records'][$id]) >= 600) {
die("Your 10 minutes have expired");
}


?>
<!-- Page here -->

请记住,用户可以通过删除他们的 cookie 来篡改它。您可以通过在数据库中保存时间戳和/或使用登录保护您的网站来解决这个问题。共享编辑删除标志

注意 mysql_* 函数已弃用,不应再使用。看看 mysqli_*PDO

关于php - 如何为单个用户隐藏特定时间段的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31431313/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com