【HP制作】メールフォームの設定について

このQ&Aのポイント
  • 無料テンプレートを使ったHP制作の際、メールフォームの設定がうまくいかず困っている。
  • テンプレートのメールフォーム設定で置き換える必要がある箇所があるかどうか尋ねたい。
  • 質問文章全体の要約
回答を見る
  • ベストアンサー

【HP制作】メールフォームの設定について

http://liquidgem.birondesign.com/から無料テンプレートを落とし、 これをもとにカスタムしようとしているのですが、メールフォームの設定がうまくいきません。。 下部のソースは【submitemail.php】のものです。 $mailto = "your email goes here";の「your email goes here」を自分のメールアドレスに置き換える以外、何か必要な作業はありますでしょうか? 知識がないためテンプレートに頼ろうとしているのですが、うまくいかず困っております。 どなたかご教授頂ければ幸いです。宜しくお願い致します。 <? /************************ * Variables you can change *************************/ $mailto = "your email goes here"; /*PUT YOUR EMAIL IN HERE*/ $cc = ""; $bcc = ""; $subject = "enquiry"; $vname = "Website Contact Form"; /************************ * do not modify anything below unless you know PHP/HTML/XHTML *************************/ $email = $_POST['email']; function validateEmail($email) { if(eregi('^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2,3})?(\.[a-zA-Z]{2,3})?$', $email)) return true; else return false; } if(strlen($_POST['name']) < 1 || strlen($_POST['message']) < 1 || validateEmail($email) == FALSE) { if(empty($_POST['name'])) { $emailerror .= '<li>Enter name</li>'; } if(validateEmail($email) == FALSE) { $emailerror .= '<li>Enter valid email</li>'; } if(empty($_POST['message'])) { $emailerror .= '<li>Enter message</li>'; } } else { $emailerror .= "Your email has been sent successfully"; // NOW SEND THE ENQUIRY $timestamp = date("F j, Y, g:ia"); $messageproper ="\n\n" . "Name: " . ucwords($_POST['name']) . "\n" . "Email: " . ucwords($email) . "\n" . "Comments: " . $_POST['message'] . "\n" . "\n\n" ; $messageproper = trim(stripslashes($messageproper)); mail($mailto, $subject, $messageproper, "From: \"$vname\" <".$_POST['e_mail'].">\nReply-To: \"".ucwords($_POST['first_name'])."\" <".$_POST['e_mail'].">\nX-Mailer: PHP/" . phpversion() ); } ?> <div id='emailerror'> <ul> <? echo $emailerror; ?> </ul> </div>

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5080/13275)
回答No.1

書かれているプログラムを見る限り$mailto = "your email goes here";の部分を書き換えるだけでよさそうですね。 うまくいかないというのは具体的にどのような事でお困りなのでしょうか。 エラーメッセージ等が出ているのであれば、エラーメッセージを書かれた方が回答がしやすいですし、実行環境がどのようなモノなのか(OS等)も書かれた方がいいと思います。

