使用php脚本计算点击次数的问题

时间:2015-12-11 10:50:50

标签: php

我有一个带有按钮和php脚本的简单html格式的文件。此脚本应计算,单击按钮的次数。这是代码:

<? php
 if( isset($_POST['clickCount']) ) { 
incrementClickCount();
 }

function getClickCount()
{
    return (int)file_get_contents("index.html");
 }

 function incrementClickCount()
 {
$count = getClickCount() + 1;
file_put_contents("index.html", $count);
}
?>

<html>
<head>
<title>PHP</title>
</head>
<body>

<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<input type="submit" value="click" name="clickCount">
 </form>
 <div>Click Count: <?php echo getClickCount(); ?></div>

 </body>
 </html>

问题是,当我点击按钮时,它会给我一个错误:

 file:///C:/Web_8/%3C?php%20$_SERVER[%27PHP_SELF%27];%20?%3E

我确实使用php,所以我不知道,我的代码的哪一部分是错误的。希望有人告诉我,如何让它发挥作用。

3 个答案:

答案 0 :(得分:1)

如果您不使用数据库,请尝试使用会话或Cookie

if (isset($_POST['clickCount'])) {     
    if(isset($_SESSION['clickCount']){
        $_SESSION['clickCount'] = $_SESSION['clickCount'] + 1;
    } else {
        $_SESSION['clickCount'] = 1;
    }
}

但是一旦用户清除会话,会话就会丢失。

但我会告诉您使用databaseredis

答案 1 :(得分:0)

我不太了解您希望在脚本中执行的操作,但PHP文件必须由网络服务器提供。您不能只在浏览器中打开PHP文件。

答案 2 :(得分:0)

首先在目录中创建一个data.txt ..然后运行脚本..

建议:此类功能的名称是hitcounter ..您应该使用数据库来执行此操作

<?php

    if (isset($_POST['clickCount'])) {

        $data = (int)file_get_contents("data.txt");
        $data = $data + 1;
        file_put_contents("data.txt", $data);
    }

?>

<html>
<head>
<title>PHP</title>
</head>
<body>

<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" name="count" value="<?php echo $data;?>">
<input type="submit" value="click" name="clickCount">

 </form>
 <div>

 </body>
 </html>

如果您只是在玩PHP,那么您也可以试试

<?php

    if (isset($_POST['clickCount'])) {
        # code...
        $data = $_POST['count'];
        $data = $data + 1;
    }

?>

<html>
<head>
<title>PHP</title>
</head>
<body>

<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" name="count" value="<?php echo $data;?>">
<input type="submit" value="click" name="clickCount">

 </form>
 <div>

 </body>
 </html>