Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Web » Código para manejar suscripciones con Paypal Responder al tema
Nuevo tema


Página 1 de 1  [ 10 mensajes ] 
 
Nota 2009-09-04 22:19 @972

Perlero Nuevo
Registrado: 2009-09-04 15:58 @707
Mensajes: 5
Código para manejar suscripciones con Paypal
Buenas tardes, soy nuevo en Perl y en CGI y pues no entiendo muchas cosas, como por ejemplo cómo ejecutar un código .cgi desde el servidor. Mi código está guardado como misusuarios.cgi que es para ejecutar el código descrito en esta misma página.

Básicamente estoy copiando por el momento el código tal cual para probarlo pero como ya dije soy nuevo en esto y aún no logro hacerlo funcionar; me funciona el .htacces y el .htpasswd pero el código que ejecuta la creación de los usuarios y posterior administración no sé cómo funciona... Si alguien me puede colaborar se lo agradezco muchísimo. De nuevo, mi problema es que no sé cómo ejecutar los .cgi para verlos y modificarlos.

Por otro lado no sé si pueda ser problema el que tenga una plataforma de Joomla en el servidor. :D


Nota 2009-09-05 09:56 @455
Avatar de Usuario
Creador de Perl en Español
Registrado: 2003-10-15 16:52 @744
Ubicación: México
Mensajes: 1163
Re: Código para manejar suscripciones con Paypal
Hola,

Lo primero que haría es probar con el CGI mínimo de explorer:
viewtopic.php?p=4569#4569

En el mismo tópico, viene una breve explicación de cómo ejecutarlo. Una vez que hayas probado nos comentas los resultados. Esto es importante pues primero hay que ver que puedas ejecutar scripts de Perl en tu servidor.

Saludos

_________________
Uriel Lizama Perl programmer fundador de Perl en Español


Nota 2009-09-05 12:30 @563

Perlero Nuevo
Registrado: 2009-09-04 15:58 @707
Mensajes: 5
Re: Código para manejar suscripciones con Paypal
Muchas gracias por la información, sí me sirvió para ejecutar los cgi pero ahora no logro hacer que funcione; en un principio apareció el pantallazo con las tablas a manejar pero me fijé que la carpeta a donde estaba buscando el .htpasswd estaba mal enrutada, así que lo corregí pero luego de esa corrección no me muestra nada.

¿Cómo hago para saber cuál es la sintaxis de la ruta a .htpasswd que debo usar?

Gracias.

Este es el código que estoy usando compilado tal cual del foro ya que así es más o menos como lo necesito.

http://perlenespanol.com/tutoriales/cgi ... asena.html

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. use warnings;
  4. use strict;
  5. use CGI;
  6.  
  7.  
  8. my $query = new CGI;
  9. my %Input = $query->Vars;
  10.  
  11.  
  12. my $cgiurl = "$ENV{'SCRIPT_NAME'}";
  13.  
  14. my $htpasswd = '/demos/portales/demo2/manual/.htpasswd';
  15.  
  16.  
  17. print "Content-type: text/html\n\n";
  18.  
  19. if(defined($Input{'crear_username'})){
  20. crear_nuevo_usuario();
  21. }
  22.  
  23. if(defined($Input{'eliminar_username'})){
  24. eliminar_usuario();
  25. }
  26.  
  27. tabla_nuevo_usuario();
  28.  
  29. enlistar_usuarios();
  30.  
  31.  
  32. sub tabla_nuevo_usuario{
  33.  
  34. print qq|
  35. <h1>Crear Nuevo Username</h1>
  36. <form action="$cgiurl" method="post">
  37.  
  38. <table cellpadding="5" cellspacing="5">
  39. <tr>
  40. <td align="right"><b>Username:</b></td>
  41. <td align="left"><input type="text" name="username" size="20"></td>
  42. </tr>
  43.  
  44. <tr>
  45. <td align="right"><b>Contraseña:</b></td>
  46. <td align="left"><input type="text" name="pwd" size="20"></td>
  47. </tr>
  48.  
  49. <tr>
  50. <td align="right"></td>
  51. <td align="left"><input type="submit" name="crear_username" value=" Crear Username "></td>
  52. </tr>
  53. </table>
  54.  
  55. </form>
  56. <hr>
  57. |;
  58.  
  59. }
  60.  
  61. sub crear_nuevo_usuario{
  62.  
  63. open my $file, '>>', $htpasswd or die("No se pudo abrir el .htpasswd: $!");
  64. print {$file} join ":", $Input{'username'}, crypt($Input{'pwd'}, "aa");
  65. print {$file} "\n";
  66. close $file;
  67.  
  68. }
  69.  
  70. sub enlistar_usuarios{
  71.  
  72. print qq|
  73. <h1>Usuarios Activos</h1>
  74. <form action="$cgiurl" method="post">
  75. <table cellpadding="5" cellspacing="5">
  76. <tr>
  77. <td>
  78. <select name="usuario" size="10">
  79. |;
  80.  
  81.  
  82. open my $file, '<', $htpasswd or die("No se pudo abrir .htpasswd: $!");
  83. while(my $line = <$file>){
  84. chomp($line);
  85. my ($usuario, $pwd) = split(/\:/, $line);
  86. print "<option value=\"$line\">$usuario</option>\n";
  87. }
  88. close $file;
  89.  
  90.  
  91. print qq|
  92. </td>
  93. <td>
  94. <input type="submit" name="eliminar_username" value=" Eliminar Usuario" >
  95. </td>
  96. </tr>
  97. </table>
  98. </form>
  99. <hr>
  100. |;
  101.  
  102. }
  103.  
  104. sub eliminar_usuario{
  105.  
  106. open my $in, '<', $htpasswd or die("No se pudo leer archivo .htpasswd: $!");
  107. my @usuarios = <$in>;
  108. close $in;
  109.  
  110.  
  111. open my $out, '>', $htpasswd or die("No se pudo leer archivo .htpasswd: $!");
  112.  
  113. for my $usuario(@usuarios){
  114. chomp($usuario);
  115.  
  116. if($usuario ne $Input{'usuario'}){
  117. print {$out} $usuario, "\n";
  118. }
  119.  
  120. }
  121.  
  122. close ($out);
  123.  
  124. }


