El sitio más completo sobre programación, recursos web y herramientas online para Webmasters
Fecha:

tutorial cgi guardar los datos

En este apartado vamos a guardar los datos escritos por el usuario en un archivo para poder recuperarlos posteriormente. Como ejemplo utilizaremos un formulario para enviar chistes. Este formulario obtendrá la siguiente información y lo guardará en las variables indicadas entre paréntesis:

Nombre del Usuario (nombre)
Un Chiste (chiste)

Para ello creamos un formulario simple con el siguiente código:

<form method="POST" action="http://www.uva.es/cgi-bin/chiste-envio.pl">

<P>Tu nombre: <input name="nombre"></P>

<P>El chiste: <textarea cols=60 rows=5 name="chiste"></textarea></P>

<P><input type="submit" value="Enviar"><BR>

<input type="reset" value="Borrars"></P>

</form>


Nuestro programa colocará está información para que le podamos dar el visto bueno. El programa devolverá una nota al usuario indicándole que su envío será revisado más tarde.

Por consistencia, llamaremos a este script chiste-envio.pl.
Necesitamos iniciar y comentar nuestro script. Utilizaremos la librería cgi-lib.pl de Steve Brenner’s para facilitar la entrada de formularios..


Seguiremos con el script que tome la entrada y devuelva el siguiente mensaje:
Gracias _nombre_, tu envío será revisado en breve.

El script que realiza esto es el siguiente:

#!/usr/local/bin/perl

# chiste-envio.pl
# Por Javier Pérez Delgado (jperez@ctv.es)
#
# Este script añade el chiste al archivo de chistes.
# Devuelve una nota al usuario, indicando que su chiste será revisado.

 

push(@INC,"/p/www/httpd/cgi-bin/");

require("cgi-lib.pl");

&ReadParse;

print &PrintHeader;

print "<HTML><HEAD>\n";

print "<TITLE>Reconocimiento de chiste</TITLE>\n";

print "</HEAD><BODY>\n";

print "Gracias ",$in{'nombre'},",Tu envío será revisado lo antes posible. .<P>\n ";

print "</BODY></HTML>\n";


Ahora al tema central, añadir a un archivo. Para hacerlo necesitamos un archivo con permiso de escritura para el daemon http. La creación de este archivo variará entre distintos sistemas, y necesitaras consultar a tu webmaster. En este caso usaremos el archivo:

/users/jperez/www/tutor/chiste.txt

Para abrir el fichero para añadir al final usaremos el comando de Perl para abrir ficheros, que tiene la siguiente sintaxis:

open(FILEHANDLE,">>nombrearchivo");

FILEHANDLE es como llamaremos al archivo mientras esté abierto. Es similar a una variable. Nombrearchivo es el archivo a abrir. Los signos ‘mayor’ (>>) son importantes, y como en el shell indican ‘añadir a un fichero’.

Así la orden de apertura quedará así:

open(CHISTE,">>/users/jperez/www/tutor/chiste.txt");

Nota: Es aconsejable usar letras mayúsculas para FILEHANDLE para ayudar a distinguirlo de las variables.

Escribir a un fichero es idéntico a como hicimos previamente. La única diferencia es que el FILEHANDLE es el primer argumento de la sentencia print, y está separado de lo que será imprimido por un espacio. Por ejemplo para escribir la linea "Las rosas son rojas" al FILEHANDLE CHISTE, escribiremos:

print CHISTE "Las rosas son rojas\n";

Escribir variables se realiza de la misma manera:

print CHISTE "Las rosas son ",$in{'colorrosas'},"\n";


El código para nuestro ejemplo necesitará escribir al archivo:

 

1. El nombre del usuario precedido con la cadena "Nombre:"
2. Una línea en blanco.
3. El chiste enviado.
4. Una línea con 50 guiones.

El código es el siguiente:

print CHISTE "Nombre: ",$in{'nombre'},"\n";

print CHISTE "\n";

print CHISTE $in{'chiste'},"\n";

print CHISTE "----------------------------\n";

Ahora solo nos queda cerrar el fichero, y esto lo hacemos con el comando:

 

close FILEHANDLE;

tag Cgi Categoría: Recursos, Tutoriales, Cgi
Ver el perfil de Gabriel Marcelo Rodriguez en LinkedIn

Privacidad ּ Publicidad ּ Prensa ּ Premios ּ Colaborar ּ Enlazarnos ּ Mapa del Sitio ּ Aviso legal ּ Boletín ּ Contacto
2001 - 2011 | Sitio creado y mantenido por Gabriel Marcelo Rodriguez
Hosting de alta calidad a bajo costo Neolo.com.ar