Javascript 在隐藏的HTML表单字段中填写提交日期&;在phpmailer确认屏幕上显示为HTML文本的时间

Javascript 在隐藏的HTML表单字段中填写提交日期&;在phpmailer确认屏幕上显示为HTML文本的时间,javascript,php,jquery,forms,phpmailer,Javascript,Php,Jquery,Forms,Phpmailer,我希望在隐藏字段中填写提交日期和时间,并在phpmailer确认页面上回显该字段的POST数据,以便他们可以打印出来作为提交证明(表格必须在截止日期之前提交)。我试着使用我在另一篇文章中找到的脚本,表单被处理,没有失败,但是日期/时间没有显示出来 HTML表单页面上的脚本 <head> <script language='JavaScript'> function getTime(){ var date = new Date(); var d = date.getUTCD

我希望在隐藏字段中填写提交日期和时间,并在phpmailer确认页面上回显该字段的POST数据,以便他们可以打印出来作为提交证明(表格必须在截止日期之前提交)。我试着使用我在另一篇文章中找到的脚本,表单被处理,没有失败,但是日期/时间没有显示出来

HTML表单页面上的脚本

<head>
<script language='JavaScript'>
function getTime(){
var date = new Date();
var d = date.getUTCDate();
var day = (d < 10) ? '0' + d : d;
var m = date.getUTCMonth() + 1;
var month = (m < 10) ? '0' + m : m;
var year = date.getUTCFullYear();
var h = date.getUTCHours();
var hour = (h < 10) ? '0' + h : h;
var mi = date.getUTCMinutes();
var minute = (mi < 10) ? '0' + mi : mi;
var sc = date.getUTCSeconds();
var second = (sc < 10) ? '0' + sc : sc;
var loctime = month + day + hour + minute + year + "." + second;

document.getElementById('localTime').value = loctime;
}
</script>

函数getTime(){
变量日期=新日期();
var d=date.getUTCDate();
风险值日=(d<10)‘0’+d:d;
var m=date.getUTCMonth()+1;
风险值月份=(m<10)‘0’+m:m;
var year=date.getUTCFullYear();
var h=date.getUTCHours();
变量小时=(h<10)‘0’+h:h;
var mi=date.getUTCMinutes();
变量分钟=(mi<10)‘0’+mi:mi;
var sc=date.getUTCSeconds();
第二个变量=(sc<10)‘0’+sc:sc;
变量loctime=月+日+小时+分钟+年+秒;
document.getElementById('localTime')。value=loctime;
}
形式动作

<form method="post" action="../cgi-bin/test_dummy.php" name="Work Record" autocomplete="off" onsubmit="getTime()">

表单中的输入字段

<input type="hidden" id="localTime" name="localTime" value="">

phpmailer脚本的结尾,我正在尝试获取在确认消息中显示的时间/日期

if(!$mail->Send()) {
   echo 'Message could not be sent.';
   echo 'Mailer Error: ' . $mail->ErrorInfo;
   exit;
}

$localTime = $_POST['localTime'];

echo '
    <html><img src="//images/pinktest.png" width="678" height="110">

<h2><b>'.$first_name.' '.$last_name.', '.$license_type.' '.$localTime.'</b></h2>
if(!$mail->Send()){
echo“无法发送消息”;
回显“邮件错误:”。$mail->ErrorInfo;
出口
}
$localTime=$\u POST['localTime'];
回声'
“.$first\u name.”、$last\u name.”、“$license\u type.”、$localTime.”

显然问题出在我实际的提交按钮上。现在一切正常。我理解为什么我不想这样做的担忧,但这是我所熟悉的,如果我们的任何用户甚至对如何编辑代码以更改发布内容有一点想法,我绝对会感到震惊。谢谢你的反馈。。。你们太棒了

你真的不应该使用这种方法。主要原因——永远不要向客户机索要你们能在服务器上得到的任何东西——只需使用服务器代码来获取当前时间。否则很容易忘记这个时间戳以供使用(例如,用户可以向您发送他想要的任何时间戳,这意味着这不能作为证据)。我同意@Dmitry。您可以在PHP中执行此检查。检查日期,如果失败,发送回消息。您可以将消息的哈希/摘要发送回提交表单的人(通过电子邮件),在db中记录相同的哈希/摘要(针对该表单提交/用户),并将哈希包含在发送的消息中。如果三者都匹配,那么它必须是有效的——按照“承诺计划”的思路