関連するQ&A

  • メールフォームにある必須入力について

    こんばんは、今メールフォームを作っています。入力画面→確認画面→完了ページという流れで作ったのですがよく必須項目に何も入れなかったり、間違った文字をいれたりするとエラーページが表示されるようにしたいと思っているのですが、なかなか上手くできません。下記のスクリプトからだとどうやってやったら良いのでしょうか?よろしくおねがいします。 <?php if (! isset($_POST[btn1]) and! isset($_POST[btn2]) and! isset($_POST[cancel])) { //入力画面 $body = "必要な項目を入力して[OK]ボタンをクリックしてください。 <FORM action='$_SERVER[PHP_SELF]' method='POST'> 名前:<INPUT size='40' type='text' name='name'><BR><BR> フリガナ:<INPUT size='40' type='text' name='kana'><BR><BR> 電話番号:<INPUT size='40' type='text' name='tel'><BR><BR> E-Mailアドレス:<INPUT size='40' type='text' name='email'><BR><BR> お問い合わせ内容:<BR><TEXTAREA rows='6' cols='40' name='inquiry'></TEXTAREA><BR><BR> <INPUT type='submit' name='btn1' value=' OK '> </FORM>"; } elseif (isset($_POST[btn1])) { //入力画面で[OK]がクリックされたとき $name = htmlspecialchars(stripcslashes($_POST[name])); $kana = htmlspecialchars(stripcslashes($_POST[kana])); $tel = htmlspecialchars(stripcslashes($_POST[tel])); $email = htmlspecialchars(stripcslashes($_POST[email])); $inquiry = htmlspecialchars(stripcslashes($_POST[inquiry])); $body = "ご入力した内容でメッセージを送信します。<BR> よろしければ[送信]ボタンをクリックしてください。 <FORM action='$_SERVER[PHP_SELF]' method='POST'> 名前:$name<BR><BR> フリガナ:$kana<BR><BR> 電話番号:$tel<BR><BR> E-Mailアドレス:$email<BR><BR> お問い合わせ内容:<BR>" . nl2br($inquiry) . "<BR><BR> <INPUT type='submit' name='btn2' value=' 送信 '> <INPUT type='submit' name='cancel' value='キャンセル'> <INPUT type='hidden' name='name' value=\"$name\"> <INPUT type='hidden' name='kana' value=\"$kana\"> <INPUT type='hidden' name='tel' value=\"$tel\"> <INPUT type='hidden' name='email' value=\"$email\"> <INPUT type='hidden' name='inquiry' value=\"$inquiry\"> </FORM>"; } elseif (isset($_POST[btn2])) { //確認画面で[送信]がクリックされたとき //メールの送信処理を行う $name = stripcslashes($_POST[name]); $kana = stripcslashes($_POST[kana]); $tel = stripcslashes($_POST[tel]); $email = stripcslashes($_POST[email]); $inquiry = stripcslashes($_POST[inquiry]); $mailto = "kuma202000@yahoo.co.jp"; $mailsbj = "メールフォームからの送信"; $mailbody = "$name さんからのメールが届きました。\n" . "---------------------------------------------\n" . "名前:$name \n" . "フリガナ:$kana \n" . "電話番号:$tel \n" . "E-Mailアドレス:$email \n" . "メッセージ:$inquiry \n" . "---------------------------------------------\n"; mb_language("ja"); if (mb_send_mail($mailto, $mailsbj, $mailbody, $mailheader)) { $body = "メールを送信しました。ありがとうございました。<BR><BR>"; } else { $body = "メールの送信に失敗しました。<BR><BR>"; } $body .= "<A href='$_SERVER[PHP_SELF]'>戻る</A>"; } elseif (isset($_POST[cancel])) { //確認画面で[キャンセル]がクリックされたとき header("location: $_SERVER[PHP_SELF]"); exit(); } ?> <HTML> <HEAD> </HEAD> <BODY> <?=$body?> </BODY> </HTML>

    • 締切済み
    • PHP
  • PHPフォームのスパム対策

    PHPフォームのスパム対策についてなのですが 氏名のふりがなをひらがな入力でチェックをしたいのですが 下記記述でうまくいきません。PHPの初心者なのでご教授いただけますでしょうか? ( PHPの一部抜粋ですが //20090403 in の箇所を追記しました。) //////////////// // メイン処理 // //////////////// if ($method == 3) { include($smtp_class); } @header("Content-Type: text/html; charset=EUC-JP"); if (isset($_POST['FORM'])) { //フォームからのデータを評価 if ($_POST['FORM']['NAME'] == "") { die('名前が入力されていません'); } //20090403 in if ($_POST['FORM']['FURIGANA'] == "") { die('ふりがなを ひらがなで入力してください。'); } if ($_POST['FORM']['EMAIL'] == "") { die('Eメールが入力されていません'); } if ($_POST['FORM']['MESSAGE'] == "") { die('メッセージが入力されていません'); } if (strlen($_POST['FORM']['MESSAGE']) > $max) { die('文字数が多すぎます'); } if ($_POST['FORM']['SUBJECT'] == "") { $_POST['FORM']['SUBJECT'] = '(untitled)'; //タイトルなしの場合 } //改行コードを<LF>に統一 $_POST['FORM']['MESSAGE'] = str_replace("\r\n", "\n", $_POST['FORM']['MESSAGE']); $_POST['FORM']['MESSAGE'] = str_replace("\r", "\n", $_POST['FORM']['MESSAGE']); //先頭と末尾のホワイトスペースを削除 $_POST['FORM']['MESSAGE'] = trim($_POST['FORM']['MESSAGE']); //メッセージ部分のフォーマット $_POST['FORM']['MESSAGE'] = "\n" . "----------------------------------------------------------------------\n" . $_POST['FORM']['MESSAGE']."\n" . "----------------------------------------------------------------------\n"; //メール本文の作成 $body = ""; //初期化 while (list($item, $value) = each($_POST['FORM'])) { if (get_magic_quotes_gpc()) { $value = stripslashes($value); } $body .= sprintf("%-8s", $item)." : ".$value."\n"; } //漢字コード変換( EUC → JIS ) if ($enable_EUCtoJIS) { $body = EUCtoJIS($body); $subject = '=?ISO-2022-JP?B?'.base64_encode(EUCtoJIS($_POST['FORM']['SUBJECT'])).'?='; $from_name = '=?ISO-2022-JP?B?'.base64_encode(EUCtoJIS($_POST['FORM']['NAME'])).'?='; $kana_name = '=?ISO-2022-JP?B?'.base64_encode(EUCtoJIS($_POST['FORM']['FURIGANA'])).'?='; } //20090403 in if (!mb_ereg("^[ぁ-ん]+$", $_POST['FORM']['FURIGANA'])) { $from = $kana_name." <".$_POST['FORM']['FURIGANA'].">"; } if (ereg("^[0-9A-Za-z._-]+@[0-9A-Za-z.-]+$", $_POST['FORM']['EMAIL'])) { $from = $from_name." <".$_POST['FORM']['EMAIL'].">"; } else { $from = $from_name." <".$to.">"; }    以下略 ------------ 御多忙のところ恐縮ですがよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • お問い合わせフォーム sessionについて

    自分でお問い合わせフォームを作ってみようと思い、 PHPでちょこちょこと色々なサイトを参考に作成してみています。 なかなか進まず、今つまずいているのが、sessionです。 お問い合わせを書き込んだ画面から確認画面に移行したいのですが、 移行した後の入力情報がうまく表示できません。 <?php session_start(); $check = 1; $em = ""; $name = $_POST["name"]; $mail = $_POST["mail"]; $tel = $_POST["tel"]; $naiyo = $_POST["naiyo"]; //エラーチェック if ($name == "") { $check = 0; $em = "<li>お名前をご記入ください。</li>"; } if ($mail == "" && $tel == "") { $check = 0; $em .= "<li>メールアドレスまたは、電話番号をご記入ください。</li>"; } if ($mail != "") { if (!ereg("[a-zA-Z0-9_.¥-]+@[a-zA-Z0-9_.¥-]+", $mail)) { $check = 0; $em .= "<li>メールアドレスをお確かめください。</li>"; } } if ($naiyo == "") { $check = 0; $em .= "<li>お問い合わせ内容をご記入ください。</li>"; } if (!$check) { $em = "<ul>".$em."</ul>"; } else { $_SESSION["name"] = $name; $_SESSION["mail"] = $mail; $_SESSION["tel"] = tel; $_SESSION["naiyo"]= naiyo; header("Location: confirm.php"); } ?> 確認ページ <?php session_start(); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <META name="GENERATOR" content="IBM WebSphere Studio Homepage Builder Version 10.0.0.0 for Windows"> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE></TITLE> </HEAD> <BODY> 名前 <?php echo($_SESSION["name"]); ?><br> メールアドレス<?php echo($_SESSION["mail"]); ?><br> </BODY> </HTML> 全くの初心者ですので根本的に分かっておらず、教えがいがないかも 知れませんが...。すみません。よろしくお願いします。

    • ベストアンサー
    • PHP
  • フォームで送られてきたメールの内容が消える。

    PHP初心者です。 メールフォームを作成し送信すると、メールは届くのですが、 メールの内容★の部分が消えてしまっています。 名  前: ★★ タイトル: ★★ メルアド: ★★ 内  容: ★★ ソース <?php $name= htmlspecialchars($_POST['name'],ENT_QUOTES); $title= htmlspecialchars($_POST['title'],ENT_QUOTES); $email= htmlspecialchars($_POST['email'],ENT_QUOTES); $naiyo= htmlspecialchars($_POST['naiyo'],ENT_QUOTES); $to="aaa@bbb.co.jp"; $subject = "ASK"; $message=" 名  前: $name \n タイトル: $title \n メルアド: $email \n 内  容: $naiyo \n"; if(mail($to,$subject,$message)) { echo "Thank you, your email has been send."; } else { echo "Sorry but there is an error. Try again please."; } ?> どなたかアドバイスをお願いします。

    • ベストアンサー
    • PHP
  • phpのシンプルなメールフォーム

    あるサイトにて、単一phpのメールフォームのソースをコピーし、使用としましたが、 設定したメールアドレスに、送信ボタンを押しましたが、 受信されません。  ・送信後、「メールを送信しました」と表示されます。  ・送信のあて先は、何も反応なし。  ・ソースの「●●@●●」はダミーです。 以下ソースです。原因がわかりますでしょうか。ご教授のほどよろしくお願いします。 ―――――――――――――――――――――――――――――――――――― <?php // 送信フラグ $send_flg = false; // エラーメッセージ $err_msg = array(); // 送信ボタンを押した後の処理 if ($_POST["post_flg"]) { // エラー if ($_POST["name"] == "") { $err_msg[] = "「お名前」は必須です"; } if ($_POST["email"] == "") { $err_msg[] = "「メールアドレス」は必須です"; } // エラーが無ければ送信 if (count($err_msg) == 0) { // 宛先 $mail_to = "●●@●●"; // 送信元アドレス $mail_from = "form@example.com"; // 件名 $mail_subject = "メールフォームから送信がありました"; // 本文 $mail_body = ""; $mail_body.= "■お名前\n".$_POST["name"]."\n\n"; $mail_body.= "■メールアドレス\n".$_POST["email"]."\n\n"; $mail_body.= "■コメント\n".$_POST["comment"]; // 送信処理 mb_language("Japanese"); mb_internal_encoding("UTF-8"); mb_send_mail($mail_to, $mail_subject, $mail_body, "From: <".$mail_from.">"); $send_flg = true; $_POST = array(); } } ?> <!DOCTYPE HTML> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>メールフォーム</title> </head> <body> <?php // 初期フォーム表示 if (!$send_flg) { ?> <h1>メールフォーム</h1> <?php // エラーメッセージがある場合 if (count($err_msg) > 0) { ?> <p style="color:red;"> <?php foreach ($err_msg as $val) { ?> ※<?php echo $val ?><br> <?php } ?> </p> <?php } ?> <form action="mail.php" method="post"> <p> お名前<br> <input type="text" cols="30" name="name" value="<?php echo $_POST["name"] ?>"><br> </p> <p> メールアドレス<br> <input type="text" cols="30" name="email" value="<?php echo $_POST["email"] ?>"><br> </p> <p> コメント<br> <textarea name="comment" cols="50" rows="10"><?php echo $_POST["comment"] ?></textarea><br> </p> <input type="submit" name="post_flg" value="送信する"><br> </form> <?php // メール送信後の表示 } else { ?> <br><br><br><br>メールを送信しました。<br> <?php } ?> </body> </html> ――――――――――――――――――――――――――――――――――――

    • ベストアンサー
    • PHP
  • フォームから同じドメイン宛てのメールが届かない

    はじめまして。 サイトにPHPでお問い合わせフォームを設置したのですが、 メール送信先を同じドメインのアドレスに設定したところ、メールが受信されません。 違うドメインの場合はは受信されます。 たとえば、 http://www.abc.com/にフォームをアップしています。 メールの送信先をinfo@abc.comにすると、メールが届きません。 サーバーの設定などに原因があるのでしょうか。 それともフォームのプログラムに原因があるのでしょうか。 プログラムはこんな感じです。 <?php mb_language("Ja") ; mb_internal_encoding("SJIS") ; $mailto="info@abc.com"; $subject="お問い合わせフォームより"; $message .= "お問い合わせフォームよりメッセージが届きました。\n\n"; $message .= "【お名前】"."\n"; $message .= $_POST['name']."\n\n"; $message .= "【メールアドレス】"."\n"; $message .= $_POST['mailaddress']."\n\n"; $message .= "【タイトル】"."\n"; $message .= $_POST['title']."\n\n"; $message .= "【本文】"."\n"; $message .= $_POST['message']."\n\n"; $mailfrom="From:" .mb_encode_mimeheader($_POST['name']) ."<".$_POST['mailaddress'].">"; mb_send_mail($mailto,$subject,$message,$mailfrom); ?> よろしくお願いします。

    • ベストアンサー
    • PHP
  • 入力されたテキストからメールアドレス抽出するPHP

    入力されたテキストからメールアドレス抽出するPHPを作りたいのですが、下記の記述では抽出ができません。 どのように文を変えたら抽出できるでしょうか?よろしくお願い致します。 <form action="mail2.php" method="post"> <input type="text" name="text" size="100" value=""/><br /> <input type="submit" name="text" value="テキストからアドレスを抜き出す" /> </form> <?php if( preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/",$text,$match)); echo "アドレス-> {$match[0]}\n"; print $arr_str[0];  ?>

    • ベストアンサー
    • PHP
  • Javascriptを勉強中でメールフォームを作っているのですが、

    Javascriptを勉強中でメールフォームを作っているのですが、 function check(){ if(document.form1.namae.value==""){ alert("お名前を入力してください。"); return false; } else{ return true; } } で名前が空白の時送信ボタンを押した時に警告メッセージが出るようにしようと思っています。 ボタンには以下のように書いています。 <form name="form1" action="mailto:mail@address" method="post" enctype="text/plain" onsubmit="check()"> そうすると警告は出ますが、処理を続行してメールも送れてしまいます。 教科書を見ると <form name="form1" action="mailto:mail@address" method="post" enctype="text/plain" onsubmit="return check()"> となっているのでそうすると問題ないのですが、なぜreturnを入れないといけないのかよくわかりません。 check()の中ですでにfalseかtrueの値が出ているのでreturnが要らないと思ったのですが・・ 初心者なのでよくわかっていません。 お願いいたします。

  • jQueryのノンリロードのメールフォーム

    jQueryを使用したノンリロードのメールフォームを作成しているのですが、 メールの受信でチェックボックスで選択した項目が「Array」と表示されてしまい正しく表示できません。 どうすればいいのでしょうか。 ご教示お願いいたしあmす。 独学で作成しており、jQueryのコード自体は下記のサイトを参考にし、その他のHTMLとPHPは自分で作成しました。 参考にしたサイト http://studio-key.com/tips/jquery-mailform-01 【THMLのコード】 <dt>お問い合わせ項目<span class="ind">※必須</span><br>(複数選択可)</dt> <dd> <ul> <li><input type="checkbox" name="tec[]" id="check1" value="Aについて" class="validate[minCheckbox[1]]"> <label for="check1"> Aについて </label></li> <li><input type="checkbox" name="tec[]" id="check2" value="Bについて" class="validate[minCheckbox[1]]"> <label for="check2"> Bについて</label></li> <li><input type="checkbox" name="tec[]" id="check3" value="Cについて" class="validate[minCheckbox[1]]"> <label for="check3"> Cについて</label></li> <li><input type="checkbox" name="tec[]" id="check4" value="Dについて" class="validate[minCheckbox[1]]"> <label for="check4"> Dについて </label></li> </ul> </dd> 【PHPのコード】 <?php if (empty($_POST)) { echo ""; exit; } ?> <?php // フォームデータが空の場合は処理終了 if (empty($_POST)) { echo ""; exit; } // セッションの開始 session_start(); ?> <?php // 入力値の取得・加工 $name = htmlspecialchars($_POST['name'], ENT_QUOTES, "UTF-8"); $email = htmlspecialchars($_POST['email'], ENT_QUOTES, "UTF-8"); $tel = htmlspecialchars($_POST['tel'], ENT_QUOTES, "UTF-8"); $list=$_POST['list']; $tec=$_POST['tec']; $comment= htmlspecialchars($_POST['comment'], ENT_QUOTES, "UTF-8"); // メール本文の組み立て $to = "123456789@gmail.com"; $title = "【お問い合わせフォームより】"; $ext_header = "From:{$email}"; $body = <<<EOM -------------------------------------------------- 【お問い合わせフォームからのメール】 お名前:{$name} メールアドレス:{$email} 電話番号:{$tel} 都道府県:{$list} お問い合わせ内容:{$tec} 本文:{$comment} -------------------------------------------------- EOM; //文字コードの設定 mb_language("Japanese"); mb_internal_encoding("UTF-8"); // メール送信の実行 $rc = mb_send_mail($to, $title, $body); if (!$rc) { exit; } else { $_SESSION = NULL; } ?>

    • ベストアンサー
    • PHP
  • 問い合わせフォームからPHPを使って、、、、、

    問い合わせフォームからPHPを使って指定のアドレスにメールを送ろうとしているのですが、届きません、、、、、、 原因が分かりません。助けていただけないでしょうか。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>お問い合わせページ</title> <link rel="stylesheet" href="styles.css"> </head> <body> <h1>お問い合わせページ</h1> <form action="send_email.php" method="post"> <label for="name">お名前:</label> <input type="text" id="name" name="name" required><br><br> <label for="email">メールアドレス:</label> <input type="email" id="email" name="email" required><br><br> <label for="message">お問い合わせ内容:</label><br> <textarea id="message" name="message" rows="4" cols="50" required></textarea><br><br> <input type="submit" value="送信"> </form> </body> </html> \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 以下がPHPのプログラムです。 <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $name = $_POST["name"]; $email = $_POST["email"]; $message = $_POST["message"]; // 送信先のメールアドレス $to = "***@gmail.com"; // 件名 $subject = "お問い合わせがありました"; // 本文 $body = "お名前: $name\n"; $body .= "メールアドレス: $email\n\n"; $body .= "お問い合わせ内容:\n$message"; // メールを送信 mail($to, $subject, $body); // 送信後のリダイレクト header("Location: thank_you.html"); exit; } ?>

    • 締切済み
    • PHP

専門家に質問してみよう