joo

Post, Get y Request son métodos predeterminados en nuestro servidor(HTTP), con método me refiero a funciones privadas del servidor que tengas instalado y los cuales devuelven una variable en formato arreglo asociativo con llave y valor, explicado lo que son esas variable globales de PHP, centraremos nuestra atención en como ser mas practico con esas variables, las cuales son indispensables que sepamos como manejarlas por el bien nuestro, ya que son parte fundamental de nuestra aplicación o pagina web interactiva a su vez repasaremos y en el caso del algunos lectores aprender como PHP tiene funciones para hacer nuestro script mas fácil de codificar teniendo un esquema de programación propio y claro, una forma de debugear mas fácil para nosotros y aquellos que utilicen nuestro "source code", empezemos.

Primero algo PHP 101. Cuando veamos una variable que tenga $_ significa que es una variable del servidor, y para que necesitas saber eso, primero por que lo tienes que saber, si dices ser PHP Developer, segundo significa que no puedes tocarla, modificarla ni soñar con ella, es del servidor y eso con lleva que cualquier cosas que trates de hacer con ella, a menos que solo la utilices, no podrás y tu servidor mostrar error de Runtime.

Después de un poco de PHP 101, pasemos a lo que venimos; HTML tiene formas, en las cuales se ingresan datos e información que es valiosa para nosotros como codificadores para continuar o hacer una ejecución de nuestro script, en las formas de HTML en el momento preciso que el usuario hace submit por medio de un botón, en el servidor se ejecuta una series de métodos los cuales terminar en 3 variables globales, POST, GET y REQUEST. Son interpretados por PHP como variables de URL que parecen en nuestra URL como: http://miscript.php?menú=2 . a partir de ahí nosotros como codificadores de php recibimos esas variables y hacemos la acción que se mando por parámetro en el URL.

Ejemplo: example_one.php
 
<?php
//Imprimir lo que traen todas las variable globales
print_r($_REQUEST); //Imprime correctamente
print_r($_POST); //No imprime
print_r($_GET); // Imprime correctamente
 
?>
<html>
<head>
<title>MundoGeek - GET, POST, REQUEST</title>
</head>
<body>
<form action="" method="GET">
<h1> Mi script </h1>
<input type="text" name="input_name" value=""/>
<input type="submit" name="submit_button" value="Enviar"/>
</form>
</body>
</html>
 

Explicando el código de arriba, son lo fundamentos del envio de formularios de HTML hacia tu server scripting, en nuestro caso PHP, unas de las cosas que pasan a codificadores principiantes, "newbies", es codificar toda la forma con todo los inputs que se requieren y botones, etc y hasta el ultimo probar como funciona, ahi es cuando suceden los errores de sintaxis que cuando terminaste una forma de 50 lineas lo menos que quieres es verificar linea por linea donde pusiste mal un "=" o donde no cerraste con ">" o con "/"; es mas facil cada 2 o 3 lineas darle refresh a la script para observar como va todo y cambiar algo que no te agrade, que cuando todo esta terminado, no te agrada como funciono el script y ahora a recodificarlo que lleva mas tiempo.

Regresando a la explicación del source code, entre los tags de PHP hay 3 "print_r" los cuales nos ayudan a debugear que nuestro servidor regreso al nuestro script o que mando a otro script, porque se muestran esos arrays en el mismo script php? por que no le especificamos en la linea de "<form action="" method="GET">"  el action, el cual significa a donde nos vamos después que el usuario le dio submit a la forma, si nosotros no podemos nada, nuestro script vuelve a pasar por el hilo de ejecución del servidor y nos muestra. En esa misma linea se observa que el method que yo escogí fue GET, por ser GET en nuestra URL al momento de hacer submit aparecerá esto "http://localhost/path/miscript.php?input_name=mundogeek&submit_button=Enviar", trae consigo todos los parametros mandados por la forma y el print_r desplegó "Array ( [input_name] => mundogeek [submit_button] => Enviar )"; Ahora si podemos hacer interactiva nuestra pagina web con un script de PHP.

En el caso de $_REQUEST, es una variable que recoge los parámetros de la URL sin importa que el method del form haya sido GET o POST, no hace distincion ni nada, si por ejemplo typeas esto " echo 'Request: '.$_REQUEST['input_name']; " va a mostrar todo lo que traiga ya sea Integer, String o Array de la variable global $_REQUEST['input_name'] si su valor es nulo no mostrar absolutamente nada.

