• Publicidad

Código para manejar suscripciones con Paypal

Todo lo relacionado con el desarrollo Web con Perl: desde CGI hasta Mojolicious

Código para manejar suscripciones con Paypal

Notapor alcarcel » 2009-09-04 22:19 @972

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
alcarcel
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2009-09-04 15:58 @707

Publicidad

Re: Código para manejar suscripciones con Paypal

Notapor kidd » 2009-09-05 09:56 @455

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
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Re: Código para manejar suscripciones con Paypal

Notapor alcarcel » 2009-09-05 12:30 @563

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

Sintáxis: [ Descargar ] [ Ocultar ]
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. }
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
Última edición por explorer el 2009-09-07 19:21 @848, editado 2 veces en total
Razón: Tildes
alcarcel
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2009-09-04 15:58 @707

Re: Código para manejar suscripciones con Paypal

Notapor kidd » 2009-09-05 15:01 @667

En un primer vistazo, estoy casi seguro que la siguiente ruta no es correcta:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $htpasswd = '/demos/portales/demo2/manual/.htpasswd';
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


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
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Re: Código para manejar suscripciones con Paypal

Notapor alcarcel » 2009-09-07 18:55 @829

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. :?:
alcarcel
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2009-09-04 15:58 @707

Re: Código para manejar suscripciones con Paypal

Notapor explorer » 2009-09-07 19:16 @844

Agrega la línea
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use CGI::Carp qw(fatalsToBrowser);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

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 & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Código para manejar suscripciones con Paypal

Notapor alcarcel » 2009-09-08 12:50 @576

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
Razón: Ortografía
alcarcel
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2009-09-04 15:58 @707

Re: Código para manejar suscripciones con Paypal

Notapor explorer » 2009-09-08 14:52 @661

alcarcel escribiste: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 & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Código para manejar suscripciones con Paypal

Notapor alcarcel » 2009-09-08 16:18 @720

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
Razón: Ortografía, sintaxis, anglicismos.
alcarcel
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2009-09-04 15:58 @707

Re: Código para manejar suscripciones con Paypal

Notapor explorer » 2009-09-08 16:41 @737

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 & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Web

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados