• Publicidad

Paso de variable con PHP y recepción de resultados

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Paso de variable con PHP y recepción de resultados

Notapor juanzapatac » 2011-02-21 12:15 @552

Hola.

Soy nuevo en Perl y quiero hacer un formulario que me envíe 2 datos a un archivo .pm usando JavaScript y PHP.
He revisado que Perl esté bien configurado y que me responda correctamente en línea de comandos.

El problema lo tengo al llamar desde JavaScript.
Creo que es mejor con código:
Formulario en PHP:
Sintáxis: [ Descargar ] [ Ocultar ]
Using php Syntax Highlighting
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2.   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4.   <head>
  5.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6.     <title>Very simple login using Perl, jQuery, Ajax, JSON and MySQL</title>
  7.     <link rel="stylesheet" type="text/css" media="screen, projection"
  8.       href="http://www.blueprintcss.org/blueprint/screen.css" />
  9.     <link rel="stylesheet"  type="text/css" media="screen, projection"
  10.       href="http://www.blueprintcss.org/blueprint/plugins/buttons/screen.css" />
  11.     <link rel="stylesheet" type="text/css" media="print"
  12.       href="http://www.blueprintcss.org/blueprint/print.css" />
  13.     <!--[if IE]><link rel="stylesheet" type="text/css" media="screen, projection"
  14.       href="http://www.blueprintcss.org/blueprint/ie.css"><![endif]-->
  15.     <script type="text/javascript"
  16.       src="http://code.jquery.com/jquery-1.4.4.min.js"></script>
  17.     <script type="text/javascript" src="js/test.js"></script>
  18.     <style type="text/css">
  19.       #loginContent { width: 350px; margin: 100px auto; }
  20.      button[type] { margin: 0.5em 0; }
  21.     </style>
  22.   </head>
  23.   <body>
  24.     <div id="whoisContent" class="container">
  25.       <div id="whoisResult" style="display:none;">
  26.       </div>
  27.       <form id="whoisForm" name="whoisForm" method="post" action="">
  28.         <fieldset>
  29.           <legend>Enter information</legend>
  30.           <p>
  31.             <label for="domain">Dominio</label>
  32.             <br />
  33.             <input type="text" id="domain" name="domain" class="text" size="20" />
  34.           </p>
  35.           <p>
  36.             <label for="extension">Extension</label>
  37.             <br />
  38.             <input type="extension" id="extension" name="extension" class="text" size="20" />
  39.           </p>
  40.           <p>
  41.             <button type="submit" class="button positive">
  42.              <img alt="ok" src=
  43.              "http://www.blueprintcss.org/blueprint/plugins/buttons/icons/tick.png" />
  44.              Buscar
  45.             </button>
  46.           </p>
  47.         </fieldset>
  48.       </form>
  49.     </div>
  50.   </body>
  51. </html>
Coloreado en 0.022 segundos, usando GeSHi 1.0.8.4


