0

私は仲の良い友人のためにウェブサイトを構築していて、連絡フォームについて助けが必要です。オンラインでコードを見つけましたが、正しく機能していません。電子メールは送信されますが、すべてのフォームが正しく送信されるわけではなく、画像も送信されません。また、フォームを送信すると、ページ contactus.html にリンクされるはずですが、リンクも機能していないようです。誰でもこのコードを修正できますか?これは非常に役立ちます。ありがとうございます。


お問い合わせフォームの HTML は次のとおりです。

<div id="stylized" class="myform">
<form id="form" id="form" action="mail.php" method="POST">
<label>Name
<span class="small">Add your name</span>
</label>
<input type="text" name="name">
<label>Address
<span class="small">Add your home address</span>
</label>
<input type="text" name="address">
<label>Phone
<span class="small">Add a Phone Number</span>
</label>
<input type="text" name="phone">
<label>E-mail
<span class="small">Enter a valid E-mail</span>
</label>
<input type="text" name="email">
<label>Timeline
<span class="small">Range for your project</span>
</label>
<input type="text" name="timeline">
<label>Photo
<span class="small">Upload current picture</span>
</label>
<input type="file" name="photo">
<label>Description
<span class="small">Type Your Project Description</span>
</label>
<textarea name="message" rows="6" cols="25"></textarea>
<button type="submit" value="Send" style="margin-top:15px;">Submit</button>
<div class="spacer"></div>
</form>
</div>

そして、ここにあるのは、フォームを機能させるのに役立つはずの mail.php です。ここに問題があると思います:

<?php $name = $_POST['name'];
$address = $_POST['address'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$timeline = $_POST['timeline'];
$description = $_POST['description'];
$formcontent="From: $name \n Message: $message";
$recipient = "blanger@hawaii.edu";
$subject = "New Project Request from 2DadsDB.com";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You!" . " -" . "<a href='contactus.html'>Go Back</a>";
?>
4

3 に答える 3

0

このmail()関数は、メッセージの送信にのみ適しています。画像を送信するにはまず、写真をサーバーにアップロードする必要があります。画像をアップロードするには。

mail()最初にサーバーからPHP電子メール添付スクリプトに写真を添付し​​て画像を送信するにはmail()

$name = mysql_real_escape_string(strip_tags($_POST['name'])); また、セキュリティ上の理由から、名前やメールアドレスなどの各投稿に使用してください。

于 2012-07-11T05:05:17.420 に答える
0

Blender が指摘したように、コードは非常に安全ではありません。悪意のあるコンテンツが挿入されるのは簡単です。また、mail.php には「写真」への参照はありません。

$fileImage = $_POST['photo'];

私が信じている写真をアップロードして保存するには、スクリプトを使用する必要があります。ゼロから構築するのではなく、チュートリアルまたは完全なソースを参照することをお勧めします。

于 2012-07-11T04:45:02.833 に答える
0

入力をサニタイズする必要がありmysql_real_escape_stringますstripslashes$_POST.

 $user = mysql_real_escape_string($_POST['user']);
于 2012-07-11T04:52:34.213 に答える