PHP标头不从表单提交操作页面重定向

时间:2015-08-07 23:06:23

标签: php html forms

在提交表单时,用户将进入以下操作页面。在此页面上,电子邮件与附件一起发送。

我正在接收电子邮件和附件,但header('Location: ...')无效。操作页面不会重定向,并继续在浏览器中显示加载标志。在调试时发现页面上没有错误。

*只有在附加文件时才会出现此问题。

PHP表单处理页面: -

<?php
require_once 'settings.php';
if (( isset($_POST)) && ( empty($_POST))) {
    header('Location: ../career.html');
    die ;
}

foreach ($_POST as $key => $value) {

    if (empty($value)) {
        header('Location: ../career.html#error');
        die ;
    }

    if (ini_get('magic_quotes_gpc')) {
        $value = stripslashes($value);
    }
    $val[$key] = htmlspecialchars(strip_tags(trim($value)));
}

$tmp = date('r');
$message = "<!DOCTYPE html><html><body>";
$message .= "<p><strong>Name: </strong>{$val['name']}</p>";
$message .= "<p><strong>Email: </strong>{$val['email']}</p>";
$message .= "<p><strong>Phone: </strong>{$val['phone']}</p>";
$message .= "<p><strong>Work Experience: </strong>{$val['workex']}</p>";
$message .= "<p><strong>Career: </strong>{$val['career']}</p><br>";
$message .= "<p> <i> This form was submited from {$_SERVER["HTTP_HOST"]} on $tmp by IP {$_SERVER['REMOTE_ADDR']} </i> </p>";
$message .= "</body></html>";
$uid = md5(uniqid(time()));

$header = "From: " . $val['name'] . " <" . $val['email'] . ">\r\n";
$header .= "Reply-To: " . $val['name'] . " <" . $val['email'] . ">\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"" . $uid . "\"\r\n\r\n";
$header .= "This is a multi-part message in MIME format.\r\n";
$header .= "--" . $uid . "\r\n";

$header .= "Content-type:text/html; charset=utf-8\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= $message . "\r\n\r\n";
$header .= "--" . $uid . "\r\n";

if (isset($_FILES["file"]["name"]) && !empty($_FILES["file"]["name"])) {

    if ($_FILES["file"]["size"] > $fileSize) {
        header('Location: ../career.html?#error-size');
        die ;
    }
    $filename = $_FILES["file"]["name"];
    $ext = pathinfo($filename, PATHINFO_EXTENSION);

    if (!in_array($ext, $fileType)) {
        header('Location: ../career.html?#error-type');
        die ;
    }

    $content = chunk_split(base64_encode(file_get_contents($_FILES["file"]["tmp_name"])));
    $header .= "Content-Type: application/octet-stream; name=\"" . $filename . "\"\r\n";
    $header .= "Content-Transfer-Encoding: base64\r\n";
    $header .= "Content-Disposition: attachment; filename=\"" . $filename . "\"\r\n\r\n";
    $header .= $content . "\r\n\r\n";
    $header .= "--" . $uid . "--";

}

if (mail($mailTo, $careerSubject, $message, $header)) {
    header('Location: ../career.html#success');
    die ;
} else {
    header('Location: ../career.html?#error');
    die ;
}
?>

1 个答案:

答案 0 :(得分:0)

尝试删除&#34; ..&#34;,如标题(&#39;位置:/career.html#error');