3

私はphpを学んでいて、たくさんの例と演習が含まれている本を持っています。私がしているのは、電子メールの送信に関するものです。コードをレターにコピーしましたが、エラーが発生します:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\website2\www\sendscript.php on line 6 

なぜこれが起こっているのですか、何か考えはありますか?

これが私のPHPスクリプトです:

<?php
    if(($_POST['sender_name']=="")||($_POST['sender_email']=="")||($_POST['message']=="")){
        header("Location: sendemail.html");
        exit;
    }

    $email = "Sender's name:\t$_POST['sender_name']\n";
    $email .= "Sender's email:\t$_POST['sender_email']\n";
    $email .= "Message:\t$_POST['message']\n";
    $to = "stafford.king16@pgs.org.uk";
    $subject = "did script work?";
    $mailheaders = "From: Stafford King";
    $mailheaders .= "Reply to: $_POST['sender_email']\n";
    mail($to, $subject, $email, $mailheaders);
?>
<html>
    <head></head>
    <body>
        <h1>Email sent!</h1>
    </body>
</html>

そして、これが私のメール入力フォームです。

<html>
  <head></head>
  <body>
    <form method = "post" action = "sendscript.php">
        <p><strong>Your name:</strong><br />
        <input type = "text" name = "sender_name" size = "30"</p>
        <p><strong>Your email address:</strong><br />
        <input type = "text" name = "sender_email" size = "30"</p>
        <p><strong>Message:</strong><br />
    <textarea name = "message" cols = "30" rows = "5" wrap = "virtual"></textarea></p>
        <p><input type = "submit" name = "submit" value = "send email"></p>
    </form>
  </body>
</html>

みんなありがとう :)

4

4 に答える 4

9

配列変数を中括弧で囲む{}か、文字列内で連結する必要があります。

オプション1

$email = "Sender's name:\t{$_POST['sender_name']}\n";

オプション2

$email = "Sender's name:\t" . $_POST['sender_name'] . "\n";

ノート:

Dreamweaver(ライセンス料)、NetBeans、Eclipse(オープンソースと無料の両方)などのIDEを使用すると、すぐにこれを捕らえることができます。メモ帳やメモ帳++ではなく、これらのいずれかを試してください。

于 2012-08-28T18:20:00.270 に答える
1
$email = "Sender's name:\t$_POST['sender_name']\n";

うまく解決できません。使用する

$email = "Sender's name:\t{$_POST['sender_name']}\n";

代わりは。または、連結または使用することもできますsprintf

$email = "Sender's name:\t" . $_POST['sender_name'] . "\n";
$email = sprintf("Sender's name:\t%s\n", $_POST['sender_name']);
于 2012-08-28T18:20:23.547 に答える
0

連結を分割する必要があります。

$email = "Sender's name:\t" . $_POST['sender_name'] . "\n";
$email .= "Sender's email:\t" . $_POST['sender_email'] . "\n";
$email .= "Message:\t" . $_POST['message'] . "\n";

PHPは、現在のようにそれを解析できません。

于 2012-08-28T18:20:31.177 に答える
0

変数を中括弧で囲むか、二重引用符から外すと、電子メールの本文には役立ちますが、解析エラーは解決されません。メールのヘッダーがめちゃくちゃになっているようです。各行の最後に「\n」が必要です。最初の$mailheader割り当てを次のように変更します。$mailheaders = "From: Stafford King\n";

于 2012-08-28T18:25:16.417 に答える