在php中创建一个简单的邮件表单

在php中创建一个简单的邮件表单,php,forms,email,Php,Forms,Email,好的,我一直在尝试用php创建一个非常简单的订单系统,它由一页不同的表单字段组成,您可以填写并提交,提交时会有一个验证页,它将发送邮件或声明错误。它完美地工作了一个星期左右,然后我对文件做了一些小的修改,上传了它们,又重新修改了它们。现在它拒绝工作。以下是我的两页代码: </head> <body> <form name="detaljer" action="index.php" onsubmit="return validateForm();"

好的,我一直在尝试用php创建一个非常简单的订单系统,它由一页不同的表单字段组成,您可以填写并提交,提交时会有一个验证页,它将发送邮件或声明错误。它完美地工作了一个星期左右,然后我对文件做了一些小的修改,上传了它们,又重新修改了它们。现在它拒绝工作。以下是我的两页代码:

</head>
<body>
    <form name="detaljer" action="index.php" onsubmit="return validateForm();" 
          method="POST">
        <p>Ange önskad kaliber</p>
        <select name="kaliberCombo">
            <option value=".22">.22</option>
            <option value="9mm">9x19mm</option>
            <option value=".40">.40</option>
            <option value=".45">.45</option>
            <option value=".357">.357</option>
            </select>
        </br>
            <p>Declare number:</p>
            <input type="number" name="antal" min="100">
            <p>Name*:</p><input type="text" name="fnamn"><input type="text" name="enamn">
            <p>Email*:</p><input type="text" name="email">
            <p>Adress:</p><input type="text" name="address">
            <p>Phone*:</p><input type="text" name="telefon">
            <br>
            <p>Add a comment</p>
            <textarea name="comment" rows="5" cols="50" maxlength="300">

            </textarea>
    <input type="submit" value="submit">
    <br><p>* required fields</p>

    </form>
    <script src="js/main.js"></script>
</body>

安格önskad kaliber

.22 9x19mm .40 .45 .357
申报编号:

姓名*:

电邮*:

地址:

电话*:


添加评论


*必填字段

上面还有一些jscript,尽管这不重要

然后是验证页面:

    <!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <?php

$kaliber=$_POST['kaliberCombo'];
$antal = $_POST['antal'];
$fornamn = $_POST['fnamn'];
$efternamn = $_POST['enamn'];
$mail = $_POST['email'];
$address = $_POST['address'];
$telefon = $_POST['telefon'];
$kommentar = $_POST['comment'];        


$sender = "Anyname";
$sendername = "examplemail@example.com";
$recipient = "gbreisch@hotmail.com";
$recipientname = "gbreisch";
$subject = "Bestallning!";
$message = "Bestallning \n
$fornamn $efternamn har beställt    
\n'$antal'st $kaliber \n
Email: $mail\n
Telefon: $telefon\n
Kommentar som gavs av kund: $kommentar";


$date = date(DATE_RFC2822);
$mid = "<" . sha1(microtime()) . "@" . $_SERVER['HTTP_HOST'] . ">";


mb_internal_encoding("UTF-8");


$sendername = mb_encode_mimeheader($sendername);
$recipientname = mb_encode_mimeheader($recipientname);

$headers =<<<EOT
From: $sendername <$sender>
Date: $date
Message-ID: $mid
MIME-Version: 1.0 
Content-Type: text/plain; charset="UTF-8"
EOT;

$status = mb_send_mail("$recipientname <$recipient>", $subject, $message, $headers, "-f$sender");
if(!$status) {
        echo "Could not send your order.";
}
else {
        echo "Order sent!";
}?>
    </body>
</html>


这让我发疯,因为代码最近运行得很好,我尝试使用一个旧的副本,它拒绝发送。

首先,如果Web服务器阻止了您的邮件,您应该尝试通过表单发送电子邮件并查看您的垃圾邮件文件夹。

尝试将您的
mb_send_mail
更改为仅
mail
,看看是否有效。除此之外,我不明白你为什么会有问题。也可以尝试在没有周期的情况下进行测试,例如你的代码>值=“.40”<代码>等。你的主机可能已经改变了一些配置,而你不知道。实际上我在今天早些时候遇到了这个问题,我还没有考虑过,但是我尝试了ECHO:把下一页上的所有变量都删掉,这似乎起作用了。我试着删除所有值中的点,没关系……这让我发疯。你做了
var\u转储
?如果是,结果是什么?我没有尝试过,主要是因为我对php如此陌生,以至于我还没有听说过它,我会研究一下,谢谢。我尝试过自己选择电子邮件函数,但即使它拒绝发送电子邮件,当我重写处理发送函数的If语句时,它也起了作用,但实际上没有发送邮件…我不知道还有什么其他因素在起作用,谢谢你的回复。