点击Php按钮


Php button click

我是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可以从会话访问存储的计数值