我正在尝试找出通过 php 提交表单的正确方法:
在某种程度上,我有两个问题:1 特别是关于我正在开发的网站,另一个是关于表单提交的一般性问题。
问题 1.我使用 php 作为我网站的模板。所以我有一个带有页眉和页脚的 index.php 页面,我的所有内容都是从 php 函数中提取的,如下所示:
<article id="main">
<?php
$page = $_GET['page'];
if(empty($page)){
$page = 'home';
}
$page.='.php';
if(file_exists("pages/$page")) {
include("pages/$page");
} else {
echo "$page no exist";
}
?>
</article>
这是我用于表单的代码,并在我的 index.php 页面的 head 标记中使用它:
<head>
<?php
if ($_POST['submit'] && $human == '4') {
if (mail ($to, $subject, $body, $from)) {
echo '<p>Your message has been sent!</p>';
} else {
echo '<p>Something went wrong, go back and try again!</p>';
}
} else if ($_POST['submit'] && $human != '4') {
echo '<p>You answered the anti-spam question incorrectly!</p>';
}
?>
</head>
以及html表单代码:
<form method="post" action="index.php">
<legend>Contact Us</legend>
<fieldset>
<label>Name</label>
<input name="name" placeholder="Type Here">
<label>Email</label>
<input name="email" type="email" placeholder="Type Here">
<label>Message</label>
<textarea name="message" placeholder="Type Here"></textarea>
<label>*What is 2+2? (Anti-spam)</label>
<input name="human" placeholder="Type Here">
</fieldset>
<input id="submit" name="submit" type="submit" value="Submit">
</form>
当我提交表单时,它会刷新并将我的回显消息放入我的 index.php?page=home 页面而不是我的 index.php?page=contact 页面。我如何让回声留在表单的同一页面上?(我已尝试更改表单的 action=" " 部分,但似乎无法使其正常工作)。
问题 2。一般来说,当我检查其他网页以查看其表单代码时,我到处都能看到:
try
{
for(var lastpass_iter=0; lastpass_iter < document.forms.length; lastpass_iter++)
{
var lastpass_f = document.forms[lastpass_iter];
if(typeof(lastpass_f.lpsubmitorig2)=="undefined")
{
lastpass_f.lpsubmitorig2 = lastpass_f.submit;
lastpass_f.submit = function(){
var form=this;
var customEvent = document.createEvent("Event");
customEvent.initEvent("lpCustomEvent", true, true);
var d = document.getElementById("hiddenlpsubmitdiv");
for(var i = 0; i < document.forms.length; i++)
{
if(document.forms[i]==form)
{
d.innerText=i;
}
}
d.dispatchEvent(customEvent);
form.lpsubmitorig2();
}
}
}
}
catch(e){}
有人熟悉上面的代码吗?如果是这样,是否有正确提交表单的通用脚本?
谢谢!