所以我有一个数组,可以随机向访问该网站的用户显示用户名。所以我想要做的是让它从已经看到用户名的ip登录显示的用户名,然后在不同的页面上显示日志,例如example.com/history,但只有看过那些用户名的ip才会看到该历史记录像每个IP有不同的历史。这是我的代码的样子:
<?php
$usrnames = file('https://www.example.com/usernames.txt');
$usernames = array_values(array_filter($usrnames, "trim"));
echo $usernames[array_rand($usernames)];
?>
很抱歉,如果我在解释这个问题上做得不好,请随时编辑。
答案 0 :(得分:1)
你可以使用PHP Sessions非常相似的东西。您可以在会话数组中保留一组已查看的用户名。这将通过设备浏览器而不是IP来跟踪它们。使用PHP会话将更准确地代表一个人#34;因为它对设备来说是独一无二的。
session_start();
$usrnames = file('https://www.example.com/usernames.txt');
$usernames = array_values(array_filter($usrnames, "trim"));
$chosen = $usernames[array_rand($usernames)];
echo $chosen;
$_SESSION['history'][] = $chosen;
然后在您要显示已查看用户名的页面上:
session_start();
var_dump($_SESSION['history']);
如果您想无限期地存储历史记录,则需要使用Cookie。
if (isset($_COOKIE['history'])) {
$history = json_decode($_COOKIE['history'], true);
}
$usrnames = file('https://www.example.com/usernames.txt');
$usernames = array_values(array_filter($usrnames, "trim"));
$chosen = $usernames[array_rand($usernames)];
echo $chosen;
$history[] = $chosen;
setcookie("history", json_encode($history), 2147483647, '/');
然后是您要显示历史记录的页面:
var_dump(json_decode($_COOKIE['history']), true);