Ahora test.js que está en el directorio js/:
Sintáxis: [ Descargar ] [ Ocultar ]
Using javascript Syntax Highlighting
  1. $(document).ready(function(){
  2.   $("form#whoisForm").submit(function() { // whoisForm is submitted
  3.     var domain = $('#domain').attr('value'); // get domain
  4.     var extension = $('#extension').attr('value'); // get extension
  5.  
  6.     if (domain && extension) { // values are not empty
  7.       $.ajax({
  8.         type: "GET",
  9.         url: "cgi-bin/whois.pl", // URL of the Perl script
  10.         contentType: "application/json; charset=utf-8",
  11.         dataType: "json",
  12.         // send domain and extension as parameters to the Perl script
  13.         data: "domain=" + domain + "&extension=" + extension,
  14.         // script call was *not* successful
  15.         error: function(XMLHttpRequest, textStatus, errorThrown) {
  16.           $('div#whoisResult').text("responseText: " + XMLHttpRequest.responseText
  17.             + ", textStatus: " + textStatus
  18.             + ", errorThrown: " + errorThrown);
  19.           $('div#whoisResult').addClass("error");
  20.         }, // error
  21.         // script call was successful
  22.         // data contains the JSON values returned by the Perl script
  23.         success: function(data){
  24.           if (data.error) { // script returned error
  25.             $('div#whoisResult').text("data.error: " + data.error);
  26.             $('div#whoisResult').addClass("error");
  27.           } // if
  28.           else { // login was successful
  29.             $('form#whoisForm').hide();
  30.             $('div#whoisResult').text("data.success: " + data.success
  31.               + ", data.userid: " + data.userid);
  32.             $('div#whoisResult').addClass("success");
  33.           } //else
  34.         } // success
  35.       }); // ajax
  36.     } // if
  37.     else {
  38.       $('div#whoisResult').text("enter domain and extension");
  39.       $('div#whoisResult').addClass("error");
  40.     } // else
  41.     $('div#whoisResult').fadeIn();
  42.     return false;
  43.   });
  44. });
  45.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Ahora el whois.pl:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/local/bin/perl5.12.2
  2. use lib qw ( /usr/local/lib/perl5/5.12.2 );
  3. use DotSRS_Client;
  4. if( @ARGV){
  5.     $srs_client = new DotSRS_Client;
  6.     ($ref) = $srs_client->domain_info(shift @ARGV, 'tv');
  7.     foreach $key (keys %{ $ref }) {
  8.     print "$key : ", $ref->{$key},"\n";
  9.     }
  10. }
  11. else{
  12.     print "Usage: dinfo <domain>\n";
  13. }
  14.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


EL archivo DotSRS_Client.pm está en la ruta correcta, también probé cambiando la ruta y he verificado los permisos en 755.

El error que salta es:
Sintáxis: [ Descargar ] [ Ocultar ]
Using html4strict Syntax Highlighting
  1. responseText: <HTML><HEAD><TITLE>404 Not Found</TITLE></HEAD><BODY>
  2. <H1>Not Found</H1>The requested document was not found on this server.<P><HR>
  3. <ADDRESS>Web Server at flooming.co</ADDRESS></BODY></HTML><!--
  4.   - Unfortunately, Microsoft has added a clever new
  5.   - "feature" to Internet Explorer. If the text of
  6.   - an error's message is "too small", specifically
  7.   - less than 512 bytes, Internet Explorer returns
  8.   - its own error message. You can turn that off,
  9.   - but it's pretty tricky to find switch called
  10.   - "smart error messages". That means, of course,
  11.   - that short error messages are censored by default.
  12.   - IIS always returns error messages that are long
  13.   - enough to make Internet Explorer happy. The
  14.   - workaround is pretty simple: pad the error
  15.   - message with a big comment like this to push it
  16.   - over the five hundred and twelve bytes minimum.
  17.   - Of course, that's exactly what you're reading   - right now.   -->
  18. , textStatus: error, errorThrown: undefined
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


¿¿¿ Alguna ayuda ???

Agradezco de antemano.
juanzapatac
Perlero nuevo
Perlero nuevo
 
Mensajes: 6
Registrado: 2011-01-29 11:25 @517

Publicidad

Re: Paso de variable con PHP y recepción de resultados

Notapor explorer » 2011-02-21 12:29 @561

Bienvenido a los foros de Perl en Español, juanzapatac.

El error dice que se ha solicitado un recurso, y no se ha encontrado. Así que una de las peticiones HTTP no es correcta.

Por las que veo en el código, quizás sea la llamada al cgi.

Donde dice

url: "cgi-bin/whois.pl",

cambiarlo por

url: "/cgi-bin/whois.pl",
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Paso de variable con PHP y recepción de resultados

Notapor juanzapatac » 2011-02-21 12:55 @579

Hola Explorer.
Gracias por tu respuesta.
He probado también modificando la ruta pero tampoco funciona.

Lo que no entiendo es que si voy por shell y llego a la ruta y ejecuto el .pl me da la respuesta. Pero desde la URL me sale este error:

500 Internal Server error

