ホームページ >バックエンド開発 >PHPチュートリアル >同じページで PHP を使用して HTML フォームから電子メールを送信する方法

同じページで PHP を使用して HTML フォームから電子メールを送信する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-18 17:13:14817ブラウズ

How to Send Emails from an HTML Form Using PHP on the Same Page?

同じスクリプトで送信時に HTML フォームから PHP を使用して電子メールを送信する

このスクリプトを使用すると、次を使用して HTML フォームから電子メールを送信できます。別のページまたはスクリプトに切り替えることなく PHP を実行します。

コード説明:

<?php
if (isset($_POST['submit'])) {
    $to = $_POST['email'];
    $from = "[email&#160;protected]";
    $headers = "From:" . $from;

    $message = "This is a message from an HTML form.\n\n";
    foreach ($_POST as $field => $value) {
        $message .= ucfirst($field) . ": " . $value . "\n";
    }

    if (mail($to, "Message from HTML Form", $message, $headers)) {
        echo "Mail Sent.";
    } else {
        echo "Failed to send mail.";
    }
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>HTML Form</title>
</head>
<body>

<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">
    <label for="name">Name:</label>
    <input type="text">

このコードでは、mail_handler.php スクリプトは HTML フォームの一部です。フォームが送信されると、データは同じスクリプトによって処理され、mail() 関数を使用して電子メールが送信されます。これにより、ユーザーは同じページに留まり、シームレスなエクスペリエンスが提供されます。

追加情報:

  • フォームのデフォルトのアクションは、フォーム自体にデータを POST することです。 。アクションを「」または同じ PHP スクリプトとして指定すると、データは処理のために同じページに送信されます。
  • コード内の foreach ループは、$_POST 配列を反復処理し、電子メール メッセージの本文を構築します。
  • htmlspecialchars() 関数は、フィールド内の特殊文字をエスケープすることでクロスサイト スクリプティング (XSS) 攻撃を防ぎます。入力します。

以上が同じページで PHP を使用して HTML フォームから電子メールを送信する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。