Vamos a ponernos serios en cuanto como saber cuando debo usar GET, POST o REQUEST. En el caso mio como W.D.(Web Developer) y P.S.D.(Php Solutions Developer), utilizo GET en las formas para cuando el proyecto esta en fase de producción y ahi poder saber como manda los parámetros el server, POST en el modo de RTW (Release To Web), ya liberado el proyecto, cambio todas las formas por POST y REQUEST lo utilizo para debugear todo y asi no estar cambiando de POST a GET en una forma o en AJAX o en X situación que lo necesite; Pero creo que se preguntaron como es que cambias todo los GETS por POSTS, facil y sencillo hago esto:

Ejemplo: example_two.php
<?php
Define('METHOD_FORMS','"POST"');
?>
<html>
<head>
<title>MundoGeek - GET, POST, REQUEST</title>
</head>
<body>
<form action="" method=<?php echo METHOD_FORMS?>>
<h1> Mi script </h1>
<h2><?php  echo 'Request: '.$_REQUEST['input_name']; ?></h2>
<input type="text" name="input_name" value=""/>
<input type="submit" name="submit_button" value="Enviar"/>
</form>
</body>
</html>
 

 

Explicando el source code anterior, en la primera parte del script, Defino una variable global con el string de '"GET"', las comillas dobles si van incluidas, y así tengo full control sobre todas las formas, pero hay inconveniente de la forma anterior tendría yo que definir otra variable cuando cambie de script, pero hay solución chavos que no cunda el panico, para esa situación usamos un script de configuración, el cual no servirá para definir las variables que queramos y transportarlas de Script en Script, nuestro script se vería así:

 
Ejemplo: example_three.php
<?php
/**
* Script de configuracion
*/
 
//Variables a definir
 
define("METHOD_FORMS",'"GET"');
 
?>
 
 
<?php
/**
* Index
*/
include_once 'config.all.php';
?>
<html>
<head>
<title>MundoGeek - GET, POST, REQUEST</title>
</head>
<body>
<form action="" method=<?php echo METHOD_FORMS?>>
<h1> Mi script </h1>
<h2><?php  echo 'Request: '.$_REQUEST['input_name']; ?></h2>
<input type="text" name="input_name" value=""/>
<input type="submit" name="submit_button" value="Enviar"/>
</form>
</body>
</html>
 

 

Explicando, Lo único que cambio fue que hice un nuevo script llamado config.all.php y dentro definí una variable global( Cuando nosotros definimos variables globales como es nuestro caso, les recomiendo usar siempre MAYUSCULAS para hacerlas mas fácil de identificar en nuestros scripts mas adelante) con un string y ahora yo modifique mi index y solamente agregue la linea " include_once 'config.all.php'; " diciendo lo que haga include de todo lo que haya en ese script php, fácil verdad.

Ya terminado con la explicación y como se puede implementar, les dejo un pequeño tip que nos puede salvar de muchas situaciones y tiene algo de practicidad en la codificion:

 
Ejemplo: example_four.php
 
<?php
/**
* Script de configuracion
*/
 
//Variables a definir
 
define("METHOD_FORMS",'"GET"');
 
//Variables GET
import_request_variables('g', 'g_');
//Variables POST
import_request_variables('p', 'p_');
 
?>
 
<?php
/**
* Index
*/
include_once 'config.all.php';
?>
<html>
<head>
<title>MundoGeek - GET, POST, REQUEST</title>
</head>
<body>
<form action="" method=<?php echo METHOD_FORMS?>>
<h1> Mi script </h1>
<h2><?php  echo 'Request: '.$g_input_name; ?></h2>
<input type="text" name="input_name" value=""/>
<input type="submit" name="submit_button" value="Enviar"/>
</form>
</body>
</html>
 

 

Encontraron las diferencias?

La funcion import_request_variables('g', 'g_') lo que hace es darle un formato que nosotros definimos al GET y POST por un subfijo, esta funcion tiene 2 parametros, el primero es que vamos a formatear GET o POST, para GET es "g" y obvio para POST "p", en el segundo parametro es el sufijo en este ejemplo use "g_" y "p_", les recomiendo que utilicen una sola letra y que aplique para las dos.

Les agrego un pack de los source code de todo el post.

Pack por FileServe

Encuesta de Hoy

Qué gadget te gustaria tener?

Acerca de: MG

Es un proyecto sobre un sitio web, donde los usuarios podrán leer noticias y artículos de relevancia sobre todo lo que envuelve a la Tecnología; Escritos por profesionales en los ramos de Diseño Web, Programacion Web, TI, etc.

Leer más...

MundoGeek

Comentarios y Sugerencias por favor a: contactoarroba_1mundogeek.com, Gracias por tu preferencia.

Login Form