2017-04-18 13 views
-1

を電子メールで送信されません、私はこれが私の$本体コードによってピックアップ取得される値でPHPSESSIDフィールドを作成する必要があり、は私の顧客が注文を配置した後、私は次のコードを使用して確認メールを送って、私は、この電子メールに含まれているからPHPSESSIDを防ぎたいPHPSESSID

<?php session_start(); ?> 
<?php if (!isset($_SESSION['id'])) : ?> 

どうにかセッションIDは次の点を持っています。

電子メールの出力は次のようなルックスを生成:

_fname: Mark 
_lname: Smith 
_Address_1: South St 
_Phone: 123-456-7890 
_email: [email protected] 
_Date_Needed: 4/19/17 
B1: Submit 
PHPSESSID: (some string of characters) 

興味深いことに、B1が提出し、PHPSESSIDは、私が使用している変数ではありませんが、コードは、これらの値を見つけ、それを返しています。 B1 Submitは刺激ですが、私はPHPSESSIDがセキュリティリスクの可能性があると思います。

私は次のようにユーザからフォームデータを取得するために$ _REQUESTを使用しています:

$_fname=$_REQUEST['_fname']; 
$_lname=$_REQUEST['_lname']; 
$_Address_1=$_REQUEST['_Address_1']; 

たぶん私は$ _REQUESTに$ _GETからそれを変更する必要があり、その後、同様のメール作成で$ _GETを使うのか?

+0

これはPHPSESSIDですか?この質問をサポートするコードはありません。 –

+0

'$ _REQUEST'を使用して停止 – nogad

+0

@nogad - ありがとうございます。しかし、私は何の代わりに使用しますか? – Bricked

答えて

1

フォームがPOSTデータを取得している場合は、単にそれを変更します。それはGETデータを使っている場合は、入力とがありますように$_GET代わり

+0

ご意見ありがとうございました。これまで$ _POSTを使用して問題を解決しました。私は$ _GETを試しましたが、それが問題を解決しましたが、それもすべての出力を殺しました。私もsession_destroy()を試みましたが、それはほとんど影響を与えませんでした。 $ _POSTが解決策でした。ありがとうございました – Bricked

1

問題は、フォーム/ヘッダーの動作に応じて$ _POSTまたは$ _GETの代わりに$ _REQUESTを使用している可能性があります。あなたは$ _REQUESTを使用しているので、送信されているデータの衛生的な処理を行っていないと思います。その結果、迷惑メールのメールシステムがハイジャックされ、アンチスパムブラックリストに追加される可能性があります。あなたは、適切に郵送システムを確保しているか、それらの問題を扱う第三者図書館を利用していることを読んでみたいでしょう。

セッションIDは、session_start()によって生成または再生成/再開されています。

+0

これらのコメントに感謝します。 - 「サニタイズ」に関しては、改行やコンマを取り除くためのユーザ入力を検証しています。また、電子メール/電話入力の適切な書式設定を検証し、すべてのデータ入力フィールドが数値データ入力であることを確認しています。これはアンチスパマーのあなたの懸念に十分な "衛生"ですか? – Bricked

+0

Patrick - 最新の質問をご覧ください。私は$ _REQUESTを使用してフォームデータを取得します。たぶんそれは問題の一部です。 – Bricked

+0

セッションIDは、Cookieデータの一部であるgetまたはpostには含まれません。リクエストは、フォームで使用されるものだけでなく、すべてのヘッダパラメータのコンポジットです。 –

0

$_POSTのご提出音に変更し、

foreach ($_POST as $Field=>$Value) { 
    if($Value != ''){ 
     $body .= "$Field: $Value\n\n"; 
    } 
} 

価値。

値のない送信タイプのボタンを使用できます。

サイドノートを:私はここでPOSTメソッドを使用ここで

はボタンが出力に表示されませんたとえば、です。これで問題が解決しない場合は、単に削除します。

<?php 

$body = ""; 
    foreach ($_REQUEST as $Field=>$Value) { 
    if($Value != ''){ 

    $body .= "$Field: $Value\n\n"; 

    // ... 

    } 
    } 

?> 

<form method="post"> 

    abc1: 
    <input name="abc1" value="abc1a" type="text"> 
    <br> 

    abc2: 
    <input name="abc2" value="abc2a" type="text"> 
    <br> 

    abc3: 
    <input name="abc3" value="abc3a" type="text"> 
    <br> 

    abc4: 
    <button name="abc4" type="submit">SUBMIT</button> 

</form> 
関連する問題