2016-08-30 8 views
0

私のウェブサイトで私の連絡フォームを使用するのが難しいです。私が提出しようとすると、実際にスクリプトを実行して電子メールを発するのではなく、空のページであるindex.phpが開きます。連絡先フォームの作業に苦労しています(HTML5/PHP)

ここにフォームがあります。

<form method="post" action="index.php"> 
     <div class="field"> 
      <label for="name">Name</label> 
      <input type="text" name="name" id="name" /> 
     </div> 
     <div class="field"> 
      <label for="email">Email</label> 
      <input type="email" name="email" id="email" /> 
     </div> 
     <div class="field"> 
      <label for="message">Message</label> 
      <textarea name="message" id="message" rows="4"></textarea> 
     </div> 
     <ul class="actions"> 
      <li><input type="submit" type="submit" value="Send Message" /></li> 
     </ul> 
    </form> 

私が使用しているindex.phpファイルは次のとおりです。 PHPは、一見正常に私のサーバーにインストールされている

<?php 
$name = $_POST['name']; 
$email = $_POST['email']; 
$message = $_POST['message']; 
$from = 'From: Test'; 
$to = '[email protected]'; 
$subject = 'Hello'; 

$body = "From: $name\n E-Mail: $email\n Message:\n $message"; 

if ($_POST['submit']) { 
    if (mail ($to, $subject, $body, $from)) { 
    echo '<p>Your message has been sent!</p>'; 
    } else { 
    echo '<p>Something went wrong, go back and try again!</p>'; 
    } 
} 
?> 

、私はPHPInfo()ファイルは問題なく使用することができます。

+0

HTML入力では、タイプは「submit」です。 2番目はname = "submit"でなければなりません。この方法では、$ _POST ['submit']が設定されておらず、決してその状態になることはありません。 – Dexa

+0

ありがとう、それを修正し、今私は実際にどこかに行っています。残念ながら、私は「何かが間違っていた、戻って、もう一度やり直す」というメッセージを毎回受信しているので、別の場所でエラーを起こしたに違いありません。 – Edge

答えて

0

$_POST['submit']が設定されていないため、電子メールは送信されません。フォームにsubmitという名前のコントロールがありません。送信ボタンにする場合は、name属性を指定する必要があります。

<input type="submit" name="submit" value="Send Message" /> 

次に、あなたのPHPスクリプトで、それは単にboolean型としてそれを評価するのではなく、issetを提出し確認してください。

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

このように、フォームが送信されていない場合、未定義のインデックス通知は得られません。

+0

ああよく見つかった。 'type =" submit "を' name = "submit"に変更したところ、フォームは実行されましたが、毎回失敗します。あまりにも何か間違っていると思う。 – Edge

+0

あなたは「何かが間違っている」というメッセージを受け取りますか? –

+0

はい、今すぐフォームをテストしようとしています。以前の修正のおかげで実行されますが、今は「Something went wrong」というメッセージが表示されています。 – Edge

関連する問題