Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使预填充的PHP表单在页面加载时提交_Javascript_Php_Forms - Fatal编程技术网

Javascript 使预填充的PHP表单在页面加载时提交

Javascript 使预填充的PHP表单在页面加载时提交,javascript,php,forms,Javascript,Php,Forms,我已经构建了一个工作的PHP表单,它包含5个字段,这些字段由URL查询字符串预先填充 查询字符串URL位于HTML电子邮件的超链接上,要求收件人单击此处进行预订。我已经得到了他们的详细信息,因为我已经向他们发送了电子邮件,所以表格会预先填充 如何让表单在页面加载时立即提交并重定向到感谢页面 以下是我的表格目前的样子:- <form name="frm" id="frm" method="POST"> <input name="firstname" id="firstname"

我已经构建了一个工作的PHP表单,它包含5个字段,这些字段由URL查询字符串预先填充

查询字符串URL位于HTML电子邮件的超链接上,要求收件人单击此处进行预订。我已经得到了他们的详细信息,因为我已经向他们发送了电子邮件,所以表格会预先填充

如何让表单在页面加载时立即提交并重定向到感谢页面

以下是我的表格目前的样子:-

<form name="frm" id="frm" method="POST">

<input name="firstname" id="firstname" type="text" value="<?php echo ((isset($_GET["firstname"]))?htmlspecialchars($_GET["firstname"]):""); ?>" />

<input name="lastname" id="lastname" type="text" value="<?php echo ((isset($_GET["lastname"]))?htmlspecialchars($_GET["lastname"]):""); ?>" />

<input name="email" id="email" type="text" value="<?php echo ((isset($_GET["email"]))?htmlspecialchars($_GET["email"]):""); ?>" />

<input name="company" id="company" type="text" value="<?php echo ((isset($_GET["company"]))?htmlspecialchars($_GET["company"]):""); ?>" />

<input name="contactid" id="contactid" type="text" value="<?php echo ((isset($_GET["contactid"]))?htmlspecialchars($_GET["contactid"]):""); ?>" />


    <input type="submit" name="Submit" value="submit" />
</form>
这是整个页面的粘贴箱:


感谢您尝试使用:
document.getElementById('frm').submit()
而不是
document.getElementById('frm1').submit()

并使其在页面加载后执行:

window.onload=function(){
  document.getElementById('frm').submit();
}

好的,那么基本上你一直在尝试通过url获取信息,将它们插入表单中,然后提交表单,这样你就可以发送电子邮件了。这一切都很好,尽管你只是让事情变得更难。 你需要做的是删除表单(我们其实不需要这个),而不是处理所有你想从表单中获取的$\u POST信息,你要用你已经从url中获取的$\u get数组来完成这项工作,在一天结束时,情况完全相同,因为您在表单中插入的信息只是您从url中获得的信息

因此,如果您按以下方式更改此选项,您的脚本将正常工作:

//Get the submitted data
$firstname = cleanText($_GET['firstname']);
$lastname = cleanText($_GET['lastname']);
$email = cleanText($_GET['email']);
$company = cleanText($_GET['company']);
$contactid = cleanText($_POST['contactid']);
下面是将要发生的事情:用户将在一个链接上使用clic,您的脚本将获取$\u get数组,处理它,根据该数组发送电子邮件,然后将用户发送到thankyou.php页面。请注意,如果在thankyou.php中插入脚本,可以提高脚本的效率并为用户节省一些时间


最后但并非最不重要的是,我想向你们指出,这不是很好的做法,得到一个url提交发送电子邮件。。。你可能最终让一个机器人通过这个url发送大量电子邮件,并将你的电子邮件列入黑名单。如果我是你,我要么控制ip,确保每10分钟发送一封邮件,要么在最适合你的时间发送一封邮件,要么在页面中添加验证码,这样用户就需要证明他是一个真正想浪费时间发送邮件的人。

为什么你需要此表单?你为什么不直接进入你的信息处理页面(如果不是同一个页面呢?)。您可以使用$\u GET数组来处理$\u POST数组,而不是处理$\u POST数组。我自己看不到错误,因为当我尝试该页面时,该页面处于自动循环中,但这里有一个页面:当然是@bastienbot,您知道我需要在代码中更改什么吗?我现在已经用我的代码更新了pastie链接。谢谢!当然您正在提交到同一个页面,因此该函数会反复执行。。。如果知道表单已提交,则应防止调用submit()函数。
//Get the submitted data
$firstname = cleanText($_GET['firstname']);
$lastname = cleanText($_GET['lastname']);
$email = cleanText($_GET['email']);
$company = cleanText($_GET['company']);
$contactid = cleanText($_POST['contactid']);