Vie May 28, 2010 2:20 am |
|
|
alavaros
Perlero Nuevo
|
Registrado: Lun May 24, 2010 11:30 am Mensajes: 9
|
|
|
Re: Recoger datos de un formulario
|
Pues eso es lo raro, resulta que si está en alguno de esos directorios. He mirado en /usr/perl5/5.8.4/lib por probar, y esto es lo que contiene: Using text Syntax Highlighting AnyDBM_File.pm ExtUtils Sun cacheout.pl newgetopt.pl
Attribute Fatal.pm Switch.pm charnames.pm open.pm
AutoLoader.pm File Symbol.pm complete.pl open2.pl
AutoSplit.pm FileCache.pm Term constant.pm open3.pl
B FileHandle.pm Test ctime.pl overload.pm
Benchmark.pm Filter Test.pm dbm_filter_util.pl perl5db.pl
CGI FindBin.pm Text diagnostics.pm pod
CGI.pm Getopt Tie dotsh.pl pwd.pl
CPAN Hash Time dumpvar.pl shellwords.pl
CPAN.pm I18N UNIVERSAL.pm exceptions.pl sigtrap.pm
Carp IO Unicode fastcwd.pl sort.pm
Carp.pm IPC User fields.pm stat.pl
Class List abbrev.pl filetest.pm strict.pm
DB.pm Locale assert.pl find.pl subs.pm
DBI.pm Math attributes.pm finddepth.pl syslog.pl
DBM_Filter Memoize auto flush.pl tainted.pl
DBM_Filter.pm Memoize.pm autouse.pm getcwd.pl termcap.pl
Devel NEXT.pm base.pm getopt.pl timelocal.pl
Digest Net bigfloat.pl getopts.pl unicore
Digest.pm PerlIO bigint.pl hostname.pl utf8.pm
DirHandle.pm PerlIO.pm bigint.pm i86pc-solaris-64int utf8_heavy.pl
Dumpvalue.pm Pod bignum.pm if.pm validate.pl
Encode Scalar bigrat.pl importenv.pl vars.pm
English.pm Search bigrat.pm integer.pm vmsish.pm
Env.pm SelectSaver.pm blib.pm less.pm warnings
Exporter SelfLoader.pm bytes.pm locale.pm warnings.pm
Exporter.pm Shell.pm bytes_heavy.pl look.pl y sin embargo salta ese error. He probado con use lib "/usr/perl5/site_perl/5.8.4"; y ya no salta ese error, ahora hay otro, ¡je,je!, un error de sintaxis en esta línea: my $sth = $dbh->prepare("INSERT INTO cintas ("nombre","almacenamiento") VALUES (param(nombre), param(almacenamiento))");¿¿Qué error le ves?? Saludos
|
Vie May 28, 2010 4:06 am |
|
|
 |
explorer
Administrador
|
Registrado: Dom Jul 24, 2005 6:12 pm Ubicación: Valladolid, España Mensajes: 9518
|
|
|
Re: Recoger datos de un formulario
|
El error está en que Perl no interpola llamadas a funciones dentro de cadenas de texto (bueno, sí que puede, pero es muy feo). Y además hay comillas dobles dentro de otras comillas dobles. Prueba a escribirlo así (no probado): Using perl Syntax Highlighting my $sth = $dbh->prepare('INSERT INTO cintas ("nombre", "almacenamiento") VALUES (?,?)');
$sth->execute( param(nombre), param(almacenamiento) );
Así, además, habrás aumentado el nivel de seguridad, ya que DBI se ocupará de escapar los argumentos.
_________________ JF^D Perl programming
|
Vie May 28, 2010 5:17 am |
|
|
alavaros
Perlero Nuevo
|
Registrado: Lun May 24, 2010 11:30 am Mensajes: 9
|
|
|
Re: Recoger datos de un formulario
|
Buenas, muchas gracias por la ayuda que me estás prestando, voy aprendiendo poco a poco, ¡je,je! Sigo teniendo el mismo problema con el módulo DBI; he probado con use DBI (así simplemente me dice que no encuentra el módulo) con use lib "/usr/perl5/site_perl/5.8.4; y ahora también con use lib "/usr/perl5/site_perl/5.8.4/DBI, y el error ahora es: Using text Syntax Highlighting Status: 500 Content-type: text/html
Software error:
Can't locate object method "connect" via package "DBI" (perhaps you forgot to load "DBI"?) at /var/apache/cgi-bin/oracle.pl line 32.
For help, please send mail to the webmaster (you@yourhost.com), giving this error message and the time and date of the error.
|
Vie May 28, 2010 6:07 am |
|
|
 |
explorer
Administrador
|
Registrado: Dom Jul 24, 2005 6:12 pm Ubicación: Valladolid, España Mensajes: 9518
|
|
|
Re: Recoger datos de un formulario
|
A ver... el use lib sirve para decir dónde tiene que mirar Perl para buscar los módulos. Pero a continuación debes cargarlo: Using perl Syntax Highlighting use lib '/usr/perl5/site_perl/5.8.4';
use DBI; Una cosa... en la lista de módulos mostrada antes, no aparece el DBD::Oracle, que es el que DBI necesitará. Es posible que los errores que ves del DBI en realidad se refieren a que no encuentra DBD::Oracle.
_________________ JF^D Perl programming
|
Lun May 31, 2010 12:08 pm |
|
|
alavaros
Perlero Nuevo
|
Registrado: Lun May 24, 2010 11:30 am Mensajes: 9
|
|
|
Re: Recoger datos de un formulario
|
|
Buenas, explorer, parece que ya encontré cual es el problema: puede que sea un problema de versiones. Mi versión de Perl es la v5.8.4, y mi módulo DBI solo funciona correctamente con la v5.8.3, ¿tú qué crees?
Y ya de paso, ¿me podrías indicar cómo se instala el módulo DBI para la versión de Perl v5.8.4? Es para una máquina Unix. He leído algo por ahí que CPAN es muy fácil, pero no lo entiendo bien.
Muchas gracias por tu ayuda.
Saludos.
|
Lun May 31, 2010 12:29 pm |
|
|
 |
