sirve que por para otro metodo formulario enviar entre ejemplo diferencia datos _request _get php http parameters add-on

que - Función php para comparar variables externas en un único objeto independientemente de GET o POST



get php url (5)

puedes usar la variable global $ _REQUEST. está definido por el PHP interpretado por defecto cuando su aplicación se ejecuta en web sapi (como CGI o módulo de servidor web), que es el caso de su aplicación cuando está escribiendo aplicaciones basadas en web usando PHP. $ _REQUEST es una matriz asociativa de todos los datos en $ _GET y $ _POST y está definida por defecto. no se necesita extensión / librari para usarlo.

Recuerdo haber revisado el código PHP de otra persona una vez y tenía una función o método de clase que hacía rodar todas las variables GET y POST en un solo objeto simple antiguo que luego se podía pasar. Si apareciera el mismo par nombre-valor en GET y POST, POST ganaría.

¿Hay algún complemento bien codificado de PHP que haga exactamente eso?


Combinar ambas variables (o usar $_REQUEST o Register Globals en su lugar) puede causar fallas de seguridad ya que no se puede identificar de manera definitiva la fuente de sus valores. Por lo tanto, al acceder a $_REQUEST[''foobar''] no puede decir si el valor se ha enviado a través de URL, cuerpo POST o Cookie. Esto puede hacer que la secuencia de comandos sea vulnerable para la Falsificación de solicitudes entre sitios .

Por lo tanto, le recomiendo que busque la seguridad en lugar de la comodidad y use esas variables de las que espera que provengan sus valores. $_GET para los argumentos que se espera que se pasen por URL, $_POST para los que se pasan a través de POST y $_COOKIE para las cookies.


Considero una mala práctica combinar $_GET con $_POST . Están pensados ​​para cosas completamente diferentes, y al tratarlos de la misma manera, estás haciendo un mal uso del protocolo HTTP. Como se mencionó, $_REQUEST hace lo que quiere, pero es un poco impredecible. Podrías escribir fácilmente tu propia función global para hacer lo mismo:

function param($name, $default = null) { return isset($_POST[$name]) ? $_POST[$name] : (isset($_GET[$name]) ? $_GET[$name] : $default); }

Pero realmente ... es una mala práctica.


Esta es la clase de mi framework que maneja globales en toda la aplicación. No se realiza ningún procesamiento de las variables aquí.

class stGlobal

{

//instance private static $instance; //global settings public $post = ''''; public $get = ''''; public $files = ''''; public $request = ''''; private function initialize() { $this->post = $_POST; $this->get = $_GET; $this->files = $_FILES; $this->request = $_REQUEST; } public function getInstance() { if (!isset(self::$instance)) { $class = __CLASS__; self::$instance = new $class(); self::$instance->initialize(); } return self::$instance; }

}

Para usarlo en cualquier lugar

$myObj = stGlobal::getInstance();


Puede usar $_REQUEST , pero tenga en cuenta que contiene los contenidos de $_GET , $_POST y $_COOKIE , y que la presencia (y el orden, para fines de sobrescritura) de variables en este superglobal está sujeto a configuración en el entorno de ejecución.

Si esto está causando problemas, podría ser una buena idea desplegar una versión simple, cuyo quid sería algo así como

$requestData = array_merge( $_GET, $_POST );

A continuación, puede resumir esto de alguna manera, tal vez proporcionando funcionalidad adicional útil, por ejemplo, la aplicación automática de stripslashes() a los valores mutilados utilizando magic_quotes , proporcionando valores predeterminados para las variables faltantes, etc.