【发布时间】:2019-11-06 11:38:20
【问题描述】:
用户正在提交硬币,当他们提交时,我希望将日期加载到我用来跟踪提交时间的输入字段中。该日期将记录在 mySQL 数据库中。截止日期设置为即将到来的双月星期五(例如截止日期为6月14日和6月28日。如果今天提交,则截止日期为6月28日。如果提交是在6月30日完成,则截止日期日期是 7 月 12 日。我包含了整个表格,以便您了解更大的情况。请随时进行调整。非常感谢任何帮助。
我可以调用 javascript 函数并让用户从日历中选择日期,但这不是我需要的。 Javascript - get a date from an HTML input 但我不确定如何将 +14 天连接到下一个截止日期。
CoinSubmission.html
<form action="AdminCoinSub_Code.php" method="POST">
<h1 id="litheader">Coin Submission</h1>
<div class="inset">
<input type="text" list="Store" name="Store" placeholder="Store">
<datalist id="store">
<option value="Causeway Bay">
<option value="Wan Chai">
<option value="Lai Chi Kok">
<option value="Tai Po">
</datalist>
<input type="text" list="Position" name="Position" placeholder="Position">
<datalist id="position">
<option value="1">
<option value="2">
<option value="3">
<option value="4">
</datalist>
<p>
<input type="text" name="Nickame" id="Nickname" placeholder="Nickname">
</p>
<p>
<input type="text" name="Contact" id="Contact" placeholder="Contact">
</p>
<p>
<input type="text" name="MachineCount" id="Machine Count" placeholder="Machine Count">
</p>
<p>
<input type="text" name="CutOffDate" id="CutOffDate" placeholder="Cut Off Date">
</p>
<p>
<input type="text" name="Coins" id="Coins" placeholder="Coins">
</p>
<p>
<input type="file" type="text" name="location" accept="image/*">
<div class="btnConfirm">
<input class="loginLoginValue" type="hidden" name="" value="" />
</div>
</div>
<div class="btnConfirm">
<input type="submit" onclick="location.href='CoinSubmission.php';" name="Submit" value="Confirm">
</div><br><br>
<div class="wrapper2">
<nav>
<ul>
<li><a href="AdminSubmission.php" class="active">SUBMISSION</a></li>
<li><a href="OccupancyListAdmin.php">OCCUPANCY</a></li>
<li><a href="#">ANALYTICS</a></li>
<li><a href="#">SEARCH</a></li>
</ul>
</nav>
</div>
</form>
AdminCoinSub_Code.php
<?php {
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "administrator_logins";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// prepare sql and bind parameters
$stmt = $conn->prepare("INSERT INTO admincoinsubmission (Store, Position, Nickname, Contact, MachineCount, CutOffDate, Coins, location)
VALUES ('$_POST[Store]','$_POST[Position]','$_POST[Nickame]','$_POST[Contact]','$_POST[MachineCount]','$_POST[CutOffDate]','$_POST[Coins]','$_POST[location]')");
$stmt->bindParam(':Store', $Store);
$stmt->bindParam(':Position', $Position);
$stmt->bindParam(':Nickname', $Nickname);
$stmt->bindParam(':Contact', $Contact);
$stmt->bindParam(':MachineCount', $MachineCount);
$stmt->bindParam(':CutOffDate', $CutOffDate);
$stmt->bindParam(':Coins', $Coins);
$stmt->bindParam(':location', $location);
$stmt->execute();
echo "Success";
}
catch(PDOException $e)
{
echo "Error: " . $e->getMessage();
}
$conn = null;
}
?>
When the page loads the date row in the coin submission form should display the cutoffdate.
date = (current date + cutoffdate)
【问题讨论】:
-
您仍然容易受到 sql 注入的影响。您需要将 :Store 而不是 $_POST[Store] 放入您的 sql 中。然后去掉绑定中的 ':"。
-
您在执行 SQL 准备语句时出错了!在 SQL 中使用“:placeholder”(“:Store”、“:location”等),您所做的是将未经验证的 POST 数据注入到查询中