Inicio
Software
Programación
HTML Programación - PHP (ini) Programación - PHP POO Programación - PHP / HTML SQL Java
Hardware
Desarrollos
Quién soy Mapa del sitio

PHP - 8va Entrega datos GET y POST

Imprimir
Categoría: PHP
Escrito por Ch4rl1X Visitas: 2204

No es nada nuevo lo que vamos a ver para ésta entrega, ya que por el nivel que venimos manejando en los formularios y las variables que pasamos. No tendría porque dificultarse la utilización de éstos métodos.

En las versiones anteriores a la 5 de PHP la información directamente se pasaba a través de la variable, lo que suponía una deficiencia en la seguridad de nuestros sitios. Por ésto desde la versión 5 PHP pasa los datos a través de las variables superglobales $_POST, $_GET y $_COOKIE.

$_POST pasa los valores a través de la etiqueta name de nuestro código HTML y como es un array asociativo nuestro valor tiene que respetar ése nombre, como venimos viendo.

$_GET pasa los valores a través de la URL de nuestro sitio lo cual es adminisible si los valores que tiene que pasar son de caracter público.

$_COOKIE anteriormente HTTP_COOKIE_VARS sirve para almacenar la información de nuestro inicio de sesión en nuestro sitio.

Como no voy a dar ejemplos con $_POST creo que ya veníamos viendo bastante con los anteriores artículos...

Veamos el siguiente código:

<?php

switch ($_GET["producto"])
{
	case 1:
		$imagen = "images/autos/Autos1.jpg";
		break;
	case 2:
		$imagen = "images/autos/Autos2.jpg";
		break;
	case 3:
		$imagen = "images/autos/Autos3.jpg";
		break;
	case 4:
		$imagen = "images/autos/Autos4.jpg";
		break;
	case 5:
		$imagen = "images/motos/Moto1.jpg";
		break;
	case 6:
		$imagen = "images/motos/Moto2.jpg";
		break;
	case 7:
		$imagen = "images/motos/Moto3.jpg";
		break;
	case 8:
		$imagen = "images/motos/Moto4.jpg";
		break;
	default:
		$imagen = "images/nodisponible.jpg";
}

?>
<html>
<head>
<title>Práctica 11 PHP</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<div align="center">
  <table width="82%" border="0" cellpadding="4">
    <tr> 
      <td width="19%"><font color="#0000FF" size="2">AUTOS</font></td>
      <td width="51%" rowspan="5"><div align="center"><?php echo "<img src=$imagen>"; ?></div></td>
      <td width="30%"><font color="#FF0080" size="2">MOTOS</font></td>
    </tr>
    <tr> 
      <td><a href="/mostrarImagenesCopia.php?producto=1">Auto 1</a></td>
      <td><a href="/mostrarImagenesCopia.php?producto=5">Moto 1</a></td>
    </tr>
    <tr> 
      <td><a href="/mostrarImagenesCopia.php?producto=2">Auto 2</a></td>
      <td><a href="/mostrarImagenesCopia.php?producto=6">Moto 2</a></td>
    </tr>
    <tr> 
      <td><a href="/mostrarImagenesCopia.php?producto=3">Auto 3</a></td>
      <td><a href="/mostrarImagenesCopia.php?producto=7">Moto 3</a></td>
    </tr>
    <tr> 
      <td><a href="/mostrarImagenesCopia.php?producto=4">Auto 4</a></td>
      <td><a href="/mostrarImagenesCopia.php?producto=8">Moto 4</a></td>
    </tr>
  </table>
</div>
</body>
</html>

A estas alturas podemos entenderlo fácilmente.

Veamos en detalle como pasamos los datos a través de GET. El caracter ? se usa para indicar la URL de destino en nuestro sitio.

El caracter & se usa para indicar la clave que se pasa, en éste ejemplo no se ve pero más adelante vamos a mostrar el uso.

Resultado -> Click Aquí.

Una pequeña práctica con POST(y al final si di práctica ejejejiju!)... que sirve para que tengamos buenas costumbres.

Aquí el ejemplo:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Buenas practias POST</title>
</head>

