Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Diseño web | Promoción web | Ganar dinero
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Rellenando el formulario


Creamos un formulario dinámico por medio de cookies y variables de sesión


01/1/70 - Las imágenes mostradas en verpostales apuntan hacia la página formulario.php de la cual os presentamos el listado a continuación:

<?
//Iniciamos la sesion en la pagina registrando variables_formulario
session_register('variables_formulario');

//Si las variables_formulario no estan creadas las definimos vacias
if (isset($variables_formulario)==0)
{
   $i=0;
   while ($i<=6)
   {
      $variables_formulario[]="";
      ++$i;
   }
}

//Incluimos la libreria de funciones
include("funciones.php");

//Creamos el encabezado HTML
html_encabezado("Servicio de postales de DesarrolloWeb","Servicio de postales gratuitas para todo tipo de felicitaciones","postal, navidad, san valentin, cumpleaños, felicitacion");

//Creamos el formulario, rellenamos los campos que conocemos con session y/o cookies
//Enviamos un dato escondido: id_imagen
?>
<table align="center" border="0" cellpadding="2" cellspacing="2">
<td colspan="2" align="center" style="celda1"><font color="#9933ff">Ten la amabilidad de rellenar el formulario</font></td>
<form action="enviopostal.php" method="post">
<tr>
   <td align="center">Email destinatario<br><input type="Text" name="email_destino" size="20" maxlength="50" value="<? echo $variables_formulario[0]; ?>"></td>
   <td align="center">Nombre destinatario<br><input type="Text" name="nombre_destino" size="20" maxlength="50" value="<? echo $variables_formulario[1]; ?>"></td>
</tr>
<tr>
   <td align="center">Email remitente<br><input type="Text" name="email_origen" size="20" maxlength="50" value="
<?
   if (isset($email))
      echo $email;
   else
      echo $variables_formulario[2];

?>
"></td>
   <td align="center">Nombre remitente<br><input type="Text" name="nombre_origen" size="20" maxlength="50" value="
<?
   if (isset($nombre))
      echo $nombre;
   else
      echo $variables_formulario[3];

?>
"><td>
</tr>
<tr>
   <td align="center" colspan="2"><input type="Checkbox" name="avisar" <? echo $variables_formulario[4]; ?>>Quiero ser avisado de la recepción</td>
</tr>
<tr>
   <td align="center" colspan="2">Texto postal<BR><textarea name="texto" cols="40" rows="6"><? echo $variables_formulario[5]; ?></TEXTAREA></td>
</tr>
<tr>
   <td align="center" colspan="2"><input type="Submit" value="Enviar" name="enviar">
   &&nbsp;&&nbsp;&&nbsp;<INPUT type="Submit" value="Ver postal" name="ver"></td>
</tr>
</table>
<input type="Hidden" name="id_imagen" value="<? echo $id ?>">
</form>
<?
//Generamos enlace hacia atras y cierre de documento
html_pie_volver("index.php")
?>

Es en esta página donde daremos por comenzada la sesión y lo haremos registrando una variable de tipo array que llamaremos variables_formulario cuyo contenido va a ser, obviamente, los datos introducidos en este formulario.

El objeto de usar una variable de sesión para conservar los valores del formulario en otras páginas es de índole práctico: Queremos que, si el internauta vuelve hacia atrás para corregir su postal antes de enviarla, no se vea obligado a rellenar de nuevo el formulario.

Definido el array, el paso siguiente es inicializarlo en el caso que no lo esté ya. Ya hemos explicado que la función isset nos dice si una variable ha sido inicializada o no. En el caso de que no lo esté, llenaremos 7 elementos del array con contenidos nulos ("") que serán sustituidos por los valores del formulario en el siguiente script.

Tras incluir la librería de funciones y generar el encabezado, el siguiente paso es crear el formulario. Esto lo haremos fundamentalemente por medio de código HTML dentro del cual embeberemos ciertas etiquetas en PHP para rellenarlo total o parcialmente.

En efecto, si el visitante acaba de ver su postal y viene a corregirla, en lugar de encontrarse un formulario vacío, éste conservara los datos que haya introducido previamente ya que los valores habrán sido almacenados en variables de sesión.

Las cookies son introducidas únicamente en los campos del formulario correspondientes al e-mail ($email) y nombre del remitente ($nombre). De esta forma permitimos al internauta, al visitarnos una segunda vez, disponer de un formulario parcialmente relleno con sus datos. Lo único que tendrá que hacer es completarlo con los del destinatario y escribir el texto.

Hay que tener en cuenta que las cookies pueden estar anuladas por el usuario por lo que al rellenar el formulario, si no disponemos de las cookies bien por que éstas estén desautorizadas o porque el internauta nos visite por primera vez, el script colocará la variables_formulario de sesión correspondiente.

Hemos querido introducir una técnica comúnmente utilizada para transferir variables por medio de un formulario sin que el usuario sea consciente de ello:

<input type="Hidden" name="variable" value="valor">

Por medio de este tipo de etiquetas, estamos enviando una variable y su valor por medio del formulario. Esta variable no se visualiza en la página y que sólo puede ser detectada mirando el código fuente. La forma de recogerla en la página destino del formulario es, como para cualquiera de las otras, por simple llamada en el código.

Puede que este formulario, sobre todo la parte de las cookies y las variables de sesión, quede un poco vago después de haberlo visto una primera vez. Esperamos que las dudas existentes puedan ser resueltas al estudiar el siguiente script y volviendo a leer éste, ya que, ambos utilizan variables comunes y resulta complicado entender uno sin ser consciente del funcionamiento del otro.



Ir a la aplicación

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 3 categorias relacionadas
+ 1 comentario (Añadir)
+ 1 comentario no revisado

 Autoría, licencia y acciones sobre este artículo

Informe de Rubén Alvarez*

Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Sistema de envío de postales en PHP
Siguiente: Script principal

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en Colecciones de scripts
+ Entrar en Scripts en PHP
+ Entrar en Manuales de PHP


 Comentarios de los visitantes
Los comentarios de los visitantes son para ampliar la información del artículo. Cualquiera puede participar.
Se muestra un comentario revisado

 Comentario de pepe
01/5/03 
//Si las variables_formulario no estan creadas las definimos vacias
{
$variables_formulario[]="";
++$i;
}

¿No tendria que ser así?:
$variables_formulario[i]="";
Un buen trabajo y gracias por esta página.
SAludos

Añadir un comentario al artículo Añadir un comentario del artículo
 Comentarios sin revisar
Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente.
 Se ha encontrado un comentario sin revisar

Ver el comentario no revisadoVer los comentarios no revisados
Añadir un comentario al artículo Añadir un comentario del artículo



Enlaces:
Maestrosdelweb
  Ir arriba

Manuales relacionados
+Sistema de envío de postales en PHP
Categorías
+Colecciones de scripts
+Scripts en PHP
+Manuales de PHP

Lectura recomendada

Compra este libro en Agapea, la librería urgente a domicilio.

Tienda DesarrolloWeb

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia