我想从网页中获取一个整数,在提交表单时递增它,然后将旧的int替换为网页上相同位置的新int。更新的int应该对所有用户可见,而不仅仅是一台计算机。我正在使用PHP,似乎无法完成这个看似简单的任务。
由于我目前在连接数据库方面遇到问题,因此无法使用数据库。
这是我的代码,它是我为我的毕业班创作的一种无声拍卖。
<?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>
表单实际上有内容,但与问题无关。唯一相关的是提交按钮,它会发送一封确认电子邮件。当按下时,计数器应该增加1。
我希望我能够很好地解释这一点。
答案 0 :(得分:1)
以这种方式尝试
session_start();
if (isset($_POST['SOME_THING'])) {
if ( isset($_SESSION['int']) ) {
$_SESSION['int'] = $_SESSION['int']+1;
} else {
$_SESSION['int'] = 1;
}
}
将此代码添加到表单发布的位置
答案 1 :(得分:0)
您可以使用文件存储计数器,如下所示:
//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);
更新:您的getBids()
函数必须返回如下值:
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
}
答案 2 :(得分:0)
请首先管理您与数据库的连接,以便成功回答您的问题。如果您已连接到数据库,请添加以下代码:
<?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;
?>
希望这会有所帮助。