带有文件附件的PHP表单 - 不会附加文件

时间:2014-01-29 16:24:39

标签: php html forms file attachment

据我所知。 谁能告诉我我错过了什么? 为什么不附加文件?

这是我的pastebin文件:http://pastebin.com/ziwv9FzT

以及我文件中的代码:

<!-- form start -->
<?php
$error = false;
$sent = false;
if(isset($_POST['submit'])) {
        if(empty ($_POST['order']) || empty($_POST['name']) || empty($_POST['email']) || empty($_POST['message'])) {
                $error = true;
        } else {

                $to = "order@amezdigitaldesign.com";

                $order = trim($_POST['order']);
                $name = trim($_POST['name']);
                $email = trim($_POST['email']);
                $file = trim($_POST['file']);
                $message = trim($_POST['message']);

                $subject = "order form";

                $messages = "\r\n order: $order \r\n namn: $name \r\n epost: $email \r\n meddelande: $message";
                $headers = "from:" . $name;
                $mailsent = mail($to, $subject, $messages, $headers);

                if($mailsent) {
                        $sent = true;
                }
        }
}
?>
        <?php if($error == true) { ?>
        <p class="error"><b>Där var ett tomt fält i formuläret.<br>var god säg till att all information fylls i korrekt.</b></p>
        <?php } if($sent == true) { ?>
        <p class="sent"><b>Tack, din order har skickats.<br>Vi kommer kontakta dig snarast!</b></p>
        <?php } ?>

        <div id="banner">

                <form name="order" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
                        <label for="order">Ärende: *<br></label>
                        <select name="order">
                        <option value="Banner">Banner</option>
                        </select><br><br>

                    <label for="name">Namn: *<br></label>
                    <input type="text" name="name" size="15" />

                    <br><label for="email">Epost: *<br></label>
                    <input type="email" name="email" size="25" /><br>

                    <label for="file">Bifoga fil:<br></label>
                    <input type="file" name="file"/><br><br>

                    <label for ="message">Meddelande: *<br>
                    <i>(Skriv gärna så detaljerat som möjligt hur du vill att din<br>banner ska se ut, om du inte bifogar fil.)</i></label><br>
                    <textarea name="message" cols="45" rows="10"></textarea><br><br>
                    <input type="submit" name="submit" class="submit" value="Skicka"/>

                </form>

                <div style="clear:both;"></div>
        </div>
<!-- form end -->

1 个答案:

答案 0 :(得分:2)

文件存储在$_FILES不在$_POST中。因此对于初学者,您需要确保从正确的位置获取文件。此外,我不相信它会附加。您需要正确创建电子邮件。

对于像PHPMailer这样的现有库,您可能会有更好的运气。如果我没记错的话,它内置了将文件附加到电子邮件的工具。