-3

こんにちは、サイトをアップロードしていて、連絡先フォームは正常に機能しています (メッセージを受信して​​います) が、送信後のページでエラーが発生しています

ここに私のphpコードがあります

私はHTML/CSSを学んでいますが、PHPはありません。このエラーを修正していただければ幸いです。「メッセージを受け取りました。ありがとうございます」を投稿する方法を教えてください。

フィードバックをお寄せいただきありがとうございます。素晴らしい一日をお過ごしください。

      <?php

       if(!$_POST) exit;

       $email = $_POST['email'];


       //$error[] = preg_match('/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i',                                              

    $_POST['email']) ? '' : 'INVALID EMAIL ADDRESS';
   if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\ \.       

    [a-z]{2,}"."$",$email )){
    $error.="Invalid email address entered";
$errors=1;
    }
   if($errors==1) echo $error;
   else{
$values = array ('name','email','message');
$required = array('name','email','message');

$your_email = "xxxxxxxxxx@gmail.com";
$email_subject = "New Message: ".$_POST['subject'];
$email_content = "new message:\n";

foreach($values as $key => $value){
  if(in_array($value,$required)){
    if ($key != 'subject' && $key != 'company') {
      if( empty($_POST[$value]) ) { echo 'PLEASE FILL IN REQUIRED FIELDS'; exit;      

    }
    }
    $email_content .= $value.': '.$_POST[$value]."\n";
  }
}

if(@mail($your_email,$email_subject,$email_content)) {
    echo 'Message sent!'; 
} else {
    echo 'ERROR!';
} 
     }
     ?>
4

1 に答える 1

0

あなたのコードは非常に厄介です。

問題はありませんが、問題を明確に確認できるように、適切なインデントを作成する必要があります。

これは、コードのよりクリーンなバージョンです。

$required = array('name','email','message');
$temp = '';
$err = array();
foreach ($required as $value) {
    if ($_POST[$value] == '') $err[] = 'Field '.$value.' is required';
    $temp .= $value.': '.$_POST[$value]."\n";
}

if (count($err) > 0) {
    echo implode('<br />',$err);
    exit;
}

$your_email = "xxxxxxxxx@gmail.com";
$email_subject = "New Message: ".$_POST['subject'];
$email_content = "new message:\n".$temp;

if (mail($your_email,$email_subject,$email_content)) echo 'Message sent';
else echo 'Message not sent';
于 2013-03-10T02:17:14.097 に答える