0

$_POSTphpファイルにデータを投稿するために使用しています。そのphpファイルには、次のものがあります。

$params = array(
        'name' => "$fname",
        'email' => "$email",
        'ad_tracking' => 'test',
        'ip_address' => '$_SERVER["REMOTE_ADDR"]',
    );
    $subscribers = $list->subscribers;
    $new_subscriber = $subscribers->create($params);

$_POSTデータを使用して配列内の各キーの値を定義するための最良の方法は何ですか?の使用$_SERVER["REMOTE_ADDR"]も期待通りに機能していません。

4

2 に答える 2

1

POST変数は$_POST、PHPのスーパーグローバル配列を介して渡されます。したがって、あなたの場合、これは技術的には機能します。

$params = array(
    'name' => $_POST['fname'],
    'email' => $_POST['email'],
    'ad_tracking' => 'test',
    'ip_address' => $_SERVER['REMOTE_ADDR'],
);

のコード$_SERVER["REMOTE_ADDR"]は一重引用符で囲まれています。これは、PHPでは逐語的な文字列を意味します(つまり、変数の補間はありません)。

ところで、入力フィルタリングについても考える必要があります-http: //www.php.net/filter

例を挙げると、これは現在のケースで入力フィルタリングを実行します。

$filtered = filter_input_array(INPUT_POST, array(
    'fname' => FILTER_SANITIZE_STRING,
    'email' => FILTER_VALIDATE_EMAIL,
);

内部の各値$filteredは、値(有効)、存在NULL(存在しない)、またはfalse(無効)のいずれかになります。

于 2012-05-07T02:51:31.833 に答える
0

「$_SERVER ["REMOTE_ADDR"]の使用も期待どおりに機能していません。」:単一引用符はphp変数を評価しません

$params = array(
    'name' => $_POST["fname"],
    'email' => $_POST["email"],
    'ad_tracking' => 'test',
    'ip_address' => $_SERVER["REMOTE_ADDR"],
);
$subscribers = $list->subscribers;
$new_subscriber = $subscribers->create($params);
于 2012-05-07T02:42:10.857 に答える