1

わかりました...それで、いくつかの異なる Web サイトの組み合わせと前任者から、この PHP 連絡フォームを取得しました。私は何時間もそれと格闘してきましたが、それを理解することはできません.

公平を期すために、PHP は私の得意分野ではないことを知っておいてください(私はクライアント側のプログラマーです)。以下にコードを示します。できれば助けてください。ありがとうございました!

以下は、私が見たエラー メッセージの一部です。

最新: *解析エラー: 構文エラー、11 行目の /home/[...] の予期しない T_IF*

以前、ここにエラーメッセージがありましたが、「空白フィールド」の部分を修正したと思います:

空白のフィールドを残したようです。

氏名、メールアドレス、件名、詳細を必ず入力してください。お問い合わせフォームに戻るには、戻る矢印をクリックします。

送信元:... リスト:; 受信者アドレスの構文が不正です

返信先:... リスト:; 受信者アドレスの構文が不正です

X-Mailer:... リスト:; 受信者アドレスの構文が不正です

[名前] さん、お問い合わせありがとうございます。

ここにHTMLがあります

<form action="contactus.php" method="post" class="create">
     <fieldset>
    <legend align="center">Please fill out details below and click "Submit"</legend>
    <div>
     <label for="fullname" class="fixedwidth">Full Name</label>
     <input type="text" name="fullname" id="fullname" class="input2"/>
    </div><br/>
    <div>
     <label for="email" class="fixedwidth">Email</label>
     <input type="text" name="email" id="email" class="input2"/>
    </div><br/>
      <div>
     <label for="subject" class="fixedwidth">Subject</label>
     <input type="text" name="subject" id="subject" class="input2"/>
    </div><br/>
    <div>
    <label for="details" class="fixedwidth">Body</label>
     <textarea id="details" name="details" cols="62" rows="20"></textarea>
    </div>
    <div class="buttonarea">
        <input type="submit" name="submit" id="submit" value="Submit"/>
    </div>

    </fieldset>
   </form>

...そして、これが contactus.php ファイルです:

<?php

 $fullname = $_POST['fullname'];
 $subject = $_POST['subject'];
 $details = $_POST['details'];
 $email = $_POST['email'];

//*** Function to check email address */
 function checkemail($email) { 
  $regex = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)@[a-z0-9-]+(\.[a-z0-9-]+)(\.[a-z]{2,3})$/'
   if (eregi($regex ,$email))
   { 
    return true; 
   } 
    else
   { 
    return false; 
   } 
 }

//*** Check to see if the email address is valid */
 else if (checkemail($email) == false) { 
  echo "<br/><br/><p><center>It appears that you have entered an invalid email address.<br/> Please check your email again.</p>";
 }

//*** Mail Processing */
 if ($_POST['submit']) {
 //Check for blank fields
  if ($fullname !== "" && $email !== "" && $subject !== "" && $details !== "") {
   echo "<br/><br/><p><center>It appears that you left a blank field.<br/> 
   Please make sure you fill in your full name, email address, subject, and details.<br/>
   Click the back arrow to return to the contact form.</p>";
  }

//*** Send Mail**/
 $to = 'sgraffito22@gmail.com';
 $fullname = $_POST['fullname'];
 $subject = $_POST['subject'];
 $details = $_POST['details'];

 $headers = 'From: '.$email."\r\n".
 'Reply-To: '.$email."\r\n" .
 'X-Mailer: PHP/' . phpversion();

 mail($to, $fullname, $subject, $details, $headers);
 echo "<br><br><p><center>Thank you, $fullname, for contacting us!</p><br><br>";

}

?> 
4

2 に答える 2

0

;あなたはの終わりに欠けています

$regex = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)@[a-z0-9-]+(\.[a-z0-9-]+)(\.[a-z]{2,3})$/'

、、および構文エラーFromは、との切り替えによって発生する可能性がありますReply-toX-Mailer'"$headers

$headers = 'From: '.$email."\r\n".
  'Reply-To: '.$email."\r\n" .
   'X-Mailer: PHP/' . phpversion(); 

-に変更してみてください

$headers  = "From: ".$email."\r\n";
$headers .= "Reply-To: ".$email."\r\n";
$headers .= "X-Mailer: PHP/" . phpversion();
于 2012-08-29T03:03:54.313 に答える
0

ショーンによって正規表現ソリューションが提供されているため、

これは、私が使用した以前のプロジェクトの正規表現です。

$regex= "/^[\.a-z0-9_\-]+[@][a-z0-9_\-]+([.][a-z0-9_\-]+)+[a-z]{1,4}$/i";

これは PHP メーリングのもう 1 つの代替手段です。このメーリングを機能させるには、phpmailer プラグインをダウンロードする必要があります。

<?php
// mail config start 

$emailAddress = 'youremailhere';
$replyAdress ='yourreceipientemailhere';
$replyName = 'yourreceipientname';
$msgSubject= 'yoursubjecthere';


// mail config end 

// Include the class,
require "phpmailer/class.phpmailer.php";

//Type your message here:
$msg = 'blablayourmessagehere';

//The mailing process begins!!
$mail = new PHPMailer();
$mail->IsMail();

$mail->AddReplyTo($replyAdress, $replyName);
$mail->AddAddress($emailAddress);
$mail->SetFrom($replyAdress, $replyName);
$mail->Subject = "New: ".$replyName." have sent a ".$msgSubject." message";

$mail->MsgHTML($msg);

$mail->Send();

?>
于 2012-08-29T06:32:41.207 に答える