Información

Información más detallada al respecto se podrá enconcontrar en la documentación, ya que el almacenamiento de datos es un poco más complejo que el despliegue de información, y en este caso se realiza mediante el cgi

Adquisición de datos

La recuperación de datos pasados como parámetro, resulta bastante sencilla, ya que la misma utileria proporciona la funcionalidad. # Load cgi
our $cgi_this = new CGI;
# Retrieve cgi data
my $str_catalogID = $cgi_this->param(\'catalog\');
my $str_name = $cgi_this->param(\'catalog_name\');
my $str_desc = $cgi_this->param(\'catalog_desc\');
# SiteUP parameters
my $char_action = $cgi_this->param(\'action\');
# Get additional information
my $str_fromuri = $cgi_this->referer();
La primer línea da por alta un objeto llamado cgi, mientras las tres siguientes recuperan los datos propios del formulario. La penúltima línea indica que tipo de acción se llevará a cabo, mientras que la última proporciona información particular al cgi.

Validación

Aunque mucha de la información es validada via jQuery antes de ser enviada al CGI, se realiza una segunda validación de información a fin de verificar la autenticidad de los datos y evitar situaciones en los que se encontrase deshabilitado el javascript.

# Verify origin
die() unless ($bool_DEBUG || isSubstring($str_fromuri,$str_FULLDOMAIN));
# Verify data
push(@arr_errors,\'id\') unless (isID($str_catalogID));
isCollapsed($str_name,$str_desc);
IsChar($char_action);
La primer línea valida que el cgi haya sido llamado desde un formulario en el mismo dominio y que no se encuentre en modo de debug. La siguiente línea es un poco más compleja, ya que en primer término verifica que uno de los párametros sea en realidad un identificador y en caso de no serlo, lo agrega a una lista de probables errores de datos. Seguido de ello, las siguiente línea elimina dobles espacios así como espacios al inicio o final del dato, mientras la última línea verifica se trate de un caracter.

Almacenamiento

Aunque mucha de la información es validada via jQuery antes de ser enviada al CGI, se realiza una segunda validación de información a fin de verificar la autenticidad de los datos y evitar situaciones en los que se encontrase deshabilitado el javascript.

# Proceed if no errors if (!@arr_errors) { dbLogin; if ($char_action eq \'c\') { dbQuery("UPDATE ".dbPrefix."catalog SET name = \'$str_name\', description = \'$str_desc\' WHERE (id = \'$str_catalogID\') "); } dbLogout; } # Return to page print $cgi_this->redirect(-uri=>$str_fromuri); Muy similar al método de recuperación de datos, con la excepción que no se ha utilizado un objeto para enlazarse a la BD, las primeras líneas ejecutan la acción en caso de no haber existido errores, y por último se es redireccionado a la página desde la cual fué solicitada la acción .