2016-04-12 13 views
0

Dreamweaverを使用してウェブサイトを作成していますが、私のウェブサイトにはフォームがありますが、送信ボタンをクリックすると、メールクライアントを経由せずに自分のアカウントにメールを送ることが可能かどうか疑問に思っていました。これは私のコードです...Htmlフォームを提出すると、電子メールに直接送信されます

私はすべてのコードを編集するためにDreamweaverを使用しています。

<!doctype html> 
<html lang="en-US"> 
<head> 
<meta charset="UTF-8"> 
<meta http-equiv="X-UA-Compatible" content="IE=edge"> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 
<title>Fiction Filming</title> 
<link rel="shortcut icon" href="images/favicon3.ico" type="image/x-icon" /> 
<style type="text/css"> 
body { 
    background-color: #2c2c2c; 
} 
</style> 
<link href="Css/singlePageTemplate.css" rel="stylesheet" type="text/css"> 
<!--The following script tag downloads a font from the Adobe Edge Web Fonts server for use within the web page. We recommend that you do not modify it.--> 
<script>var __adobewebfontsappname__="dreamweaver"</script> 
<script src="http://use.edgefonts.net/source-sans-pro:n2:default.js" type="text/javascript"></script> 
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> 
<!-- WARNING: Respond.js doesn't work if you view the page via file:// --> 
<!--[if lt IE 9]> 
     <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> 
     <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> 
    <![endif]--> 
</head> 
<body> 
<!-- Main Container --> 
<div class="container"> 
    <!-- Navigation --> 
    <!-- Hero Section --> 
    <!-- About Section --> 
    <!-- Stats Gallery Section --> 
    <div class="gallery"><img src="Images/Newbannercomingsoon.png" alt="" width="1000" height="500" class="logo-pic"/> </div> 
    <!-- Parallax Section --> 
    <!-- More Info Section --> 
    <!-- Footer Section --> 
    <section class="footer_banner" id="contact"> 

<form class="subscribeForm form-fix" name="Subscription Form" method="post" action="mailform.php" enctype="text/plain"> 
      <div class="newform"> 
       <div> </div> 
       <div> 
       <input id="fname" type="text" placeholder="NAME" name="name" required> 
       </div> 
       <div> 
       <input name="email" type="email" required id="email" placeholder="EMAIL"> 
       </div> 
       <div> 
       <select name="select" required id="myselect"> 
        <option>HELP/SUPPORT</option> 
        <option>BUSINESS ENQUIRES</option> 
        <option>OTHER</option> 
       </select> 
       </div> 
       <div class="text-form"> 
       <div> 
        <textarea name="textarea" required id="textarea" placeholder="TYPE YOUR TEXT HERE"></textarea> 
       </div> 
       </div> 
       <br><input name="Send" type="submit" id="Send" value="Send"> 
</div> 
</form> 
<!-- Step 1: Add an email field here --> 

<!-- Step 2: Add an address field here --> 
      <!-- Step 3: add a submit button here --> 

</section> 
    <!-- Copyrights Section --> 
<div class="copyright">&copy;2016 - <strong>Fiction filming</strong></div> 
</div> 
<!-- Main Container Ends --> 
</body> 
</html> 

また、ここに私のPHPファイルです...あなたがそれを修正することができれば、本当に役に立ちます。 HERE

<!doctype html> 
<html> 
<head> 
<meta http-equiv="content-type" content="text/html; charset="UTF-8"> 
<META HTTP-EQUIV="refresh" content="0;URL=thankyou.html"> 
<title>Email Form</title> 
</head> 

<body> 
<?php 
if(isset($_POST['submit'])){ 
    $to = "[email protected]"; // this is your Email address 
    $from = $_POST['email']; // this is the sender's Email address 
    $sender_name = $_POST['name']; 
    $select = $_POST['select']; 
    $message = $sender_name . " wrote the following:" . "\n\n" . $_POST['textarea']; 

    $headers = "From:" . $from; 
    $headers2 = "From:" . $to; 
    mail($to,$subject,$message,$headers); 
    echo "Mail Sent. Thank you " . $name . ", we will contact you shortly."; 
    // You can also use header('Location: thank_you.php'); to redirect to another page. 
    } 
?> 
</body> 
</html> 

formタグでuは=がアクションとしてアクションを述べたのでNEW PHP

<!doctype html> 
<html> 
<head> 
<meta http-equiv="content-type" content="text/html; charset="UTF-8"> 
<META HTTP-EQUIV="refresh" content="3;URL=thankyou.html"> 
<title>Email Form</title> 
</head> 

<body> 
<?php 
if(isset($_POST['submit'])){ 

// Or the below if using "name="Send" for the input. Uncomment and get rid of the above 
// if(isset($_POST['Send'])){ 


    if(!empty($_POST['email']) 
    && !empty($_POST['name']) 
    && !empty($_POST['select']) 
    && !empty($_POST['textarea'])) { 

    $to = "[email protected]"; 
    $from = $_POST['email']; 
    $sender_name = $_POST['name']; 
    $select = $_POST['select']; 
    $textarea = $_POST['textarea']; 

    $message = $sender_name . " wrote the following:" . "\n\n" . $textarea; 

    if(mail($to,$subject,$message,$headers)){ 
    echo "Mail was sent. Check both your inbox and spam, as mail as done its job."; 
} 
else{ 
    echo "There was a problem. Check your logs."; 
} 

    } 

} 

    // $headers = "From:" . $from; 
    // $headers2 = "From:" . $to; 
    //echo "Mail Sent. Thank you " . $name . ", we will contact you shortly."; 
    // You can also use header('Location: thank_you.php'); to redirect to another page. 
    //} 
?> 
</body> 
</html> 
+0