<body>
<h1>Buenas prácticas con POST</h1>
<p>Supongamos que tenemos que enviar 2 campos a un formulario web, para esto tenemos que configurar nuestro c&oacute;digo para que envíe los datos correctamente. Para &eacute;sto creamos los formularios teniendo en cuenta algunas cosideraciones</p>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<p>Sumamos valores con funciones</p>
<fieldset>
<legend>Ingresá los valores que querés sumar</legend>
<input type="text" id="tipo1" name="tipo1" value=""/>
<br /><br />
<input type="text" id="tipo2" name="tipo2" value=""/>
<br /><br />
<input type="submit" value="Enviar"/>
<input type="reset" value="Limpiar" />
</fieldset>
</form>

<?php

if (empty($_POST["tipo1"]))
{
	echo "<p>Falta rellenar el campo 1</p>";
}

if (empty($_POST["tipo2"]))

{
	echo "<p>Falta rellenar el campo 2</p>";
}

?>

</body>
</html>

Resultado->Click Aqui.

Al levantar el formulario vemos algunos temas, en principio apenas ingresamos nos acusa que no tiene valores ingresados y luego comprobamos el funcionamiento y al ingresar los valores no nos acusa de nada, pero cuando ingresamos un valor solamente nos sigue apareciendo que nos faltan los 2. Veamos como solucionar éste tema:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Buenas practias POST</title>

<?php

$ingresoInicial = FALSE;
if (empty($_POST["Enviar"]))
{
	$ingresoInicial = TRUE;
	$_POST["tipo1"] = "";
	$_POST["tipo2"] = "";
}
?>

</head>

<body>
<h1>Buenas prácticas con POST</h1>
<p>Supongamos que tenemos que enviar 2 campos a un formulario web, para esto tenemos que configurar nuestro c&oacute;digo para que envíe los datos correctamente. Para &eacute;sto creamos los formularios teniendo en cuenta algunas cosideraciones</p>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<p>Sumamos valores con funciones</p>
<fieldset>
<legend>Ingresá los valores que querés sumar</legend>
<input type="text" id="tipo1" name="tipo1" value=""/>
<br /><br />
<input type="text" id="tipo2" name="tipo2" value=""/>
<br /><br />
<input type="submit" value="Enviar" name="Enviar"/>
<input type="reset" value="Limpiar" />
</fieldset>
</form>

<?php
if (!$ingresoInicial)
{
if (empty($_POST["tipo1"]))
{
	echo "<p>Falta rellenar el campo 1</p>";
}

if (empty($_POST["tipo2"]))

{
	echo "<p>Falta rellenar el campo 2</p>";
}
}
?>

</body>
</html>

Resultado->Click Aquí.

Finalmente nos encontramos con un sólo tema pendiente, antes como nos gusta escribir mucho y tener orden en nuestro código recapitulemos lo que logramos.

  • Que el formulario no acuse de que nos faltan ingresar datos apenas ingresamos.
  • Que muestre el error del campo que corresponda.

Nos falta algo escencial... y es que cuando llenamos los campos no se olvide de lo que llenamos y así no nos haga llenarlos cada vez... lo solucionamos de la siguiente forma:

Agregando el código PHP necesario en nuestro atributo value: <?php echo $_POST['tipo1']; ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Buenas practias POST</title>

<?php

$ingresoInicial = FALSE;
if (empty($_POST["Enviar"]))
{
	$ingresoInicial = TRUE;
	$_POST["tipo1"] = "";
	$_POST["tipo2"] = "";
}
?>

</head>

<body>
<h1>Buenas prácticas con POST</h1>
<p>Supongamos que tenemos que enviar 2 campos a un formulario web, para esto tenemos que configurar nuestro c&oacute;digo para que envíe los datos correctamente. Para &eacute;sto creamos los formularios teniendo en cuenta algunas cosideraciones</p>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<p>Sumamos valores con funciones</p>
<fieldset>
<legend>Ingresá los valores que querés sumar</legend>
<input type="text" id="tipo1" name="tipo1" value="<?php echo $_POST['tipo1']; ?>"/>
<br /><br />
<input type="text" id="tipo2" name="tipo2" value="<?php echo $_POST['tipo2']; ?>"/>
<br /><br />
<input type="submit" value="Enviar" name="Enviar"/>
<input type="reset" value="Limpiar" />
</fieldset>
</form>

<?php
if (!$ingresoInicial)
{
if (empty($_POST["tipo1"]))
{
	echo "<p>Falta rellenar el campo 1</p>";
}

if (empty($_POST["tipo2"]))

{
	echo "<p>Falta rellenar el campo 2</p>";
}
}
?>

</body>
</html>

Resultado->Click Aquí.

Listo por ahora, saludos, Ch4rl1X!