我是php的新手,我对以下问题感到困惑:我有一个名为BtnAdd的按钮,它被一个表单标签(POST)包围
现在我尝试每次点击+1。这是我的代码:
$counter = 0;
if (isset($_POST['BtnAdd']))
{
$counter++;
}
echo $counter
我的问题是,每次我点击按钮,它只会返回1,但它永远不会上升
如果你有任何想法,请发帖。
您需要将对"3"的引用存储在某个地方,它不是一个幻数,我认为它不会被硬编码。您当前的逻辑流程是这个
- 单击表单上的按钮
- 脚本处理表单将变量分配给零
- 如果存在按钮数据,则脚本递增
$counter
,从零到一
您应该做的是将$counter
替换为从某处读取的数字(会话、文件、数据库)。
以下是它的一些存储选项:
- 会话:易于使用,易于更新,易于阅读,但只会持续到浏览器关闭。教程:http://www.w3schools.com/php/php_sessions.asp
- 平面文件:相对易于使用,依赖于文件和文件夹权限,不需要数据库。教程:http://www.webdesign.org/web-programming/php/easy-flat-file-hit-counter.9887.html
- 数据库:相对易于使用,如果您需要在浏览器窗口关闭后存储此数字,则应使用该数据库。教程:https://defuse.ca/php-hit-counter.htm
下面是一个如何使用会话的快速示例:
<?php
session_start();
if(!isset($_SESSION['counter']))
$_SESSION['counter'] = 0; // create variable if doesn't exist
if(isset($_POST['BtnAdd'])) {
$_SESSION['counter']++;
}
echo $_SESSION['counter'];
?>
- 这至少会在浏览器窗口仍然打开时增加您的计数器
当您提交表单时,在计数器之前的处理页面中,每次发布时都会将计数器初始化为值0。您的计数器值不会存储在任何位置。您必须存储当前值,以便下次时增加它
session_start();
$counter = 0;
if(isset($_SESSION['count'])){
$counter=$_SESSION['count'];
}
if (isset($_POST['BtnAdd']))
{
$counter++;
$_SESSION['count']=$counter;
}
echo $counter
这里它存储在会话中,u可以从会话访问存储的计数值