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
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.
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();
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 .