0

メールを HTML で送信したいのですが、このメール内で PHP フォームからデータを渡す必要があります。電子メールは HTML 電子メールとして正常に送信されますが、PHP VARIABLE から渡されたデータは表示されません。

$name = "PHP TEXT";
$headers = "From: " ."mail@example.com" . "\r\n";
$headers .= "Reply-To: ". "mail@example.com" . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

$message = "<html><body><h1>HTML TEXT <?php echo $name; ?></h1></body></html>";

$email_to = 'example@mail.com'; //the address to which the email will be sent
$subject = "test";
$email    =   "example@mail.com";

if (mail($email_to, $subject, $message, $headers)) {
    echo 'sent'; // success      
} else {
    echo 'failed'; // failure    
}
4

5 に答える 5

5

この行:

$message = "<html><body><h1>HTML TEXT <?php echo $name; ?></h1></body></html>";

次のようになります。

$message = "<html><body><h1>HTML TEXT $name </h1></body></html>";

また

$message = "<html><body><h1>HTML TEXT " . $name . " </h1></body></html>";

<?phpまた、 ?>その中のテキストが HTML ではなく PHP コードであることを指定するために使用されます。これについての詳細は次のとおりです

しかし、すでに PHP コード ブロックにいるため、別の PHP ブロックを指定する代わりに、文字列連結を使用する必要があります。

于 2012-12-25T09:47:41.060 に答える
2

スクリプトでフォーム値を使用していません。$_POST または $_GET がどのように機能するか知っていますか?

$name をハードコードされた値に設定しているため、使用するときは常にその値になります。また、PHP で文字列を作成しているため、この行から php をエコーする必要はありません。すなわち(二重引用符を使用しているため)

$message = "<html><body><h1>HTML TEXT $name;</h1></body></html>";

したがって、HTML フォームを投稿できる場合、 $name の割り当てはおそらく次のようになります

$name  = $_POST['name']

ただし、ユーザーが提供するすべての情報をサニタイズして検証することを強くお勧めします。これはかなり単純な Google 検索である必要があります。

于 2012-12-25T09:48:38.220 に答える
1

別の解決策は、「の前に」を閉じることです

$message = "<html><body><h1>HTML TEXT ".$name." how are you?</h1></body></html>";

既に PHP ワークスペースにいるため、PHP を開始および終了する必要はありません。

于 2012-12-25T09:47:03.247 に答える
1

これを試して..

$message = "<html><body><h1>HTML TEXT".$name."</h1></body></html>";

htmlをphp変数に割り当てています。したがって、そこに変数を使用する必要はありませんecho..適切な連結を使用するだけです

于 2012-12-25T09:48:16.933 に答える
1

$message 変数自体が間違って使用されています。

$message = "<html><body><h1>HTML TEXT <?php echo $name; ?></h1></body></html>";

どちらかである必要があります

$message = "<html><body><h1>HTML TEXT  $name </h1></body></html>";

またはこれ:

$message = "<html><body><h1>HTML TEXT ".$name." </h1></body></html>";
于 2012-12-25T10:16:38.157 に答える