explorer
Administrador
|
Registrado: Dom Jul 24, 2005 6:12 pm Ubicación: Valladolid, España Mensajes: 9518
|
|
|
Re: Recoger datos de un formulario
|
|
Podría ser ese el error, claro, pero tengo mis dudas... Si DBI necesitara un determinado número de versión de Perl, ya lo diría en el momento de la carga del módulo. Por ejemplo, estoy viendo en CPAN la versión v1.611 de DBI, y en las primeras líneas dice que se requiere una versión de Perl >= v5.8.1.
Otra cosa. ¿Tienes instalado DBD::Oracle? Ese es el controlador que DBI necesita para poder dialogar con la base de datos Oracle. Aunque un poco pesado, es recomendable leerlo porque su instalación no es nada obvia.
Para instalar DBI (y el DBD::Oracle), es muchísimo mejor usar el sistema de paquetería software del propio sistema operativo.
Dices que es un Unix, pero no nos dices qué Unix es. Debes hablar con el administrador del sistema operativo y pedirle que te instale el Perl, DBI y DBD::Oracle más modernos que pueda conseguir para ese sistema operativo.
Se podría intentar instalar con el comando cpan, pero requerirá tener instalado un compilador de C, y algunas librerías más, antes de poder intentar instalarlo.
_________________ JF^D Perl programming
|
Mar Jun 01, 2010 8:53 am |
|
|
alavaros
Perlero Nuevo
|
Registrado: Lun May 24, 2010 11:30 am Mensajes: 9
|
|
|
Re: Recoger datos de un formulario
|
|
Buenas, la versión de Unix es SunOS. ¿Me podrías explicar, lo más sencillo posible, cómo instalar esos módulos?
Te explico un poco más: yo uso PuTTY (no sé si lo conoces) para conectarme a la máquina. No sé si influirá para poder instalarlo.
Saludos.
|
Mar Jun 01, 2010 10:48 am |
|
|
 |
explorer
Administrador
|
Registrado: Dom Jul 24, 2005 6:12 pm Ubicación: Valladolid, España Mensajes: 9518
|
|
|
Re: Recoger datos de un formulario
|
A ver... no puede ser... SunOS fue reemplazado por Solaris en 1992. ¿Es que tienes una máquina tan antigua funcionando?. Si fuera realmente un Solaris, esos módulos se instalarían de la misma manera que cualquier otro paquete software para Solaris. En este artículo se comentan las herramientas gráficas que Solaris tiene para la gestión de esos paquetes. Te vale con sentarte delante de la máquina, y arrancar uno de ellos (siendo el administrador o root del sistema). Seguramente, los nombres de los paquetes que te interesan se parecerán a libdbd-oracle-perl, o perl-dbd-oracle o algo parecido. Conozco el Putty. Lo utilicé mucho cuando aún usaba Windows. Sirve para abrir una conexión SSH a un servidor. Y esto indica que no tienes acceso directo al servidor con el Solaris. Entonces, deberás buscar en el sistema una herramienta de administración de paquetes software, pero en modo texto. O más rebuscado todavía: Putty permite hacer un túnel XWindow, por lo que podrías arrancar herramientas gráficas en tu ordenador (teniendo instalado antes un servidor de X en tu ordenador). No sé mucho más de Solaris. Solo lo he manejado una vez, una instalación desde cero, en un x86. Lo que sí recuerdo es que la gestión de paquetes era un poco pesada y que tuve que buscar mucha información por Internet. El tema del Oracle, en cambio, es más problemático, en caso de que no lo encuentres entre la paquetería del sistema. Si ocurre eso, antes de intentar bajarlo y compilarlo por tu cuenta, mira a ver si en el directorio de instalación de Oracle existe alguna carpeta llamada perl. He visto en algunas distribuciones de Oracle que traen una copia del intérprete perl, una versión de DBI y otra de DBD::Oracle, suficientes y probadas para que funcionen en ese Oracle. Puede ser una buena opción, si tienes la suerte de encontrarlo en el Oracle de tu servidor. Y si no se encuentra de ninguna manera (ni buscando en Google), pues no te queda otra que bajarte desde CPAN la distribución de DBD::Oracle y seguir los pasos de instalación indicados en el README. Hay algunos foros en Internet donde comentan los pasos y los problemas que van surgiendo en esa compilación. P.D. Es sorprendente que todavía existan servidores Solaris... los datos de hace un año indicaban que el porcentaje de mercado de ese sistema operativo era del 0.01%. En el mercado de UNIX, Linux tiene el 90%, y Solaris está, junto con el resto de UNIX propietarios, en un reducido 5%. A ver si hay alguien más en el foro que pueda ayudarte.
_________________ JF^D Perl programming
|
| Reglas del Foro |
No puedes abrir nuevos temas en este Foro No puedes responder a temas en este Foro No puedes editar tus mensajes en este Foro No puedes borrar tus mensajes en este Foro No puedes enviar adjuntos en este Foro
|
|
Socializa |
 |
|