Gadgets, Celulares, Telefonia, Electronic Music y mucho más…

Envio de variables con GET y POST en PHP

En el siguiente texto tratare de explicar de la manera más sencilla y detallada, como enviamos variables desde un formulario hacia nuestra página PHP para que esta realice una operación.

Veremos envíos usando GET y POST, muy importante será el envió de Arreglos ya que estos son muy útiles y causa problemas a los programadores novatos.

¿Que necesito antes de empezar?

Si harás las pruebas locales, como en este ejemplo requeriremos de un Servidor instalado en nuestra PC que tenga soporte para PHP, yo en lo personal recomiendo el XAMPP, WAMP o AppServer por su fácil configuración, estos paquetes incluyen básicamente el Servidor Web Apache, MySQL (Manejador de Base de Datos) PHPMyAdmin (Interfaz Web para MySQL) y PHP o bien contar con una cuenta en un servidor que tenga soporte PHP.

Utilizaremos Dreamweaver pues es muy sencillo dibujar formularios usando la vista de diseño.

Ahora empecemos:

Haremos una pequeña aplicación que nos permita enviar el Nombre Apellido y Número telefónico de una persona. Para ello requeriremos de hacer un formulario que contendrá 3 campos de texto y 2 botones uno tipo Submit y otro tipo Reset. Estos componentes los encontraremos en el menú INSERTAR/FORMULARIO

imagen1

El resultado debe verse de la siguiente manera:

imagen2

y el código se verá parecido al siguiente; lo importante es la etiqueta FORM e INPUT, lo demás puede variar según el formato que le demos.

HTML:
  1. <form id="form1" name="form1" method="post" action="">
  2. Nombre:
  3. <input type="text" name="textfield" />
  4. <br />Apellido:
  5. <input type="text" name="textfield2" />
  6. <br />No. Telefonico:
  7. <input type="text" name="textfield3" />
  8. <br /><input type="submit" name="Submit" value="Submit" />
  9. <input type="reset" name="Submit2" value="Reset" />
  10. </form>

Si nos fijamos en el código del formulario el atributo NAME es el nombre del objeto, a través de este haremos referencia en el código de PHP para obtener su valor, así pues cambiaremos los Atributos NAME por unos más amigables, al primer texfield le pondremos "nombre_form", al segundo "apellido_form" y al tercero "tel_form". Para ello seleccionamos el textfield y en la barra de propiedades generalmente ubicada en la parte inferior de la ventana ponemos el nombre del textfield, y repetimos el procedimiento hasta cambiárselo a los 3.

imagen3

El código:

HTML:
  1. <input name="nombre_form" type="text" id="nombre_form" />
  2. <input name="apellido_form" type="text" id="apellido_form" />
  3. <input name="tel_form" type="text" id="tel_form" />

Ahora cambiaremos el mensaje de los botones, para ello necesitamos cambiar el atributo VALUE eliminar el mensaje por defecto y reemplazarlo por el de nuestra elección.

imagen4

El código:

HTML:
  1. <input type="submit" name="Submit" value="Aceptar" />
  2. <input type="reset" name="Submit2" value="Limpiar" />

Por ultimo ajustaremos el Formulario, en la etiqueta FORM debemos fijarnos en dos atributos el llamado ACTION y el METHOD, el ACTION será a la pagina a donde enviará el formulario (nuestra pagina en PHP) y METHOD es la forma en la que enviará los valores.

 

Guardaremos la pagina con el nombre "formulario_miniagenda.html"

 

UTILIZANDO EL METODO POST.

Bien nuestra etique FORM esta así:

HTML:
  1. <form id="form1" name="form1" method="post" action="">

