PHP邮件在我不编辑代码的情况下停止工作

PHP邮件在我不编辑代码的情况下停止工作,php,forms,email,input,send,Php,Forms,Email,Input,Send,我的PHP邮件有问题。它不停地工作,我甚至都不碰代码。我有一个脚本,可以检查所需的表单是否为空。这个脚本很有效。但如果我填写了所有必填字段,我会收到一条文本,上面写着“您的邮件已成功发送”,但我没有。但是,如果我只需将一些文本行向下移动并返回到原始位置来编辑代码,它就会工作一段时间。它经常在夜间停止工作。是服务器造成了问题还是我在下面发布的代码 <?php if(isset($_POST['submit'])){ $namn = strip_tags($_POST['namn']);

我的PHP邮件有问题。它不停地工作,我甚至都不碰代码。我有一个脚本,可以检查所需的表单是否为空。这个脚本很有效。但如果我填写了所有必填字段,我会收到一条文本,上面写着“您的邮件已成功发送”,但我没有。但是,如果我只需将一些文本行向下移动并返回到原始位置来编辑代码,它就会工作一段时间。它经常在夜间停止工作。是服务器造成了问题还是我在下面发布的代码

<?php

if(isset($_POST['submit'])){

$namn = strip_tags($_POST['namn']);
$foretag = strip_tags($_POST['foretag']);
$adress = strip_tags($_POST['adress']);
$postnr = strip_tags($_POST['postnr']);
$ort = strip_tags($_POST['ort']);
$telefon = strip_tags($_POST['telefon']);
$epost = strip_tags($_POST['epost']);
$meddelande = strip_tags($_POST['meddelande']);

function check_required_fields($required_array){
    $field_errors = array();
    foreach($required_array as $fieldname){
        if ((!isset($_POST[$fieldname])) || (empty($_POST[$fieldname]))){ 
            if($_POST[$fieldname] != '0'){
                $field_errors[] = $fieldname; 
            }
        }
    }
    return $field_errors;
}

$errors = array();
$required_fields = array('namn', 'telefon', 'meddelande');
$errors = array_merge($errors, check_required_fields($required_fields));

if(empty($errors)){

$meddelande=nl2br($meddelande);

if(empty($foretag)){ $foretag='-'; }
if(empty($adress)){ $adress='-'; }
if(empty($postnr)){ $postnr='-'; }
if(empty($ort)){ $ort='-'; }
if(empty($epost)){ $epost='-'; }

$body = 
"
Namn: <b>". $namn ."</b><br />
Företag: <b>". $foretag ."</b><br />
Adress: <b>". $adress ."</b><br />
Postnr: <b>". $postnr ."</b><br />
Ort: <b>". $ort ."</b><br />
Telefon: <b>". $telefon ."</b><br />
E-post: <b>". $epost ."</b><br /><br />
Meddelande: <b><br />". $meddelande
;

$headers = "From: $namn <webmaster@allflytt.com>\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$headers .= "X-Mailer: PHP v".phpversion();

$success = mail('info@allflytt.com', 'Meddelande', $body, $headers);

}

}

?>

    <form method="post" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>">
    
            <?php
                if(!empty($errors)){
                    echo "<p class=\"field_error\">De rödmarkerade fälten måste fyllas i.</p>";
                }
            ?>
            
            <?php
                if(empty($errors) && $success){
                    echo "<p class=\"p_success\">Tack för ditt meddelande! Vi kommer att besvara det inom kort.</p>";
                }
            ?>
    
    <p>
        <label for="namn">
        <?php if(!empty($errors)){if(in_array("namn", $errors)){echo "<span class=\"field_error\">";}}?>Namn: *<?php if(!empty($errors)){if(in_array("namn", $errors)){echo "</span>";}} ?>
        </label><br />
        <input type="text" name="namn" id="namn" class="text" tabindex="15" value="<?php if(!empty($errors)){ echo $namn; } ?>" />
            <br />
        <label for="foretag">Företag:</label><br />
        <input type="text" name="foretag" id="foretag" class="text" tabindex="20" value="<?php if(!empty($errors)){ echo $foretag; }?>" />
            <br />
        <label for="adress">Adress:</label><br />
        <input type="text" name="adress" id="adress" class="text" tabindex="30" value="<?php if(!empty($errors)){ echo $adress; } ?>" />
            <br />
        <label for="postnr">Postnummer:</label><br />
        <input type="text" name="postnr" id="postnr" class="text_medium" tabindex="40" value="<?php if(!empty($errors)){ echo $postnr; } ?>" />
            <br />
        <label for="ort">Ort:</label><br />
        <input type="text" name="ort" id="ort" class="text" tabindex="50" value="<?php if(!empty($errors)){ echo $ort; } ?>" />
            <br />
        <label for="telefon">
        <?php if(!empty($errors)){if(in_array("telefon", $errors)){echo "<span class=\"field_error\">";}}?>Telefon: *<?php if(!empty($errors)){if(in_array("telefon", $errors)){echo "</span>";}} ?>
        </label><br />              
        <input type="text" name="telefon" id="telefon" class="text" tabindex="60" value="<?php if(!empty($errors)){ echo $telefon; } ?>" />
            <br />
        <label for="epost">E-post:</label><br />                
        <input type="text" name="epost" id="epost" class="text" tabindex="70" value="<?php if(!empty($errors)){ echo $epost; } ?>" />
            <br />
        <label for="meddelande">
        <?php if(!empty($errors)){if(in_array("meddelande", $errors)){echo "<span class=\"field_error\">";}}?>Meddelande: *<?php if(!empty($errors)){if(in_array("meddelande", $errors)){echo "</span>";}} ?>
        </label><br />              
        <textarea name="meddelande" id="meddelande" class="textarea" tabindex="80"><?php if(!empty($errors)){ echo $meddelande; } ?></textarea>
            <br />  
        <input type="submit" name="submit" value="Skicka" class="submit" />
    </p>

    </form>


我也经历过类似的问题。打开浏览器时,由于出错,有时会双击您的表单;一次有内容,另一次没有内容

如果没有任何内容提交到脚本中,显然没有什么可执行的。有很多方法可以检查这一点,但我发现这是一种不顾一切的最后手段,每次我都会给自己发送电子邮件。我发现我经常收到两封邮件,其中脚本只运行过一次


正在尝试:)

