我正在使用$_POST
将数据发布到php文件。在该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"]
的使用也没有按预期工作。
POST 变量通过 PHP 中的超级全局数组$_POST
传递。因此,在您的情况下,这在技术上是可行的:
$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
(无效(。
关于"$_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);