Php 如何在没有数据库的情况下增加整数并保存以备将来使用
我想从网页中获取一个整数,在提交表单时递增,然后在网页的同一位置用新整数替换旧整数。更新的int应该对所有用户可见,而不仅仅是一台计算机。我正在使用PHP,似乎无法完成这个看似简单的任务 此外,由于我目前在连接数据库时遇到问题,因此无法使用数据库 这是我的代码,它是为我的研究生班级创建的一种无声拍卖Php 如何在没有数据库的情况下增加整数并保存以备将来使用,php,int,increment,Php,Int,Increment,我想从网页中获取一个整数,在提交表单时递增,然后在网页的同一位置用新整数替换旧整数。更新的int应该对所有用户可见,而不仅仅是一台计算机。我正在使用PHP,似乎无法完成这个看似简单的任务 此外,由于我目前在连接数据库时遇到问题,因此无法使用数据库 这是我的代码,它是为我的研究生班级创建的一种无声拍卖 <?php $nameB = $priceB = $numbB = $emailB = false; if($_SERVER["REQUEST_METHOD"] == "POST") {
<?php
$nameB = $priceB = $numbB = $emailB = false;
if($_SERVER["REQUEST_METHOD"] == "POST") {
if(empty($_POST['name']))
{$nameERR = "Name is required"; $nameB = true;}
if(empty($_POST['price']))
{$priceERR = "A bet amount is required"; $priceB = true;}
if(empty($_POST['number']))
{$numERR = "A bet amount is required"; $numbB = true;}
if(empty($_POST['email']))
{$emailERR = "A bet amount is required"; $emailB = true;}
}
if($_POST && $nameB == false && $priceB == false && $numbB == false && $emailB == false) {
$name = $_POST['name'];
$numb = $_POST['number'];
$email = $_POST['email'];
$betAmount = $_POST['price'];
}
$filename = 'counter.txt';
if(!file_exists($filename)) {
$bids = 0;
}
else
$bids = file_get_contents ($filename);
$bids++;
file_put_contents($filename, $bids);
function getBids() {
if(!file_exists($filename)) {
$bids = 0;
}
else
$bids = file_get_contents ($filename);
}
?>
<html>
<body>
<form>
</form>
Number of Bids:
<br>
<?php echo getBids(); ?>
</html>
投标数量:
表格上实际上有内容,但与问题无关。唯一相关的是发送确认电子邮件的submit按钮。按下该键时,计数器应增加1
我希望我解释得足够好。用这种方式试试
session_start();
if (isset($_POST['SOME_THING'])) {
if ( isset($_SESSION['int']) ) {
$_SESSION['int'] = $_SESSION['int']+1;
} else {
$_SESSION['int'] = 1;
}
}
在表单发布的位置添加此代码您可以使用文件存储计数器,如下所示:
//after form submit
$filename='counter.txt';
if(!file_exists($filename)){
$counter = 0 ;
}
else
$counter = file_get_contents ($filename);
$counter++;
file_put_contents($filename, $counter); //save the new counter ( +1 )
if(!file_exists($filename)){
$counter = 0 ;
}
else
$counter = file_get_contents ($filename);
function getBids() {
$filename='counter.txt'; // ADD THIS LINE
if(!file_exists($filename)) {
$bids = 0;
}
else
$bids = file_get_contents ($filename);
return $bids; //ADD THIS LINE
}
每隔一次,当你想在任何地方使用这个号码时,就这样得到它:
//after form submit
$filename='counter.txt';
if(!file_exists($filename)){
$counter = 0 ;
}
else
$counter = file_get_contents ($filename);
$counter++;
file_put_contents($filename, $counter); //save the new counter ( +1 )
if(!file_exists($filename)){
$counter = 0 ;
}
else
$counter = file_get_contents ($filename);
function getBids() {
$filename='counter.txt'; // ADD THIS LINE
if(!file_exists($filename)) {
$bids = 0;
}
else
$bids = file_get_contents ($filename);
return $bids; //ADD THIS LINE
}
更新:您的getBids()
函数必须返回如下值:
//after form submit
$filename='counter.txt';
if(!file_exists($filename)){
$counter = 0 ;
}
else
$counter = file_get_contents ($filename);
$counter++;
file_put_contents($filename, $counter); //save the new counter ( +1 )
if(!file_exists($filename)){
$counter = 0 ;
}
else
$counter = file_get_contents ($filename);
function getBids() {
$filename='counter.txt'; // ADD THIS LINE
if(!file_exists($filename)) {
$bids = 0;
}
else
$bids = file_get_contents ($filename);
return $bids; //ADD THIS LINE
}
请首先管理与数据库的连接,以便成功回答您的问题。如果已连接到数据库,请添加以下代码:
<?php
$conn; // connection link to your database
$query = mysqli_query($conn,"SELECT max(int) as int FROM tbl_table") or die("Error" . mysqli_error());
$row = mysqli_fetch_assoc($query);
$result = $row['int'] + 1;
echo $result;
?>
希望这有帮助。如果没有数据库,您需要将您的int保存到文件中,然后在重新加载页面时,在int中添加1并将其保存回文件。诚实地解决您的数据库问题,将使生活更加轻松。$int++;echo$int;管理变量状态取决于您我认为用户也希望为其他访问者保存值,会话仅为单个访问者保留该值。我澄清了该问题,说明我也想为其他用户设置该值。该问题是关于“不使用数据库”的。我更新了该问题,以便您可以使用它来显示您发布的代码片段的放置位置。我试过你是怎么说的,但什么也没发生。这仍然不起作用,页面上的数字没有更新,文本文件中的数字在我每次刷新页面时都会增加,不是每次提交表单时都会增加。注意:你没有定义
$filename
,请再次查看更新,查找添加此行好的,现在我有了另一个名为addBids()的函数,我将把它放入表单中的onsubmit函数中。但是每次我刷新页面时,计数器都会不断增加,而不是实际提交表单。如果($_POST){addBids();}