私は学校のロボットチームのためのウェブサイトを作ろうとしています。これまでは、コンタクトフォームを除いてすべてがうまくいきました。私はそれを動作させるために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に助けを求めることにしました。うまくいけば誰かが私を助けることができます。どんな助けでも大歓迎です。
編集:明らかに、これは私がそれが信じられないときは重複としてマークされていました。私が想像して複製した問題は、私と同じ問題を経験していないということでした。
ブラウザでPHPを見れば、あなたも、「PHP対応のサーバー(つまり最初のを修正) – nogad
'を実行していないPHPコードが空白に現れますホワイトページ "' - その後、PHPはまったく実行されません。おそらく、あなたがWebサーバからではなくファイルシステムから呼び出すからだと思います。 'action =" C:\ Users \ Mr。Roboto 2 \ Desktop \ Robotics新しいウェブサイト\ assets \ form-to-email.php "' PHPブラウザではなく* Webサーバー*上で動作します。 – David