PHP経由でフォームを送信する適切な方法を見つけようとしています:
部分的には 2 つの質問があります。1 つは特に私が取り組んでいるサイトに関するもので、もう 1 つはフォーム送信全般に関するものです。
質問 1. Web サイトのテンプレートとして php を使用しています。したがって、ヘッダーとフッターを含む1つの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=contact ページではなく index.php?page=home ページに表示されます。エコーがフォームの同じページにとどまるようにするにはどうすればよいですか? (フォームの action=" " 部分を変更しようとしましたが、うまくいかないようです)。
質問 2.一般に、フォーム コードを確認するために他の Web ページを調べていると、どこにでも次のようなものがあります。
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){}
上記のコードに精通している人はいますか?もしそうなら、フォームを適切に送信するための一般的なスクリプトはありますか?
ありがとう!