0

フォームが正常に送信された後、ユーザーをありがとうページにリダイレクトしたいと思います。以下のスクリプトを使用しましたが、エラーメッセージが表示されます。助けてください。

<?php
session_start();

$name = check_input($_POST['name'], "Name cannot be empty.");
$email     = check_input($_POST['email'], "Email address cannot be empty.");

if(!preg_match("/^([A-Za-z\s\-]{2,45})$/i", $name))
{ 
show_error("name not valid.");
}

if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{
show_error("Email address not valid.");
}

htmlentities ($message, ENT_QUOTES);

require("../PHPMailer/class.phpmailer.php");

$mail = new PHPMailer();

$mail->From     = "$email";
$mail->AddAddress("myfriend@example.net");

$mail->Subject  = "An HTML Message";
$mail->Body     = "Hello, <b>my friend</b>! \n\n This message uses HTML entities!";
$mail->WordWrap = 50;

foreach(array_keys($_FILES['photo']['name']) as $key) {
$source = $_FILES['photo']['tmp_name'][$key]; // location of PHP's temporary file for this.
$filename = $_FILES['photo']['name'][$key]; // original filename from the client

$mail->AddAttachment($source, $filename);
}

/* Redirect visitor to the thank you page */
header('Location: pthankyou.php');
exit();

function check_input($data, $problem='')
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlentities($data);
if ($problem && strlen($data) == 0)
{
    show_error($problem);
}
return $data;
}

function show_error($Error)
{}
?>

エラーメッセージ

警告:ヘッダー情報を変更できません-66行目のprocess.phpで(出力はPHPMailer / class.phpmailer.php:1370で開始されました)によって既に送信されたヘッダー

4

1 に答える 1

1

redirect()は、出力のに呼び出す必要がある特定のphp組み込み関数です。

出力は次のようになります。

  • エコー
  • htmlタグ
  • varダンプ
  • <?phpタグの前にスペースを入れる

しかし、私はredirect()あなたのコードに含まれているのを見ませんでした。より具体的なヘルプが必要な場合は、問題のある場所にコードのスニペットを含める必要があります。

于 2013-03-06T08:51:42.353 に答える