Última edición por explorer el 2009-09-07 19:21 @848, editado 2 veces en total
Tildes


Nota 2009-09-05 15:01 @667
Avatar de Usuario
Creador de Perl en Español
Registrado: 2003-10-15 16:52 @744
Ubicación: México
Mensajes: 1163
Re: Código para manejar suscripciones con Paypal
En un primer vistazo, estoy casi seguro que la siguiente ruta no es correcta:

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
my $htpasswd = '/demos/portales/demo2/manual/.htpasswd';


Quizá te convenga cambiarla por una ruta relativa. ¿En qué directorio estás ejecutando el CGI?

_________________
Uriel Lizama Perl programmer fundador de Perl en Español


Nota 2009-09-07 18:55 @829

Perlero Nuevo
Registrado: 2009-09-04 15:58 @707
Mensajes: 5
Re: Código para manejar suscripciones con Paypal
Lo estoy ejecutando desde /public_html/cgi-bin de la raíz; ya me corrigieron los del server que la ruta de perl es #!/usr/local/bin/perl; con el código tal cual estaba más esta corrección se ejecutaba aunque no guardaba la información de las contraseñas, supongo que es por lo mismo de la ruta donde está el .htpasswd pero no sé cómo asignarle una ruta relativa.

Ahora el dilema es que en un principio con las correcciones que había hecho el soporte del servidor funcionó el archivo (sin guardar las contraseñas) y ahora aún con la corrección no funciona. :cry:

Estoy desesperado porque necesito terminar esto pronto y aún no me funciona. No sé si exista problema con Joomla. :?:


Nota 2009-09-07 19:16 @844
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10249
Re: Código para manejar suscripciones con Paypal
Agrega la línea
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
use CGI::Carp qw(fatalsToBrowser);

al principio, después del use CGI; para que el servidor te saque los posibles errores.

Si tienes acceso a los ficheros de registro de la actividad del servidor web (ficheros log), míralos, sobre todo el que guarda los errores.

Si es problema con los ficheros, los die() deben darte más información del porqué fallan, con la ayuda de la variable $! que tienes puesta.

_________________
JF^D Perl programming


Nota 2009-09-08 12:50 @576

Perlero Nuevo
Registrado: 2009-09-04 15:58 @707
Mensajes: 5
Re: Código para manejar suscripciones con Paypal
Bueno, coloqué la línea de código y ahora no me muestra nada, ni un error ni si está bien...
:S

Cambié de servidor, del de pruebas al de verdad (en parte porque ya no tengo mucho tiempo para entregar) y ahora no se ejecuta ni siquiera el minimo.pl que tenía de otro post para probar si servía el Perl en el servidor.