Como podemos ver tenemos como método a utilizar POST (method="post" y el ACTION se encuentra vacío, ahí es donde debemos poner la ruta hacia nuestro SCRIPT PHP lo llamaremos miniagenda.php y la etiqueta pasará a verse de la siguiente forma:

HTML:
  1. <form id="form1" name="form1" method="post" action="miniagenda.php">

Con esto tendremos finalizada la preparación de nuestro formulario para el envio de datos. No olvidemos que haremos referencia las variables utilizando el atributo NAME que especificamos en el Formulario.

RECIBIENDO DATOS DESDE PHP ENVIADOS POR EL METODO POST.

La recepción de datos la hacemos de la siguiente forma:

PHP:
  1. $nombre_de_variable=$_POST['nombre_de_objeto'] ;

Nota: En PHP toda variable va precedida del símbolo $

Entonces para recibir nuestras variables usaremos lo siguiente:

PHP:
  1. $nombre=$_POST['nombre_form'] ;
  2. $apellido=$_POST['apellido_form'] ;
  3. $tel=$_POST['tel_form'];

Con ello tendremos almacenado las 3 variables para poder utilizarlas en nuestro Script, así que imprimiremos los valores de dichas variables, utilizando la sentencia ECHO, ahora veremos el Script completo:

PHP:
  1. <?php
  2. $nombre=$_POST['nombre_form'] ;
  3. $apellido=$_POST['apellido_form'] ;
  4. $tel=$_POST['tel_form'];
  5.  
  6. echo "Nombre: $nombre <br />";
  7. echo "Apellido: $apellido <br />";
  8. echo "Telefono: $tel <br />";
  9. ?>

Nota: Sintaxis de la sentencia ECHO: echo "cadena a desplegar"; o echo $variable;

Ahora colocaremos el Script que acabamos de realizar, hay 2 formas abrir un bloc de notas, escribir el código y guardar el archivo como "miniagenda.php" o en el dreamweaver hacer clic en el Menú ARCHIVO/NUEVO y en el menú que aparece escoger PAGINA DINAMICA y seleccionar PHP, entonces procedemos a colocar el Script entre las etiquetas BODY, es una buena práctica utilizar el código PHP en una Pagina HTML, aunque con el puro Script en el archivo Funciona.

Ahora probaremos que funcione, según el Servidor que instalemos la carpeta por la cual accederemos a nuestras paginas almacenadas en el puede ser WWW o HTDOCS ahi debemos copiar ambos archivos y acceder a través del navegador web con la dirección http://localhost/formulario_miniagenda.html, rellenamos el formulario y le damos Aceptar, en la siguiente pagina obtendremos una pagina en blanco con los datos que enviamos.

Una ventaja de usar POST es que los valores no se muestran y que es mayor la cantidad de datos que podemos enviar por este método.

Ahora modificaremos levemente el formulario y el script para que funcione con el método GET ...

RECIBIENDO DATOS DESDE PHP ENVIADOS POR EL METODO GET.

Lo primero que haremos es modificar la etiqueta FORM, cambiaremos el método de POST a GET se verá de la siguiente forma:

HTML:
  1. <form id="form1" name="form1" method="get" action="miniagenda.php">

En el script PHP debes reemplazar "$_POST" por "$_GET" como se muestra a continuación:

PHP:
  1. <?php
  2. $nombre=$_GET['nombre_form'] ;
  3. $apellido=$_GET['apellido_form'] ;
  4. $tel=$_GET['tel_form'];
  5.  
  6. echo "Nombre: $nombre <br />";
  7. echo "Apellido: $apellido <br />";
  8. echo "Telefono: $tel <br />";
  9. ?>

Como verán no cambiamos el nombre de los objetos, esto es por una sencilla razón el formulario enviará a través de la URL el nombre de los campos con su valor asociado, como habíamos mencionado haremos referencia al contenido de los campos a través del nombre que le hayamos puesto al objeto.

Una vez hecho esto cargamos nuestra pagina como lo hicimos antes, rellenamos los campos y le damos enviar, notarán que el resultado en la pagina web es el mismo pero la URL será diferente.

HTML:
  1. http://localhost/miniagenda.php?nombre_form=DaHouseCat&apellido_form=PHP_RULZ&tel_form=555-55555&Submit=Aceptar

Fijándonos nos damos cuenta que a partir del símbolo "?" tendremos el nombre del objeto en el formulario con el contenido del mismo. Esta es la particularidad de GET pasar las variables por la URL, pero me van a decir que caso tiene hacer esto, si POST lo hace manteniendo la dirección limpia... bueno cuando programamos en PHP a veces requerimos hacer cosas dinámicamente, en particular un recurso muy socorrido es la creación de un link con variables, veamos un ejemplo:

Construimos un link de la siguiente manera y lo colocamos después de la etiqueta </form>

HTML:
  1. <a href="miniagenda.php?nombre_form=BLUEForte&apellido_form=RULZ&tel_form=555-AOYAMA>Enviar Datos de BLUEForte</a>

Es un link común y corriente, que tiene como característica principal un pase de valores a través de la URL lo que llamamos GET, si se fijan son el símbolo "?" avisamos que a continuación mandaremos una o más variables primero escribimos el nombre del objeto con el símbolo "=" para asignar un valor, si requerimos mandar más de una variable, entonces utilizamos el símbolo "&" que le dirá a nuestro script que a partir de ahí empieza una nueva variable.

Ahora vayamos al navegador a probar, pasemos el puntero encima del link y fijémonos en la barra de estado, vean que la dirección esta lista para insertar los datos en el Script PHP ahora demos clic en el link y miremos la URL veremos que están todos los objetos con su valor a excepción del objeto que corresponde al botón, esto se debe a que no estamos usando el formulario; el Script recibe dichos valores y los jala para utilizarlos, el resultado que obtenemos es el mismo que cuando usamos el formulario.

imagen5

El pase de valores suele ser muy útil en la creación de paneles o paginas dinámicas, WordPress el gestor de Blogs lo utiliza mucho así como el Joomla y otros CMS (Content Manager System).

Bueno me dirán ¡Nos prometiste envío de Arreglos!, si ahí vamos...

Enviando Arreglos con PHP.

Los arreglos son la estructura de datos más solicitada y utilizada en programación, bien el envío del arreglos es básicamente una pequeña modificación en nuestro formulario, lo que haremos ahora es modificar nuestro envío de datos para que lo mande a través de un arreglo y lo imprimamos con el Script PHP. La forma de hacer que una serie de valores se guarden en un arreglo es poniendo en el nombre del formulario el nombre del objeto con los símbolos "[]", entonces cambiaremos todos los nombres de los objetos por "datos[]" y el codigo del formulario se verá así:

HTML:
  1. <form id="form1" name="form1" method="get" action="miniagenda.php">
  2. Nombre:
  3. <input name="datos[]" type="text" id="nombre_form" />
  4. <br />Apellido:
  5. <input name="datos[]" type="text" id="apellido_form" />
  6. <br />No. Telefonico:
  7. <input name="datos[]" type="text" id="tel_form" />
  8. <br /><input name="Submit" type="submit" id="Submit" value="Aceptar" />
  9. <input type="reset" name="Submit2" value="Limpiar" />
  10. </form>

Nótese que no cambie el método GET, lo sigo mandando por la URL. Ahora veremos como cambia el Script PHP

PHP:
  1. <?php
  2. $datos=$_GET['datos'] ;
  3.  
  4. echo "Nombre: $datos[0] <br />";
  5. echo "Apellido: $datos[1] <br />";
  6. echo "Telefono: $datos[2]<br />";
  7. ?>

Lo primero que notamos es que recibimos con la variable $datos y que esta le dice por medio de GET que tome al objeto datos de la URL, fíjense que no tiene los "[]" de esta manera obtendremos los datos, la impresión del arreglo se da usando los indices, como vemos la posición cero "$datos[0]" contiene el nombre y así sucesivamente, entonces por intuición nos damos cuenta que recibimos los datos de manera ordenada, según nuestro formulario.

Y ahora se preguntaran como hacerlo por POST, simplemente en lugar de poner GET pongan POST la estructura no cambia en nada.

Hay un tercer método llamado REQUEST, este no nos sirve para enviar pero si para recibir, la ventaja que tiene este es que podemos recibir variables enviadas por cualquiera de los 2 métodos anteriores, si por curiosidad cambian el formulario para que envíe por GET y el Script lo dejan Recibiendo por POST verán que no capturarán nada, pero si cambian el método en el script por $_REQUEST verán que aunque manden el formulario por GET o POST este siempre lo recibirá.

Por ultimo cabe señalar que POST es más utilizado para el envío de información sensible, formularios de login o de ese tipo aunque no quiere decir que sea exclusivamente para eso, la principal diferencia es que POST permite el envío de mucha más información que GET.

Bueno así finalizamos este tutorial de envío de variables utilizando POST y GET, así como el envío y recepción de Arreglos.

Si tienen alguna duda no olviden dirigirla a los foros de BLUEForte.


Ver Ejemplos:
Ver Ejemplo de Envio por GET
Ver Ejemplo de Envio por POST
Ver Ejemplo de Envio de Arreglos por GET
Ver Ejemplo de Envio de Arreglos por POST

Descargar:

Descargar Archivos de los Ejemplos

¿Te ha gustado este artículo? Subscribete vía Email, para ¡recibirlos en tu correo!

¿No encontró lo que buscaba? ¡Use el buscador!
 

Escrito para el 10 de July de 2006
RSS 2.0 Trackback

16 Comentarios este tema es Hot

Pages: [2] 1 » Show All

  1. LUIS ROJAS Dijo:

    TENGO UN FORMULARIO QUE ENVIA VARIABLES POR POST ME FUNCIONA BIEN PERO EN OTRA VERSION DEL XAMPP SE VE TODO BIEN PERO NO EJECUTA EL SCRIPT AL PRESIONAR EL BOTON NO SALE NI UN ERROR AL PARECER NO DECTECTA LAS VARIABLES



    Escrito el 14 de August de 2008 a las 9:05
    Usando Internet Explorer Internet Explorer 6.0 en Windows Windows 2000
  2. LIZZY Dijo:

    necesito alguien urgente!!!! que pueda ayudarme por favor!!!

    lo que quiero hacer es sumar unos datos de una celda del formulario… por ejemplo….

    CELDA

    a

    b

    a

    a

    c

    c

    _____3_______(que aqui sume cuantas a tengo en la celda)

    _____1_______(que aqui sume cuantas b tengo en la celda)

    _____2_______(que aqui sume cuantas c tengo en la celda)

    estoy utilizando PHP!!!
    y por mas sencillo que se mire no puedo!!!!
    porfavor!!! necesito ayuda@!!!
    alguien puede darme su correo???
    si me reponde por favor! gracias



    Escrito el 26 de June de 2008 a las 10:20
    Usando Internet Explorer Internet Explorer 6.0 en Windows Windows XP
  3. spedrot3 Dijo:

    tengo el siguiente codigo html que llama al php para cargar valores del formulario a la bd:
    1
    Nuevo Trabajo de Gado

    Ingresar Nuevo Trabajo de Gado

    Cota
    Autor
    Tema
    Tutor

    y el siguiente codigo php:

    Introducir nuevos trabajos de grado en el sistema

    <?php
    if (!$cota || !$autor || !$tema || !$tutor)
    {
    echo “No has introducido los datos requeridos.”
    .”Por Favor Vuelve a Intentarlo Nuevamente.”;
    exit;
    }

    $cota=doubleval ($cota);
    $autor=addslashes ($autor);
    $tema=addslashes ($tema);
    $tutor=addslashes ($tutor);

    @ $db=mysql_pconnet(”localhost”, “root”, “”;

    if (!$db)
    {
    echo “ERROR”;
    exit;
    }

    mysql_select_db(”comision”;
    $query = “INSERT INTO tesis VALUES (’”.$cota.”‘, ‘”.$autor.”‘, ‘”.$tema.”‘, ‘”.$tutor.”‘”;
    $result = mysql_query($query);
    if ($result)
    echo mysql_affected_rows().”Trabajo Introducido en la Bases de Datos.”;

    ?>

    ****el problema es que me bota el mensaje que le coloque al php que no e introducido los datos necesarios que estare haiendo mal que alguien me ayude pues soy nuevo en esto…



    Escrito el 20 de June de 2008 a las 10:19
    Usando Opera Opera 9.21 en Windows Windows XP
  4. Carlos Guardado Dijo:

    hola yo deseo saber como llamr una pagina una vez llenado un formulario y mandando un mensaje que todo salio correcto



    Escrito el 24 de April de 2008 a las 17:04
    Usando Mozilla Firefox Mozilla Firefox 2.0.0.14 en Windows Windows XP
  5. Edward Dijo:

    Buen dia, una consulta… si deseo mediante un “FORM ACTION”, ir a un formulario, previa validacion de passsw (contraseña), pero si es errada la contraseña hacer un AUTOLLAMADO (utilizando el form action) y regresar a la pagina donde intentara otra vez logearse….Gracias…..como hago???



    Escrito el 7 de February de 2008 a las 6:02
    Usando Internet Explorer Internet Explorer 6.0 en Windows Windows XP
  6. Oskym Dijo:

    Cuando verifiquen problemas para pasar via GET o POST lean lo siguiente:

    register_globals
    La directiva register_globals especifica si las variables EGPCS (Entorno, GET, POST, Cookies y Servidor) se registran autom



    Escrito el 2 de April de 2007 a las 13:34
    Usando Internet Explorer Internet Explorer 7.0 en Windows Windows XP

Deja un Comentario

Hey tu! usar emoticones te hace más cool!
                                         

Escriba su e-mail:

Reciba en su correo electrónico lo más reciente
en DaHouseCats Blog

Comentarios

Suscríbete

  •  
  • Add to Twitter
  • Add to Google Reader or Homepage
  • Add to Technorati Favorites

Disclaimer:

  • DaHouseCat, no se hace responsable acerca del mal uso que se le dé a la información contenida en los artículos y / o tutoriales, quedando en absoluta responsabilidad del usuario.

Administración

  • DaHouseCat
    Posts: 486 - 100%
    Comentarios: 4269 - 100%
    Pingbacks: 88 - 100%
    Score: 9288
486 posts, generados por 1 autores.

Buscar

 

M. Instántanea

B. de Blogueros

DaHouseCat en:

Blogs Amigos

Blogs Campeche

Webs Amigas

Mensajería

Categorías




Archivo

Recomendados

Este blog utiliza Worpress y fue diseñado por DaHouseCat - 2007
El contenido y algunas imagenes de DaHouseCat's Blog estan bajo la licencia de
Reconocimiento-NoComercial-SinObraDerivada 2.5