我有多个页面。在每个页面上,我都有一个项目列表。所以在第1页,我有1-10项。在第2页,我有项目11-20。每页不是10个项目,但重点是第3页应该从第2页上最后一个数字后面的数字开始。
这些页面有一个简单的数字变量,因此每页的项目计数工作正常,但我希望将它设置在一个地方。
我是php的新手,所以我的问题主要是关于如何以及在哪里存储一个变量来跟踪多个文件中的这个项目?
期望的行为:
假设Page 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消失?
答案 0 :(得分:1)
<?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,则代码应该相同,只需进行一些更改即可。
答案 1 :(得分:0)
您可以使用会话查看http://www.php.net/manual/en/session.examples.basic.php以获取更多信息。
只要用户的cookie没有过期,放置在会话中的任何变量都将对用户持久存在。
答案 2 :(得分:-1)
在您访问/更改页面变量的网站的每个页面上,请在开头添加此代码:
<?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();
?>