2011-12-15 7 views
0

私の最近の関連する質問hereにお答えいただき、ありがとうございました。すべての回答が助けられ、進歩と少しの教育が与えられました。元の著者がこのコードを書いて、どれくらい前にそこに古風な方法があるか分かりません。動作しない古いPHPコードの理由はありますか?

フォームがユーザー入力をキャプチャし、$ dateofbirthなどの変数名を割り当て、後で所有者に電子メールで使用されるコードで、同様の原則が適用されます。現時点では、他の言葉では出産や他のフィールドの日付が電子メールに含まれていない

<p>Date of Birth <i>(dd/mm/yyyy)</i><br /><input name="dateofbirth" value="<? echo $dateofbirth;?>" type="text" style="width: 350px;" /></p> 


<p><br /><input type="hidden" name="service" value="<? 
echo $service; 
?>" /> 

<input type="hidden" name="p" value="<? 
echo $p; 
?>" /> 
<input type="submit" value="Order now" /></p> 
</form> 

送信する電子メールのコードが古い、古風上記のコードは、要約すると、ここで

$emailtext = "From: " . $clientname . "\r\n"; 
$emailtext .= "Service ordered: " . $service . "\r\n"; 
$emailtext .= "Price to pay: £" . $p . "\r\n"; 
$emailtext .= "Date of birth: " . $dateofbirth . "\r\n"; 
$emailtext .= "Questions:\r\n\r\n" . $questions . "\r\n\r\n"; 
$emailtext .= "Comments:\r\n\r\n" . $comments . "\r\n\r\n"; 
$emailtext .= $email; 

されていますサポートされておらず、機能させるために近代化が必要なのでしょうか?

ありがとうございました。

答えて

1

はい、上記のコードは、PHP設定オプションregister_globalsが有効になっている場合に限り、そのまま動作します。このPHPオプションを有効にすることは危険であり、まったくお勧めできません。あなたは、単に実際の$ _POST配列値を持つ電子メールテンプレート内の変数のすべてを交換する必要があります。

$emailtext = "From: " . $_POST['clientname'] . "\r\n"; 
$emailtext .= "Service ordered: " . $_POST['service'] . "\r\n"; 
$emailtext .= "Price to pay: £" . $_POST['p'] . "\r\n"; 
$emailtext .= "Date of birth: " . $_POST['dateofbirth'] . "\r\n"; 
$emailtext .= "Questions:\r\n\r\n" . $_POST['questions'] . "\r\n\r\n"; 
$emailtext .= "Comments:\r\n\r\n" . $_POST['comments'] . "\r\n\r\n"; 
$emailtext .= $_POST['email']; 

私はすべてのこれらの変数は、この修正されたコードでは、フォームを経由して送信されたと仮定しています。これらの行の上にある処理関数で設定された変数は、上記のように変換する必要はありません。

+0

また、送信フォームのメソッドがPOSTに設定されていることを前提としています。設定されていない場合、またはGETに設定されている場合は、POSTに変更するか、電子メールテンプレートの受信データを読み込むときに$ _POSTの代わりに$ _GETを使用します。 –

+0

また、有効にされた短いタグでのみ機能します。 – nickb

+0

はい、投稿するように設定されています。私はあなたが提案するように更新中です。最初のコードブロックで何かを変更する必要はありますか? <? – user1098813

関連する問題