2017-02-14 4 views
1

私は学校のロボットチームのためのウェブサイトを作ろうとしています。これまでは、コンタクトフォームを除いてすべてがうまくいきました。私はそれを動作させるためにPHPを使用する必要があることを知っています、そして、私はそれを行う方法のためのオンラインガイドを見つけました。私はそれを正確にコピーし、必要に応じて詳細を変更しました。しかし、それはまったく機能しませんでした。以下は、HTMLのContactセクションです。HTMLお問い合わせフォームの問題?

    <!-- Contact --> 
         <article id="contact"> 
          <h2 class="major">Contact</h2> 
          <form method="post" action="C:\Users\Mr. Roboto 2\Desktop\Robotics New Website\assets\form-to-email.php"> 
           <div class="field half first"> 
            <label for="name">Name</label> 
            <input type="text" name="name" id="name" /> 
           </div> 
           <div class="field half"> 
            <label for="email">Email</label> 
            <input type="text" 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" value="Send Message" class="special" /></li> 
            <li><input type="reset" value="Reset" /></li> 
           </ul> 
          </form> 
          <ul class="icons"> 
           <li><a href="#" class="icon fa-twitter"><span class="label">Twitter</span></a></li> 
           <li><a href="#" class="icon fa-facebook"><span class="label">Facebook</span></a></li> 
           <li><a href="#" class="icon fa-instagram"><span class="label">Instagram</span></a></li> 
           <li><a href="#" class="icon fa-github"><span class="label">GitHub</span></a></li> 
          </ul> 
         </article> 

以下は、ガイドから見つかったPHPコードです。

<?php 
if(!isset($_POST['submit'])) 
{ 
    //This page should not be accessed directly. Need to submit the form. 
    echo "error; you need to submit the form!"; 
} 
$name = $_POST['name']; 
$visitor_email = $_POST['email']; 
$message = $_POST['message']; 

//Validate first 
if(empty($name)||empty($visitor_email)) 
{ 
    echo "Name and email are mandatory!"; 
    exit; 
} 

if(IsInjected($visitor_email)) 
{ 
    echo "Bad email value!"; 
    exit; 
} 

$email_from = '[email protected]';//<== update the email address 
$email_subject = "New Form submission"; 
$email_body = "You have received a new message from the user $name.\n". 
    "Here is the message:\n $message". 

$to = "[email protected]";//<== update the email address 
$headers = "From: $email_from \r\n"; 
$headers .= "Reply-To: $visitor_email \r\n"; 
//Send the email! 
mail($to,$email_subject,$email_body,$headers); 
//done. redirect to thank-you page. 
header('Location: thank-you.html'); 


// Function to validate against any email injection attempts 
function IsInjected($str) 
{ 
    $injections = array('(\n+)', 
       '(\r+)', 
       '(\t+)', 
       '(%0A+)', 
       '(%0D+)', 
       '(%08+)', 
       '(%09+)' 
      ); 
    $inject = join('|', $injections); 
    $inject = "/$inject/i"; 
    if(preg_match($inject,$str)) 
    { 
    return true; 
    } 
    else 
    { 
    return false; 
    } 
} 

?> 

私はPHPの完全な初心者ですから、私には分かりません。私がメッセージを送信するためにボタンを押すと、それが起こるのは、空白のページにPHPコードが表示されることだけです。メールサーバーが必要だと聞いたことがありますが、設定方法はわかりません。私がオンラインで見つけたものは何も役に立たなかったので、私は良い古いStackOverflowに助けを求めることにしました。うまくいけば誰かが私を助けることができます。どんな助けでも大歓迎です。

編集:明らかに、これは私がそれが信じられないときは重複としてマークされていました。私が想像して複製した問題は、私と同じ問題を経験していないということでした。

+0

ブラウザでPHPを見れば、あなたも、「PHP対応のサーバー(つまり最初のを修正) – nogad

+1

'を実行していないPHPコードが空白に現れますホワイトページ "' - その後、PHPはまったく実行されません。おそらく、あなたがWebサーバからではなくファイルシステムから呼び出すからだと思います。 'action =" C:\ Users \ Mr。Roboto 2 \ Desktop \ Robotics新しいウェブサイト\ assets \ form-to-email.php "' PHPブラウザではなく* Webサーバー*上で動作します。 – David

答えて

-1

PHPが実行されていないようです。 PHPはサーバー上で実行する必要があります。 WAMPまたはXAMPPをインストールしてPHPスクリプトを実行する必要があります。

WAMP:http://www.wampserver.com

XAMPP:https://www.apachefriends.org