我有一个.php脚本来计算按钮的点击次数并将它们放入.txt文件中,这里都很好,但我现在只能处理一次。如果,比方说,我制作两个按钮,它们将显示相同的点击次数。
我需要脚本单独使用foreach按钮...
PHP:
if( isset($_POST['clicks']) ) {
incrementClickCount();
}
function getClickCount()
{
return (int)file_get_contents("clickit.txt");
}
function incrementClickCount()
{
$count = getClickCount() + 1;
file_put_contents("clickit.txt", $count);
}
HTML:
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<input type="submit" value="click me!" name="clicks">
</form>
<div>Click Count: <?php echo getClickCount(); ?></div>
答案 0 :(得分:4)
我认为你应该尝试不同的方法。首先,保存文件中的点击次数比数据库慢,因此您应该使用数据库而不是文件。
然后,您可以创建一个包含button_id
字段和相应click_number
字段的表格。因此,如果单击带有id="1"
的按钮,则会为该按钮增加click_number
值。
答案 1 :(得分:1)
您可以为第二个按钮指定另一个名称,并将数据保存在另一个文件中吗?
另一种可能性是通过使用例如,将所有按钮信息保存在同一文件中。 explode
和implode
[编辑:示例]
if( isset($_POST['clicks'])&& isset($_POST['buttonnumber']))
{
incrementClickCount($_POST['buttonnumber']);
}
function getClickCount($num=0)
{
$clickinfo = explode(":",file_get_contents("clickit.txt"));
return (int)$clickinfo[$num];
}
function incrementClickCount($num=0)
{
$clickinfo = explode(":",file_get_contents("clickit.txt"));
$clickinfo[$num]++;
file_put_contents("clickit.txt", implode(":",$clickinfo));
}
答案 2 :(得分:0)
如果两个按钮调用相同的功能:
function incrementClickCount()
{
$count = getClickCount() + 1;
file_put_contents("clickit.txt", $count);
}
当然,你只会得到一个柜台。
您可以将按钮设置为另一个调用其他功能的表单,或执行以下操作:
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<input type="submit" value="click me!" name="clicks">
<input type="submit" value="click me!" name="clicks2">
</form>
<div>Click Count: <?php echo getClickCount(); ?></div>
if( isset($_POST['clicks']) ) {
incrementClickCount("button1");
}
if( isset($_POST['clicks2']))
{
incrementClickCount("button2");
}
function incrementClickCount($button)
{
if($button == "button1")
{
$count = getClickCount() + 1;
file_put_contents("clickit.txt", $count);
}
elseif($button = "button2")
{
// other counter
}
}
答案 3 :(得分:0)
你必须使用会话。首先设置会话变量初始值1,如果它尚未初始化。初始化后,从第二次点击开始,每次点击都会计算+1,因为它将满足else语句
<?php
session_start();
?>
<html>
<head></head>
<body>
<form method="post" action="submit.php">
<input type="submit" name="count" value="Start counting" />
</form>
<?php
if(isset($_POST['count'])){
if(!($_SESSION['count'])){
$_SESSION['count'] = 1;
}else{
$count = $_SESSION['count'] + 1;
$_SESSION['count'] = $count;
}
}
echo $_SESSION['count'];
?>
</body>
</html>