PHP - сохранить значение и имя, используя $ _POST - PullRequest
0 голосов
/ 15 декабря 2011

В настоящее время я использую следующий формат для сохранения значения из формы HTML $item_name=$_POST['item_name'];

Это сохраняет значение, но как мне также сохранить атрибут name в переменной?

Заранее спасибо!

Ответы [ 5 ]

3 голосов
/ 15 декабря 2011

Если вы хотите сохранить каждый элемент переменной $ _POST как пару ключ-значение, тогда вы можете попробовать:

$var = array();
foreach($_POST as $key => $val) {
  $var[$key] = $val;
}
0 голосов
/ 15 декабря 2011

Я сохраняю большое количество значений и хочу не вводить каждое из них.

Пожалуйста, подумайте сначала.
Глобальные переменные предназначены вводится вручную.
Если вам нужна автоматизированная обработка, просто сохраняйте их в виде массива.

Похоже, ответ rdt.exe - это то, что вы ищете.

0 голосов
/ 15 декабря 2011

Функция, которую вы ищете, называется extract .

Это создаст переменные для всех пар $key=>$val в массиве.

$_EXAMPLE = array('bird' => 'chicken', 'dog' => 'greyhound');
export($_EXAMPLE);
echo $bird;  # prints "chicken"
echo $dog;   # prints "greyhound"

Будьте осторожны - это огромный риск для безопасности . Как и решения, описанные в некоторых других ответах.

Проблема с выполнением чего-то подобного заключается в том, что пользователь может изменять данные POST и устанавливать параметры, отличные от тех, которые он должен установить. Если они устанавливают переменные, которые фактически являются именами переменных в вашем приложении, эти переменные могут быть перезаписаны .

$is_admin = false;
$_EXAMPLE = array('bird' => 'chicken', 'dog' => 'greyhound', 'is_admin' => 'true');
export($_EXAMPLE);

if ($is_admin) {  # this will now evaluate to true.
    # do sensitive stuff...
}
0 голосов
/ 15 декабря 2011

Альтернативный подход:

$keysarray = array_keys ( $_POST);  
print_r( $keysarray);

Это даст вам все ключи в массиве

0 голосов
/ 15 декабря 2011

Возможно, вы заметили, что вы должны использовать имя для доступа к массиву $_POST и получения значения.если вы также хотите сохранить имя в переменной, просто сделайте:

$item_name_name = 'item_name';
$item_name_value = $_POST[$item_name_name];

, вы могли бы также использовать какой-то цикл для динамического создания переменных с соответствующими именами, например так:

foreach( $_POST as $name => $value ){
    $$name = $value;
}

оба пути, на мой взгляд, являются чем-то ненужным и бесполезным, но вы еще не заявили, чего именно вы пытаетесь достичь - так что, возможно, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...