跨多个样式文件的 PHP 计数器变量


php counter variable across multiple form files

我有多个页面。 在每一页上,我都有一个项目列表。 所以在第 1 页上,我有项目 1-10。 在第2页上,我有项目11-20。 不是每页十个项目,但关键是第 3 页应该从第 2 页上最后一个数字后面的数字开始。

这些页面有一个简单的数字变量,因此每页的项目计数都可以正常工作,但我希望它设置在一个地方。

我是 php 的新手,所以我的问题主要是关于如何以及在何处存储一个变量来跟踪多个文件上的此项目计数?

期望的行为:

假设第 1

页有 5 个项目,而第 1 页上的计数器变量将它们设置为正确编号:

1.apple
2.grape
3.pear
4.banana
5.orange

但是假设我需要去除香蕉。 当我这样做时,第 1 页上的当前计数器工作正常并设置为:

1.apple
2.grape
3.pear
4.orange

但在第 2 页上,计数器变量设置为 6,并且具有:

6.mango
7.peach
8.watermelon

我想设置持久变量,以便当我删除水果时,它不仅会更新已删除水果所在的当前页面,还会更新之后的每个页面。因此,它将第 2 页调整为:

5.mango
6.peach
7.watermelon

会话会使该更改永久化,还是会随着用户的 cookie 而消失?

<?php
//On the first line of your PHP code
session_start();
//then store your variable in the SESSION array.
$_SESSION['yourCountersNameHere'] = 56;
//You should now have acces to its value from page to page like this
echo $_SESSION['yourCountersNameHere'];
//Should display 56.
?>

您也可以将其存储在数据库中,然后在每页上签入数据库。

//to connecte
$m_DB = new PDO("mysql:host=".$Host.";dbname=".$DBName."; charset=utf8", $Login, $Password);
//check value in DB
$query = "SELECT * FROM table";
$stmt = $m_DB->prepare($query);
//$param here is empty but normaly it would be a array for all your params like this:
//$param = array('rowname'=>$value, 'rowName2'=>$value2, .........and so on for all the $params you use.);
$getCounter = $stmt->execute($param);
while($Counter = $getCounter->fetch())
{
    //Display the value in your MySQLDB.
    echo $Counter['table.rowName'];
}

如果您使用MYSQL以外的其他数据库类型,则对于您必须进行的一些更改,代码应该是完全相同的。

您可以使用

会话查看 http://www.php.net/manual/en/session.examples.basic.php 以获取更多信息。

只要

用户的 cookie 不过期,放置在会话中的任何变量都将对用户持久存在。

在将访问/更改页面变量的网站的每个页面上,在开头添加以下代码:

<?php
//On the very first line of each file using the variable
session_start();

然后,有关访问/设置,请参阅以下内容:

<?php
session_start();
// store session data
$_SESSION['views']=1;
?>
<html>
<body>
<?php
//retrieve session data
echo "Pageviews=". $_SESSION['views'];
?>
</body>
</html>

此代码将从会话变量"views"中吐出一个

要检查是否已设置某些内容,请执行以下操作:

<?php
session_start();
if(isset($_SESSION['views']))
    //do something

清除会话变量:

<?php
session_start();
if(isset($_SESSION['views']))
  unset($_SESSION['views']);
?>

删除会话:

<?php
session_destroy();
?>

宇宙中最好的网站 : http://www.w3schools.com/php/php_sessions.asp