• Publicidad

Comprobando input

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

Comprobando input

Notapor erv-Z » 2009-11-02 13:07 @588

Buenas, tengo una duda, como todos xD : necesito ir comprobando varias input de una URL; ejemplo:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
www.pagina.com/a.php?id=1&cat=1&ver=1
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Donde las input son id=1, cat=1 y ver=1, pues lo que quiero automatizar es agregarle algo, o sea, ir agregándoselo input por input, ejemplo:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
www.pagina.com/a.php?id=1hello&cat=1&ver=1
www.pagina.com/a.php?id=1&cat=1hello&ver=1
www.pagina.com/a.php?id=1&cat=1&ver=1hello
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Espero que se me pueda entender...

Saludos.
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Publicidad

Re: Comprobando input

Notapor explorer » 2009-11-02 13:13 @593

¿Qué significa "comprobar"?
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: Comprobando input

Notapor erv-Z » 2009-11-02 13:18 @596

Verificar; revisar o analizar alguna cosa para confirmar o corroborar su veracidad, existencia o exactitud.

http://es.wiktionary.org/wiki/comprobar
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: Comprobando input

Notapor explorer » 2009-11-02 13:40 @611

Sí, pero la pregunta es porqué quieres hacer eso... porque quizás se pueda resolver de otra forma mucho más cómoda que no modificando la URL.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use diagnostics;
  5.  
  6.  
  7. my $url = 'www.pagina.com/a.php?id=1&cat=1&ver=1';
  8.  
  9. my $agregar = 'hello';
  10.  
  11. while ($url =~ m/\&/g) {
  12.  
  13.     my $nueva_url = $url;
  14.  
  15.     substr($nueva_url, pos($url)-1, 0, $agregar);
  16.  
  17.     comprobar($nueva_url);
  18. }
  19.  
  20. comprobar($url . $agregar);
  21.  
  22.  
  23. sub comprobar {
  24.     print $_[0], "\n";
  25. }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

En este código usamos una expresión regular para buscar la posicion de cada '&', y con la ayuda de la función substr() con 4 parámetros, 'metemos con calzador' lo que queremos $agregar dentro de la $nueva_url que queremos comprobar().

Después del bucle, tenemos que comprobar() el último caso: el de $agregar lo que queremos al último parámetro de la $url original.
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: Comprobando input

Notapor erv-Z » 2009-11-02 14:22 @640

Gracias, explorer, pero lo único que no entendí fue la función pos de la línea 15.
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: Comprobando input

Notapor explorer » 2009-11-02 15:29 @687

pos() devuelva la posición en donde encontró el patrón de búsqueda.

Más información en perldoc perlre.
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: Comprobando input

Notapor erv-Z » 2009-11-11 15:20 @681

oka grax, pero lo que busco es que se lo adapte a cualquier número de query, o sea.

Se podría crear una subrutina que reciba la URL y luego ubique los input y le agregue hola al final de cada input.

Ejemplo: tendría las siguiente dos URL.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $a = 'www.pagina.com/a.php?id=811&cat=324&ver=1'
my $b = 'www.pagina.com/a.php?id=811&cat=324&ver=1&not=1&recat=99999'

sub query{
.....
}
my $aa = query($a)
my $bb = query($b)
print $aa."\n".$bb."\n";
 
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Si se necesita ocupar algún módulo, no hay problema.

Saludos.
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: Comprobando input

Notapor explorer » 2009-11-12 16:37 @734

Pero si lo tienes hecho ya... solo tienes que hacer un bucle...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my @queries = qw(
     http://www.pagina.com/a.php?id=811&cat=324&ver=1
     http://www.pagina.com/a.php?id=811&cat=324&ver=1&not=1&recat=99999
);

for my $query (@queries) {
    comprobar_query($query);
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Comprobando input

Notapor erv-Z » 2009-11-12 16:59 @749

Al parecer no me entendiste; mira, lo explico mejor.

Tengo una URL almacenada en una variable, y tengo una función; le aplicaré la función a la variable para que me tire 'hola' después de cada input, o sea, que me imprimirá 'hola' después de cada input.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $a = 'www.pagina.com/a.php?id=811&cat=324&ver=1'
my $b = 'www.pagina.com/a.php?id=811&cat=324&ver=1&not=1&recat=99999'

sub query{
    .....
}
my $aa = query($a)
my $bb = query($b)
print $aa."\n".$bb."\n";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Salida:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
http://www.pagina.com/a.php?id=811hola&cat=324hola&ver=1hola
http://www.pagina.com/a.php?id=811&cat=324hola&ver=1hola&not=1hola&recat=99999hola
 
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Saludos, espero que se haya comprendido...
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: Comprobando input

Notapor explorer » 2009-11-12 17:25 @767

Pues entonces la solución es igual que antes... una expresión regular:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$a = 'www.pagina.com/a.php?id=811&cat=324&ver=1';
$a =~ s/\&/hola&/g;
$a = $a . 'hola';
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
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 21 invitados