¿Cómo se puede pasar una variable como el valor de la clave de matriz $ _POST en PHP? ¿O acaso no es posible?
$test = "test";
echo $_POST[$test];
Gracias
¿Cómo se puede pasar una variable como el valor de la clave de matriz $ _POST en PHP? ¿O acaso no es posible?
$test = "test";
echo $_POST[$test];
Gracias
$_POST['key'] = "foo";
echo $_POST['key'];
Si he entendido bien, que quieren establecer una clave $_POST
.
Sí, sí se puede:
$postName = "test";
$postTest = $_POST[$postName];
$_POST["test"] == $postTest; //They're equal
Obras tal como dijiste ...
Ejemplo:
// create an array of all the GET/POST variables you want to use
$fields = array('salutation','fname','lname','email','company','job_title','addr1','addr2','city','state',
'zip','country','phone','work_phone');
// convert each REQUEST variable (GET, POST or COOKIE) to a local variable
foreach($fields as $field)
${$field} = sanitize($_POST[$field]);
?>
actualiza basándose en los comentarios y downvotes ....
no soy, como se sugiere a continuación en los comentarios bucleando todos los datos y agregando a una variable - bucle de lista predeterminada de variables y almacenándolos en variables ...
He cambiado el método para obtener la d ata
Esto casi nunca debería hacerse, puedo inyectar fácilmente su código o cambiar las variables de su sistema y recopilar información del sistema modificando la cadena de consulta. – Fabrizio
@Fabrizio Disculpa mi ignorancia, ¿cómo puedes inyectar mi código? ¿La matriz está en el lado del servidor? ¿Cómo es diferente de enumerar cada uno – ManseUK
digamos que tiene una variable del sistema llamada '$ mysql_user', y paso en la consulta algo así como'? mysql_user = root', intentará conectarse a su servidor mysql utilizando el usuario 'root'. podría dar un error en la pantalla, brindándome incluso más información de la necesaria. Está intentando emular lo que 'register_global' solía hacer en PHP.hay una razón por la cual esto ahora está en desuso ;-) – Fabrizio
Si entiendo bien, quiere pasar una variable de un archivo php a otro a través de una publicación. Esto seguro es posible de varias maneras.
1. Con un formulario HTML-
<form action="target.php" method="post">
<input type="text" name="key" value="foo" />
<input type="submit" value="submit" />
</form>
si hace clic en el botón de enviar, $_POST['key']
en target.php
contendrá 'foo'
.
2. Directamente desde PHP
$context = stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => "Content-type: text/html\r\n",
'content' => http_build_query(array('key' => 'foo'))
),
));
$return = file_get_contents('target.php', false, $context);
Lo mismo que en 1. y $return
contendrá todos los productos elaborados por target.php
.
3. A través de AJAX (jQuery (JavaScript))
<script>
$.post('target.php', {key: 'foo'}, function(data) {
alert(data);
});
</script>
Lo mismo que en 2., pero ahora data
contiene la salida de target.php
.
Lo que demuestra debería funcionar, pero no estoy seguro de lo que está tratando de hacer? –
Oh Dios, funciona. Otro pedazo de código lo estaba tirando. – Dietpixel