:(
juanzapatac
Perlero nuevo
Perlero nuevo
 
Mensajes: 6
Registrado: 2011-01-29 11:25 @517

Re: Paso de variable con PHP y recepción de resultados

Notapor explorer » 2011-02-21 13:07 @588

Echa un vistazo al fichero de error del servidor web, para saber qué recurso es que el que está provocando el error.

Mejor dicho, debería haber una entrada en el registro de actividad (access.log en un Apache) y la misma entrada en el de error (error.log en un Apache), con un mensaje de error.

En ese momento sabrás qué petición HTTP ha provocado el mensaje de error. Y por qué.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Paso de variable con PHP y recepción de resultados

Notapor juanzapatac » 2011-02-21 13:20 @597

El log muestra:
[Mon Feb 21 19:18:51 2011] [error] [client 95.21.2.48] Warning: no status!, referer: http://www.flooming.co/whoisflooming.php

¿¿¿ Parece que falta status ??? Pero no sé cómo enviarlo desde el formulario.
juanzapatac
Perlero nuevo
Perlero nuevo
 
Mensajes: 6
Registrado: 2011-01-29 11:25 @517

Re: Paso de variable con PHP y recepción de resultados

Notapor explorer » 2011-02-21 14:48 @658

Debes encontrar el mismo registro en el fichero de accesos (access.log), para saber qué petición completa es.

El mensaje de status se puede referir a que en la cabecera HTTP no se ha indicado el estado del resultado de la petición HTTP.

Eso quiere decir que hemos hecho una petición HTTP y la respuesta no es conforme al protocolo HTTP.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Paso de variable con PHP y recepción de resultados

Notapor juanzapatac » 2011-02-22 12:18 @554

El access.log me muestra lo siguiente:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
95.21.2.48 - - [22/Feb/2011:18:10:05 +0100] "GET /whoisflooming.php HTTP/1.1" 200 2609 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.98 Safari/534.13"
95.21.2.48 - - [22/Feb/2011:18:10:06 +0100] "GET /js/flooming.js HTTP/1.1" 304 146 "http://www.flooming.co/whoisflooming.php" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.98 Safari/534.13"
95.21.2.48 - - [22/Feb/2011:18:10:06 +0100] "GET /ajax.js HTTP/1.1" 304 147 "http://www.flooming.co/whoisflooming.php" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.98 Safari/534.13"
95.21.2.48 - - [22/Feb/2011:18:10:06 +0100] "GET /favicon.ico HTTP/1.1" 404 1240 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.98 Safari/534.13"
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
juanzapatac
Perlero nuevo
Perlero nuevo
 
Mensajes: 6
Registrado: 2011-01-29 11:25 @517

Re: Paso de variable con PHP y recepción de resultados

Notapor explorer » 2011-02-22 12:21 @556

No...

A ver si me explico...

Debes buscar el MISMO registro (fecha) en los dos ficheros. Mostraste el error.log del día 21 y ahora nos muestras los registros del día 22... Deben ser de la misma fecha y hora.

De esa manera, se verá en el access.log la petición y en el error.log el error producido.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Paso de variable con PHP y recepción de resultados

Notapor juanzapatac » 2011-02-22 13:14 @593

Hola y muchas gracias por tu paciencia.
Ahora he reconstruido todo y lo transcribo, que voy pillando experiencia.

1. Formulario whoisflooming.php
Sintáxis: [ Descargar ] [ Ocultar ]
Using php Syntax Highlighting
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2.   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4.   <head>
  5.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6.     <title>Very simple login using Perl, jQuery, Ajax, JSON and MySQL</title>
  7.     <link rel="stylesheet" type="text/css" media="screen, projection"
  8.       href="http://www.blueprintcss.org/blueprint/screen.css" />
  9.     <link rel="stylesheet"  type="text/css" media="screen, projection"
  10.       href="http://www.blueprintcss.org/blueprint/plugins/buttons/screen.css" />
  11.     <link rel="stylesheet" type="text/css" media="print"
  12.       href="http://www.blueprintcss.org/blueprint/print.css" />
  13.     <!--[if IE]><link rel="stylesheet" type="text/css" media="screen, projection"
  14.       href="http://www.blueprintcss.org/blueprint/ie.css"><![endif]-->
  15.     <script type="text/javascript"
  16.       src="http://code.jquery.com/jquery-1.4.4.min.js"></script>
  17.     <script type="text/javascript" src="js/flooming.js"></script>
  18.     <style type="text/css">
  19.       #loginContent { width: 350px; margin: 100px auto; }
  20.      button[type] { margin: 0.5em 0; }
  21.     </style>
  22.   </head>
  23.   <body>
  24.     <div id="whoisContent" class="container">
  25.       <div id="whoisResult" style="display:none;">
  26.       </div>
  27.       <form id="whoisForm" name="whoisForm" method="get" action="">
  28.         <fieldset>
  29.           <legend>Enter information</legend>
  30.           <p>
  31.             <label for="domain">Ref</label>
  32.             <br />
  33.             <input type="ref" id="ref" name="ref" class="text" size="20" />
  34.           </p>
  35.           <p>
  36.             <label for="status">Status</label>
  37.             <br />
  38.             <input type="status" id="status" name="status" class="text" size="20" />
  39.           </p>
  40.           <p>
  41.             <button type="submit" class="button positive">
  42.              <img alt="ok" src=
  43.              "http://www.blueprintcss.org/blueprint/plugins/buttons/icons/tick.png" />
  44.              Buscar
  45.             </button>
  46.           </p>
  47.         </fieldset>
  48.       </form>
  49.     </div>
  50.   </body>
  51. </html>
  52.  
Coloreado en 0.012 segundos, usando GeSHi 1.0.8.4


Ahora el flooming.js
Sintáxis: [ Descargar ] [ Ocultar ]
Using javascript Syntax Highlighting
  1. $(document).ready(function(){
  2.   $("form#whoisForm").submit(function() { // Form is submitted
  3.     var ref = $('#ref').attr('value'); // get ref
  4.     var status = $('#status').attr('value'); // get status
  5.  
  6.     if (ref && status) { // values are not empty
  7.       $.ajax({
  8.         type: "GET",
  9.         url: "/cgi-bin/whois.pl", // URL of the Perl script
  10.         contentType: "application/json; charset=utf-8",
  11.         dataType: "json",
  12.         // send ref and status as parameters to the Perl script
  13.         data: "ref=" + ref + "&status=" + status,
  14.         // script call was *not* successful
  15.         error: function(XMLHttpRequest, textStatus, errorThrown) {
  16.           $('div#whoisResult').text("responseText: " + XMLHttpRequest.responseText
  17.             + ", textStatus: " + textStatus
  18.             + ", errorThrown: " + errorThrown);
  19.           $('div#whoisResult').addClass("error");
  20.         }, // error
  21.         // script call was successful
  22.         // data contains the JSON values returned by the Perl script
  23.         success: function(data){
  24.           if (data.error) { // script returned error
  25.             $('div#whoisResult').text("data.error: " + data.error);
  26.             $('div#whoisResult').addClass("error");
  27.           } // if
  28.           else { // login was successful
  29.             $('form#whoisForm').hide();
  30.             $('div#whoisResult').text("data.success: " + data.success
  31.               );
  32.             $('div#whoisResult').addClass("success");
  33.           } //else
  34.         } // success
  35.       }); // ajax
  36.     } // if
  37.     else {
  38.       $('div#whoisResult').text("enter domain and extension");
  39.       $('div#whoisResult').addClass("error");
  40.     } // else
  41.     $('div#whoisResult').fadeIn();
  42.     return false;
  43.   });
  44. });
  45.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Luego el whois.pl
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/local/bin/perl5.12.2
  2. use lib qw ( /usr/local/lib/perl5/5.12.2 );
  3. use DotSRS_Client;
  4. # create the client object
  5. $srs_client = new DotSRS_Client;
  6. ###################################
  7. #
  8. # Test AccountBalance
  9. #
  10. ###################################
  11. print "Starting AccountBalance test...\n";
  12. ($status, $ref) = $srs_client->account_balance('com');
  13. unless ($status){
  14.     die "AccountBalance test failed (status=$status)\n";
  15. }
  16. unless ( $ref->{'STORED VALUE'} ){
  17.     die "Unexpected result.  No STORED VALUE.\n";
  18. }
  19. foreach $key (keys %{ $ref }) {
  20.     print "\t$key : ", $ref->{$key},"\n";
  21. }
  22. print "PASSED AccountBalance test\n\n";
  23.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Resultado de comando por shell:

Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. [root@flooming cgi-bin]# perl whois.pl
  2. testsrs.srsplus.com
  3. Estas Usando el SRS ID 83254FDB
  4. Programado para Flooming.com
  5. Starting AccountBalance test...
  6.         BUYING POWER : 100.00
  7.         STORED VALUE : 17.11
  8.         UNPAID CHARGES : 0.00
  9. PASSED AccountBalance test
  10.  
  11. [root@flooming cgi-bin]#
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Acces Log:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
  1. 95.21.2.48 - - [22/Feb/2011:19:04:42 +0100] "GET /whoisflooming.php HTTP/1.1" 200 2295 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.98 Safari/534.13"
  2. 95.21.2.48 - - [22/Feb/2011:19:04:43 +0100] "GET /js/flooming.js HTTP/1.1" 200 1985 "http://www.flooming.co/whoisflooming.php" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.98 Safari/534.13"
  3. 95.21.2.48 - - [22/Feb/2011:19:04:43 +0100] "GET /favicon.ico HTTP/1.1" 304 146 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.98 Safari/534.13"
  4. 95.21.2.48 - - [22/Feb/2011:19:04:53 +0100] "GET /cgi-bin/whois.pl?ref=22&status=1 HTTP/1.1" 500 1529 "http://www.flooming.co/whoisflooming.php" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.98 Safari/534.13"
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Error Log:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
  1. [Tue Feb 22 19:04:53 2011] [error] [client 95.21.2.48] malformed header from script. Bad header=testsrs.srsplus.com: whois.pl, referer: http://www.flooming.co/whoisflooming.php
  2. [Tue Feb 22 19:04:53 2011] [error] [client 95.21.2.48] gpg: fatal: can't create directory `/root/.gnupg': Permission denied, referer: http://www.flooming.co/whoisflooming.php
  3. [Tue Feb 22 19:04:53 2011] [error] [client 95.21.2.48] secmem usage: 0/0 bytes in 0/0 blocks of pool 0/32768, referer: http://www.flooming.co/whoisflooming.php
  4. [Tue Feb 22 19:04:54 2011] [error] [client 95.21.2.48] Warning: no status!, referer: http://www.flooming.co/whoisflooming.php
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


¡¡¡ Creo que está todo !!!
juanzapatac
Perlero nuevo
Perlero nuevo
 
Mensajes: 6
Registrado: 2011-01-29 11:25 @517

Re: Paso de variable con PHP y recepción de resultados

Notapor explorer » 2011-02-22 16:37 @734

Bueno, pues ya se ven cosas...

La línea de error número 1, se refiere a que whois.pl no está devolviendo una cabecera HTTP correcta. Por lo que se ve en la salida del programa, así es.

Para arreglarlo, debes hacer que el whois.pl genere una línea como esta:

print "Content-type: application/json\n\n";

(Observa que es una línea de texto seguido de dos caracteres de avance de línea). Y debes evitar que el whois.pl genere las líneas
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
testsrs.srsplus.com
Estas Usando el SRS ID 83254FDB
Programado para Flooming.com
Starting AccountBalance test...
PASSED AccountBalance test
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Es decir... SOLO puedes enviar al Ajax la información que está pidiendo, que son la variables en formato JSON.

La línea 2 del error.log es más problemática... La ejecución del whois.pl ha generado a su vez la ejecución del comando gpg. Y éste ha intentado guardar datos en el directorio .gnupg colgando del directorio raíz del usuario, que en este caso es /root (o sea, que deducimos que el usuario que está ejecutando el servidor Apache es root). Pero no tiene permisos para hacerlo y falla (por lo que ahora deducimos que, realmente, no era el usuario root, sino que es otro usuario, pero que su directorio por defecto es el de root).

Para arreglar esto... Creas un subdirectorio /root/.gnupg con permisos de escritura para todos. Creo que esta solución puede ser más fácil de la que realmente habría que hacer: que el usuario del servidor web se ejecutara como otro usuario y tuviera su propio subdirectorio .gnupg.

O incluso con chdir() al principio del whois.pl se podría intentar arreglar, moviendo el directorio de trabajo a un lugar seguro y controlado (y con subdirectorio .gnupg).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Siguiente

Volver a Básico

¿Quién está conectado?

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