単純な送信フォームを作成するだけでは、機能しないようです。
奇妙なエラーも報告されません。
Php.iniを確認したところ、すべて問題ないようです。
HTML:
<form id="submit-form" action="receiving.php" method="POST">
<h3>Submit a Link</h3>
<fieldset>
<table>
<tr>
<td><label for="name">You</label></td>
<td><input id="name" name="name" type="text" placeholder="Your Twitter or Blog ect." /></td>
</tr>
<tr>
<td><label for="submit-links">Link(s)</label></td>
<td><input id="sumbit-links" name="submit-links" type="text" placeholder="" required="" /></td>
</tr>
<tr>
<td><input name="submit" type="submit" value="SUBMIT" /></td>
</tr>
</table>
</fieldset>
</form>
receive.php:
<?php
error_reporting(-1);
$name = $_POST['name'];
$submit-links = $_POST['submit-links'];
if(isset($_POST['submit'])){
$from_add = "[email protected]";
$to_add = "[email protected]";
$subject = "Your Subject Name";
$message = "Name:$name \n Sites: $submit-links";
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion()
if(mail($to_add,$subject,$message,$headers)){
$msg = "Mail sent";
}
}
print "<p>Thanks $name</p>";
?>
どんな助けでも大歓迎です:)
フォームにいくつか問題がありました。この回答を投稿する前に、私はテスト済みでした。
_Jeremy Miller
_が彼の回答(_+1
_ Jeremy btw)で指摘しているように、変数でハイフンを使用することは無効です。代わりにアンダースコアを使用してください。
また、'X-Mailer: PHP/' . phpversion()
の後に終了セミコロンがありません。ちなみに、これは(セキュリティ目的で)使用すべきではありませんが...どうしても使用したい場合は、次のように追加してください。 'X-Mailer: PHP/' . phpversion();
-以下を参照[〜#〜] edit [〜#〜](推奨される使用法)。
この_$msg = "Mail sent";
_は、変数をテキストに割り当てるだけなので、送信が成功した後、メッセージ「_Mail sent
_」を出力しません。以下に追加した_echo it
_する必要があります。それはエラーではありませんが、使用しないのであればなぜそれを持っているのですか。 (ウィンク)。
HTMLフォーム
_<form id="submit-form" action="receiving.php" method="POST">
<h3>Submit a Link</h3>
<fieldset>
<table>
<tr>
<td><label for="name">You</label></td>
<td><input id="name" name="name" type="text" placeholder="Your Twitter or Blog ect." /></td>
</tr>
<tr>
<td><label for="submit_links">Link(s)</label></td>
<td><input id="sumbit_links" name="submit_links" type="text" placeholder="" required="" /></td>
</tr>
<tr>
<td><input name="submit" type="submit" value="SUBMIT" /></td>
</tr>
</table>
</fieldset>
</form>
_
[〜#〜] php [〜#〜]
_<?php
error_reporting(-1);
$name = $_POST['name'];
$submit_links = $_POST['submit_links'];
if(isset($_POST['submit']))
{
$from_add = "[email protected]";
$to_add = "[email protected]";
$subject = "Your Subject Name";
$message = "Name:$name \n Sites: $submit_links";
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
if(mail($to_add,$subject,$message,$headers))
{
$msg = "Mail sent";
echo $msg;
}
}
print "<p>Thanks $name</p>" ;
?>
_
PHPファイルに直接アクセスすると、現在の条件文は次のエラーをスローするため、次のPHPを使用することをお勧めします。これが発生する可能性があります。
さらに、'X-Mailer: PHP/' . phpversion()
を使用すると、使用しているPHPバージョン)がわかります。
私はそれを良い権限で持っています、これを使用することはセキュリティホールです。彼の名前は今私から逃れていますが、覚えたら追加します。
注意:未定義のインデックス:4行目の...の名前
注意:未定義のインデックス:5行目の...のsubmit_links
if(isset($_POST['submit']))
条件文内に変数を設定しました。
_<?php
error_reporting(-1);
if(isset($_POST['submit']))
{
$name = $_POST['name'];
$submit_links = $_POST['submit_links'];
$from_add = "[email protected]";
$to_add = "[email protected]";
$subject = "Your Subject Name";
$message = "Name:$name \n Sites: $submit_links";
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n";
if(mail($to_add,$subject,$message,$headers))
{
$msg = "Mail sent";
echo $msg;
}
print "<p>Thanks $name</p>" ;
}
// else conditional statement for if(isset($_POST['submit']))
else {
echo "Sorry, you cannot do that from here. Please fill in the form first.";
}
?>
_
$submit-links
は有効な変数名ではありません。すべてのインスタンスを$submit_links
に切り替えます
アクションが間違っている可能性があります。たとえば、htaccess
がhttp
ではなくhttps.www
にリダイレクトする場合、次の例では$_POST
は表示されません。
<?php $formAction = 'http://somedomain.com/receiving.php'; ?>
<form method="post" action="<?php echo $formAction; ?>" >
//$_POST will be empty
しかし、あなたが使用すればそれは動作します
<?php $formAction = 'https://www.somedomain.com/receiving.php'; ?>
<form method="post" action="<?php echo $formAction; ?>" >
//$_POST will contain variables