ここにかなりの問題があります –

+0

誰も見つからない –

+0

ええ?彼らは何であると言うことができますか? –

答えて

2

コードにはいくつか問題があります。

まず、enctype="text/plain"を削除します。この型は、フォーム付きのPOST配列を送信するのに有効ではありません。

<META HTTP-EQUIV="refresh" content="0;URL=thankyou.html">も削除する必要があります。<META HTTP-EQUIV="refresh" content="0;URL=thankyou.html">は厄介なことをする可能性があります。

次に、あなたの入力<input name="Send" type="submit" id="Send" value="Send">Send name属性を負い、あなたがアップし火災ことは決してありません、以下の条件文使用している:

if(isset($_POST['submit'])) 

をどちらかif(isset($_POST['Send']))として読み取ることがname="submit"、またはあなたの条件文にご入力の名前を変更します; あなたの選択はあなたのものです。

エラーが報告されました。

ここでは、あなたのコード$headers2 = "From:" . $to;がどこにも使われていないので、なぜこのようなことをしているのか分かりません。

誰かが入力内容の一部または全部を入力しないと空のフィールドがないかどうかをチェックして、空のメールが表示されるようにする必要があります。

などです。$_POST['textarea']$textareaに置き換えてPOST配列に割り当てました。

サイドノート:「送信」および「送信」に関して上記を参照してください。以下のif(isset($_POST['submit']))に応じて変更してください。

if(isset($_POST['submit'])){ 

// Or the below if using "name="Send" for the input. Uncomment and get rid of the above 
// if(isset($_POST['Send'])){ 

    if(!empty($_POST['email']) 
    && !empty($_POST['name']) 
    && !empty($_POST['select']) 
    && !empty($_POST['textarea'])) { 

    $from = $_POST['email']; 
    $sender_name = $_POST['name']; 
    $select = $_POST['select']; 
    $textarea = $_POST['textarea']; 

    $message = $sender_name . " wrote the following:" . "\n\n" . $textarea; 

    // Put your other mail code here 

    } 

} 

すべてこのmail()あなたはからこれを実行しているサーバー上で使用可能であると仮定。その意志

if(mail($to,$subject,$message,$headers)){ 
    echo "Mail was sent. Check both your inbox and spam, as mail as done its job."; 
} 
else{ 
    echo "There was a problem. Check your logs."; 
} 

(s)は、ファイルの先頭にerror reportingを追加します。

mail($to,$subject,$message,$headers); 

を条件文で、それが送信されたかどうかを確認するために:私はあなたが交換する提案

エラーの検索に役立ちます。

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 

// Then the rest of your code 

追記:の表示エラーが唯一のステージングで行われていない、と決して生産されなければなりません。


脚注:

あなたはJS /アヤックス/ jQueryのを使用しているので、もし私があなたの元の質問には含まれていなかったこと、の範囲を超えだろう、あなたはIDを使用している気づきました質問。

ファイルへのアクセス方法は不明です。ホストされているサイトにいる場合、私があなたに与えたことは動作するはずです。

サーバーに関する問題の場合は、それも問題の範囲を超えているため、テクニカルサポートについてはサービスプロバイダに問い合わせる必要があります。

file:///file.xxxではなく、を使用して、PHP、Webサーバー、mail()をインストールし、適切に構成して使用する必要があります。

サイドノート:<option>から何も渡されない場合は、値を指定する必要があります。

I:<option value="HELP/SUPPORT">他にもそうしています。

私はここで先に進むほど十分にあなたを与えてくれたと思います。

+0

あなたはタグを取り除くと言いましたが、これは私の感謝のページにリダイレクトされないということでしょうか? –

+0

また、私はちょうど$ sender_nameと$ textareaについて述べました。これは、$ selectが使用されることを意味しますか?電子メールの件名か、メッセージのどこかに入れたかったので...ありがとうございました –

+0

@ NicholasKlvana-Hooperそれを元に戻してください。しかし、 '0'はリダイレクトが速すぎてPHPを処理できないかもしれませんが、試してみてください。リダイレクトするためにヘッダーを使用することもできます。そして、あなたは私の答えに含まれているものを試していないのですか?私は持っており、それは美しく働いた。質問が解決されない場合は、他に何を言いたいのか、あなたを助けるために何をするのか分かりません。それが解決した場合は、回答を受け入れることを検討してください。そうでなければ、まだ質問が開いているか未解決であると思うかもしれません。 –

0

IS "のmailto:[email protected]"見通しにアクセスしようとしている

アクションをあなたのPHPファイル名に変更してください action = "yourphpfilename.php"

+0

申し訳ありませんが、実際に間違ったバージョンをコピーしました... mailtoコマンドの代わりにmailform.phpと言っています。 –

0

あなたのサーバーによっては設定すると、単純なphpメール機能を使用してメールを送信できない場合があります。それをテストする

、使用:

print mail($to,$subject,$message,$headers); 

結果が1でない場合は、何かが良くありません、それはおそらく容易ではない固定。

MailGunのようなPHPmailerまたはAPIベースのサービスを使用することをお勧めします。

+0

メールの代わりに、私はその前にプリントを書くべきです...そして、1はどこに現れますか?ちなみに、私はDreamweaverを使ってコードを編集しています。 –

+0

ローカルサーバーを使用していますか? PHPを実行するには、ローカルサーバーが必要です。PHPファイルを実行すると、その関数の出力が表示されます。 ローカルサーバーがない場合は、Windows用のXAMPP、MAC用のMAMPをお勧めします。 – pbs

+0

申し訳ありません私はコーディングするのが少し新しいです。ローカルサーバーとは何ですか? PHPファイルが実行され、必要なページにリダイレクトされますが、電子メールは送信されません。 –

関連する問題