添付ファイル付きの電子メールを送信するようにスクリプトを変更しようとしています。現在は機能していますが、すべてのフィールドが必要であり、フィールドが不要になるようにするために何が欠けているのか疑問に思っていました。
<?php
if (($_POST)) {
$success = $error = false;
$post = new stdClass;
foreach ($_POST as $key => $val)
$post->$key = trim(strip_tags($_POST[$key]));
$dir = dirname(__FILE__);
ob_start();
require_once($dir.'/html.php');
$html_message = ob_get_contents();
ob_end_clean();
require_once($dir.'/swift/swift_required.php');
$mailer = new Swift_Mailer(new Swift_MailTransport());
$message = Swift_Message::newInstance()
->setSubject('Imperial Order') // Message subject
->setTo(array($post->email => $post->name, 'ehilse@paifashion.com' => 'Janet McCauley')) // Array of people to send to
->setFrom(array('noreply@paifashion.com' => 'Imperial Order'))
->setBody($html_message, 'text/html') // Attach that HTML message from earlier
->attach(Swift_Attachment::fromPath($_FILES['attachment']['tmp_name'])->setFilename($_FILES['attachment']['name']));
// Send the email, and show user message
if ($mailer->send($message))
$success = true;
else
$error = true;
}
?>
foreach と関係があると思いますが、それを取り出そうとすると、コード全体が壊れてしまいます。誰かがそれを助けることができれば、それは素晴らしいことです。検証を行う理由は、サーバー側ではなくクライアント側で検証したいからです。