0

これは簡単かもしれませんが、私には道がわかりません。私の側には、ユーザーが物を買うことができるショッピングカートがあります。このため、購入者は自分の電子メールアドレスを入力フォームに入力できます。注文はphpmail()でショップオーナーとバイヤーに送信されます。

メールの送信を2通に制限する方法を探しています。これはスパムを防ぐためです。スパマーが次のようなセミコロン文字列を入力する可能性があるというリスクがあります。

email@examplecom;email@xxyz.com;hans@jdkdl.com
4

3 に答える 3

5

Yを使用して検証することはできません。

$validemail = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
if ($validemail) {
  $headers .= "Reply-to: $validemail\r\n";
}else
{
//redirect.
}

あなたの実際の質問を考慮して。

<?php
$emails = explode(';',$emailList);
if(count ($emails)<3)
{
if(filter_var_array($emails, FILTER_VALIDATE_EMAIL))
    {
    mail();
    }
  else
    {
    //die    
    }
}
?>
于 2012-09-28T08:50:38.017 に答える
1

次のように、文字列内の電子メールの数を確認できます。

if(count(explode(';',$emailList))<3)
{
    // send email
}
else
{
    // Oh no, jumbo!
}

このコードは、文字に基づいた電子メール文字列を配列;に分解すると同時に、配列でカウント関数を使用し、数に基づいて2つのシナリオのいずれかを実行します。

于 2012-09-28T08:48:37.090 に答える
0

これは、最大2つの電子メール(最初の2つ)のみを選択するために機能するはずです。

$emailString = "email@examplecom;email@xxyz.com;hans@jdkdl.com";
$emails = explode(";", $emailString);
$emails = array_slice($emails, 0, 2);
$emailString = implode(";", $emails);
var_dump($emailString);

出力:

string(31) "email@examplecom;email@xxyz.com"
于 2012-09-28T08:49:31.220 に答える