La información que me dieron en el servidor era que me tocaba crear la carpeta web/cgi-bin pero no sé si así no más debiera funcionar.


Última edición por explorer el 2009-09-08 14:44 @655, editado 1 vez en total
Ortografía


Nota 2009-09-08 14:52 @661
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10249
Re: Código para manejar suscripciones con Paypal
alcarcel escribió:
La información que me dieron en el servidor era que me tocaba crear la carpeta web/cgi-bin pero no sé si así no más debiera funcionar.

JAJAJAJA... o sea, que te dicen lo que tienes que hacer, y no te lo crees :lol:

_________________
JF^D Perl programming


Nota 2009-09-08 16:18 @720

Perlero Nuevo
Registrado: 2009-09-04 15:58 @707
Mensajes: 5
Re: Código para manejar suscripciones con Paypal
Sé que es bastante gracioso, la verdad, tengo una miniempresa de páginas web y ando resolviendo problemas de mi socio que prometió un e-comerce de suscripciones powered by joomla y pues hasta el momento no he podido configurar el virtuemart para que haga esto; y dando tumbos encontré el Perl (que ya lo había escuchado pero nunca usado); encontré en este mismo foro el código listo para usar, pero...

No fue tan fácil; sí, lo sé, soy nuevo, y no sé mucho (o tal vez nada) de Perl.

Es bastante claro que creé la carpeta que me decían en el servidor; mi pregunta era más encaminada a si solo creando la carpeta ya era más que suficiente, y pues no lo era: tocaba asignarle permisos 755; en serio estoy desesperado con este cuento.

El código minimo.pl que está hecho por explorer y pues que se supone que es para verificar si el Perl funciona o no, pues no me funciona. El dilema es que no sale ni un error ni tampoco si está bien, solo queda la pantalla en blanco.

Si alguien sabe de otra forma de crear suscripciones a un punto especifico de mi página pues se lo agradezco y si saben cuál es el problema con el código pues bien venido sea.

Gracias.


Última edición por explorer el 2009-09-08 16:24 @725, editado 1 vez en total
Ortografía, sintaxis, anglicismos.


Nota 2009-09-08 16:41 @737
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10249
Re: Código para manejar suscripciones con Paypal
Una cosa es hacer páginas web y otra cosa es ser un webmaster. Este último debe dominar técnicas de programación y administración. Al menos, dominar y saber cómo funciona un servidor web, en lo relativo a su tratamiento de los cgi. En concreto, un servidor web, de forma normal, solo ejecutará procesos CGI si están dentro de una determinada carpeta o directorio, si la carpeta tiene permisos de lectura y ejecución por parte del usuario que ejecuta el servidor web y el programa a ejecutar también tiene esos permisos. Eso es lo que debe saber, porque de lo primero, hacer páginas web, ya no es negocio: todo el mundo sabe hacer páginas web incluso usando el Micro$oft Word :(

Si habíais decidido usar Joomla, que es una tecnología PHP, sería de suponer que:
  1. Sabéis PHP
  2. En caso de dudas, participar en el foro de Joomla (o cualquier otro de Joomla)

Entrar en un foro de un lenguaje que no domináis es de una enorme irresponsabilidad, sobre todo para vosotros mismos: os arriesgáis a que el trabajo no salga nunca.

Programar "de verdad", no es lo mismo que hacer script-kidding. Y sobre todo en Perl: los programas pueden ser tan enrevesados como en PHP y, después de muchas horas, no obtener nada.

Si el otro socio la "ha cagado", pues que apechugue con ello. Conozco bastantes historias de comerciales que han vendido motos, y que luego los programadores nos hemos tenido que tragar hasta fines de semana para sacar cosas que, 72 horas antes, eran imposibles de realizar para nosotros, pero perfectamente posibles para el comercial.

Si has creado la carpeta, has dado permisos, has dejado allí el CGI mínimo, le has dado permisos, y después de invocarle desde la web, no sale nada, es que algo está mal. Yo, lo que haría y ya te he repetido, es ver los ficheros de actividad del servidor web, porque es ALLÍ donde queda registrado el PORQUÉ no funciona.

Mi consejo es, que si domináis PHP, busquéis un procedimiento en PHP para resolver este asunto. Seguro que existe. Y para Joomla, debería de existir.

Actualización: En la web de Apache hay un Tutorial sobre CGI.

_________________
JF^D Perl programming


Responder al tema  [ 10 mensajes ] 

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

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO