2012-05-07 71 views
0

我正在使用$_POST將數據發佈到php文件。在該PHP文件中,我有以下內容。使用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"]的使用也不像預期的那樣工作。

回答

1

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(無效)。

+0

謝謝,這個伎倆。 – user1373779

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); 
+0

謝謝,這工作。感謝您指出了這一點。 – user1373779

+0

這是我的代碼:https://justpaste.it/1gt46。我如何聲明多個id在變量中。單值聲明是:$ productId = 19;如何在$ productId =中聲明多個值? – Rathinam