我有以下Index.php
文件的代码。每当用户点击HTML页面中的链接时,它就会重定向到Index.php
页面。此页面随机重定向到三个不同的页面,即:" index_control.php" ," index_non_intrusive.php" ," index_intrusive.php"。 但是,现在,我想做的就是:当用户首先点击链接时,它应该导航到数组中的第一个链接(index_control.php),当第二个用户点击链接时,数组的第二个链接(index_non_intrusive.php)等等。当第四个用户点击链接时,它应该再次从数组重定向到第一个链接(index_control.php)。所以序列导航不是随机的。如果有人可以提供一些暗示或帮助来实现这一点,那就太好了。
Index.php
<html>
<head>
<title>
abc
</title>
</head>
<?php
$links= array("http://abc/index_control.php","http://abc/index_non_intrusive.php","http://abc/index_intrusive.php");
$randomLink = $links[rand(0, count($links)-1)];
header("Location: {$randomLink}");
exit();
?>
<html>
答案 0 :(得分:1)
您必须在某处保存点击次数,在我使用简单JSON file
的示例中。我使用jQuery
来监听点击事件并将数据发送到PHP
。
<?php
if(isset($_POST['clicked'])){
$links = array(
"link1",
"link2",
"link3",
);
$clicked_count = json_decode(file_get_contents('test.json'),true)['clicked'];
$clicked_count = ($clicked_count >= 2) ? 0 : $clicked_count+1;
file_put_contents('test.json', json_encode(['clicked'=> $clicked_count]));
header("location: {$links[$clicked_count]}");
exit;
}
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<a href="#" id="button">Click</a>
</body>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>
<script type="text/javascript">
$(function(){
$('#button').click(function(){
// first parameter is your php file e.g. something.php, leave it blank if you use the same file
$.post("", {clicked:true});
});
});
</script>
</html>
{
"clicked":1
}
答案 1 :(得分:1)
由于“会话是针对单个会话ID存储个人用户数据的简单方法”(在@Oliver的link中找到),我认为会话不是均匀分发您的会话的工具(不同!)用户使用不同的URL。您将需要一个全局可访问的“变量”。一个非常简单的方法可以是引用存储在文件中的整数值,并在每次使用后递增,如
<?php
$f="filename_for_integer_value.txt"; // make sure you have write access!
$links= array("http://abc/index_control.php",
"http://abc/index_non_intrusive.php",
"http://abc/index_intrusive.php");
$n=file_get_contents($f);
file_put_contents($f,($n+1)%count($links));
header("Location: {$links[$n]}");
exit();
?>