0

指定された電子メールアドレスに電子メールを送信するphpスクリプトがあります。

$headers = array(
  'From: emailhidden',
  'Content-Type: text/html'
); 

$body = array(
  '<br><br><br>',
  '<h3>Success!</h3><br>',
  '<p>Your sign up for My Panda was Successful! you may now sign in using the    information provided below.</p>', 
  '<p><b>Login URL:</b> <a href="http://www.green-panda.com/my-panda.html">http://www.green-panda.com/my-panda.html</a></p>', 
  '<p><b>Username:</b> echo "$_POST[unique_id]";</p>',
  '<p><b>Username:</b>". $POST['unique_id']."</p>',
  '<p><b>Password:</b> echo "$_POST[passphrase]";</p>',
  '<p>If you ever have any problems with My Panda or have questions, please contact us at: moevans@green-panda.com'
);

mail('emailhidden', 'My Panda Registration', implode("\r\n", $body), implode("\r\n", $headers));

問題はここに<p><b>Username:</b> echo "$_POST[unique_id]";</p>',あります。パスフレーズも同じです。フォームに入力されたものとは異なり、正確にそのように表示されます。スクリプトの前にフォームに投稿されたものを表示するにはどうすればよいですか? 入力フィールド名は、スクリプトの投稿値と同じです。ありがとうございました!

4

4 に答える 4

2

そこで二重引用符を使用しています。

'<p><b>Username:</b>". $POST['unique_id']."</p>',
                    ^                     ^

代わりに一重引用符を使用して、次のように変更$POST$_POSTます。

'<p><b>Username:</b>' . $_POST['unique_id'] . '</p>',
于 2013-08-23T20:33:10.813 に答える
0

それらを文字列のように扱っているため、記述されたとおりにレンダリングされます。変数を連結すると、問題は解決するはずです。

'<p><b>Username:</b> echo "'.$_POST[unique_id].'";</p>',
于 2013-08-23T20:33:49.903 に答える
0

コードに構文の問題があります。(下線付き)の正しい構文を使用$_POSTし、同じ引用符でドットで文字列と変数を連結します

'<p><b>Username:</b>' . $_POST[unique_id]. '</p>'
于 2013-08-23T20:34:49.747 に答える
0

気分を害するつもりはありませんが、あなたのコードはバグや構文エラーでいっぱいです。

まず第一に、単一引用符を使用しているため、PHP は変数の値を解釈していません。

次に、文字列リテラル内で echo を呼び出しています。

第三に、多くの POST 配列インデックスで引用符がありません。

第 4 に、$_POST 変数の一部にアンダースコアがありません。

第 5 に、ユーザー名を 2 回続けて表示していますが、これは意図したものですか?

これは役立つはずです:

  '<p><b>Username:</b>' .$_POST['unique_id'].'</p>',
  '<p><b>Username:</b>' .$_POST['unique_id'].'</p>', //why twice?
  '<p><b>Password:</b>' .$_POST['passphrase'].';</p>',

知っておくべきこと: 一重引用符で文字列を宣言すると、PHP は内部の変数を解釈しません。これを試してみると、私が何を意味するかがわかります。

    $foo = "Bar";
    echo '$foo';
    echo "$foo";

一重引用符を使用しているため、コードを機能させるために上記の連結を追加しました。タグ内で一重引用符を使用し、文字列を二重引用符で囲むことで、同じことを実現できます。次に、次のように、変数をインラインで実行できます。

    "<p><b>Username:</b>$_POST['unique_id']</p>", 
于 2013-08-23T20:42:02.760 に答える