无法找到代码中是否有错误。 检查服务器中是否启用了APC缓存。 有时,它会在获取更新的代码时产生问题

如果您使用的是SMTP服务器,则mail()函数可能无法工作。
你可以用梨来做这个。

问题解决了。已更改为新的服务器主机。没有问题了

问题是邮件根本就没有发送。正如我所提到的,错误检查是有效的,但如果我填写所有必填字段,它不会显示成功消息,邮件甚至不会发送。与我的web托管公司进行了交谈,APC缓存已经启用。他正在进一步调查这个问题。但它必须与服务器有关,对吗?如果不是,我就不知道了。好的,你在使用SMTP服务器吗?如果是,则邮件可能无法工作。用梨发邮件。你可以参考这个。我认为是这样。我问我的服务器主机,他说SMTP是在邮件服务器上配置的。我现在尝试用pear发送邮件,但没有成功。我只是在点击提交时得到一个空白窗口。但这真的是问题所在吗?为什么它偶尔会发送我的邮件呢?我的服务器主机说我不需要用pears来发送邮件。经过几天的调查,我还没有找到解决办法。有一件事我已经注意到了,那就是它在夜间停止工作。然后,我开始上传一个已经在服务器上的随机html/php文件。我甚至不需要对文件进行更改,只需上传完全相同的文件即可使其再次工作。我已经看过我的代码好几次了,也没有发现我的代码有任何错误。我真的很感谢到目前为止的帮助。希望你能进一步帮助我:)