Regresar   Foros del Web > Programación para sitios web > Perl y CGI

El registro es Gratis en Foros del Web
Respuesta
 
Herramientas Buscar en Tema Desplegado
Antiguo 26/03/08, 10:05:21   #1 (permalink)
Alphabravo ha deshabilitado el Karma
 
Registrado: ene 2005
Mensajes: 156
Alphabravo is offline  
aplicacion CGI

Hola una pregunta es que quiero hacer una aplicacion en CGI que se conecte a una base de datos con parametros por ejemplo


http://localhost/cgi_bin/conectar.ex...er01&pass=1234

por ejemplo asi crear en conectar.exe que reciba esos parametros de usuario y contraseña para conectarse a una base de datos y que le regrese el usuario conexion realizada hola user01

o otro que sea por ejempo

http://localhost/cgi_bin/eliminar.ex...er01&pass=1234

que te elimine el usuario de la base de datos

gracias alguien podria ayduarme? gracias

el.exe lo puedo hacer en C o C# o Visual no ? pero no se mas o menos como :(
  Responder Con Cita
Antiguo 26/03/08, 11:23:23   #2 (permalink)
$moderador{'Esteban'}
monoswim tiene un muy buen nivel de karmamonoswim tiene un muy buen nivel de karma
 
Registrado: nov 2002
Ubicación: Buenos Aires - Argentina
Mensajes: 7.119
Contactar con monoswim a través de MSN
monoswim is offline  
Re: aplicacion CGI

Acá vemos más que nada el lenguaje PERL, es muy bueno y lo puedes ejecutar tanto en windows como en linux...Y es muy parecido a C, pero mucho más fácil...quedaría como

hjttp://localhost/cgi-bin/alimiar.cgi?pass=1234

Si estás en windows fijate de instalar perl desde www.activeperl.com y en linux ya viene instalado...

Espero que te sirva

Saludos
__________________
MonoSwim

Antes era fanfarrón y canchero, ahora soy perfecto !!!!!!!
  Responder Con Cita
Antiguo 26/03/08, 22:39:19   #3 (permalink)
Alphabravo ha deshabilitado el Karma
 
Registrado: ene 2005
Mensajes: 156
Alphabravo is offline  
Re: aplicacion CGI

hola entonces el .exe tengo que hacerloen perl? y ese archivo lo meto a cgi? y cuando lo ejecute por ejemplo

alimiar.cgi?user=user01&pass=1234

si el usuario existe en la base de datos que este me imprima hola user01 y si no esta que diga no existe usuario? si se puede ¿ usando mysql y perl? como seria con mysql perl y la apicacion en per cgi?? tienen algun ejemplo?

por ejemplo aqui encontre perl y mysql

Cita:
#!/usr/bin/perl # definimos el sheband

use strict; # definimos el pragma estricto
use DBI(); # pedimos que disponga a carguar el DBI

# Conectamos a la DB.
my $dbh = DBI->connect("DBI:mysql:database=test;host=localhost ",
"username", "password",
{'RaiseError' => 1});

# definimos que el driver que vamos a utilizar es mysql que lo levante si no lo tiene, sino te tira error #(No recuerdo los internal pero mepa que usa autoload para poder levantarla).


# preparamos la sentencia a utilizar, Perl soporta placeholders.

my $sth = $dbh->prepare("SELECT nombre,apellido,edad FROM mitabla");

# ejecutamos la sentencia

$sth->execute();

# extraemos los datos fetchrow_hashref(), para mi, está es una de las más útiles pero siempre
# depende el contexto, debes saber utilizar referencias, son parecidas a C.
# en este caso significa "devolver las filas por medio de referencias con forma de array asociativo"
# cada vuelta de while es una fila distinta

while (my $ref = $sth->fetchrow_hashref()) {
print "$ref->{'apellido'}, $ref->{'nombre'} tiene $ref->{'edad'}\n";
}
$sth->finish();

# Desconectar de la base de datos, no es necesario a menos que este
# utilizando a Perl como modulo de apache.
$dbh->disconnect();
pero es que me dejaron realizar una aplicacion que funcione cgi peor no se como realizarla podria ayudarme, no se si se hace el programa en perl y se pone en la carpeta cgi y ya o como?

no se si debo utilizar estas variables de CGI

Variables de entorno que se intercambian de cliente a CGI:

1. QUERY_STRING: Es la cadena de entrada del CGI cuando se utiliza el método GET sustituyendo algunos símbolos especiales por otros. Cada elemento se envía como una pareja Variable=Valor. Si se utiliza el método POST esta variable de entorno está vacía.
2. CONTENT_TYPE: Tipo MIME de los datos enviados al CGI mediante POST. Con GET está vacía. Un valor típico para esta variable es: Application/X-www-form-urlencoded.
3. CONTENT_LENGTH: Longitud en bytes de los datos enviados al CGI utilizando el método POST. Con GET está vacía.
4. PATH_INFO: Información adicional del "path" tal y como llega al servidor en el URL.
5. REQUEST_METHOD: Nombre del método (GET o POST) utilizado para invocar al CGI.
6. SCRIPT_NAME: Nombre del CGI invocado.
7. SERVER_PORT: Puerto por el que el servidor recibe la conexión.
8. SERVER_PROTOCOL: Nombre y versión del protocolo en uso. (Ejem.: HTTP/1.0 o 1.1
Variables de entorno que se intercambian de servidor a CGI:

1. SERVER_SOFTWARE: Nombre y versión del software servidor de www.
2. SERVER_NAME: Nombre del servidor.
3. GATEWAY_INTERFACE: Nombre y versión de la interfície de comunicación entre servidor y aplicaciones CGI/1.1

Última edición por Alphabravo fecha: 26/03/08 a las 22:51:05.
  Responder Con Cita
Antiguo 27/03/08, 06:07:46   #4 (permalink)
$moderador{'Esteban'}
monoswim tiene un muy buen nivel de karmamonoswim tiene un muy buen nivel de karma
 
Registrado: nov 2002
Ubicación: Buenos Aires - Argentina
Mensajes: 7.119
Contactar con monoswim a través de MSN
monoswim is offline  
Re: aplicacion CGI

Hola, antes que nada olvidate de los .exe, simplemente abris un archivo de texto que se llame holamundo.cgi o holamundo.pl y le colocás esto

Código:
#!c:/perl/bin/perl.exe

use CGI 'standard';
my $cgi = new CGI;
my %in = $cgi->Vars;

print "Content-type: text/html \n\n";
print "Hola: $in{'nombre'}";
exit;
Y lo guardas en tu carpeta CGI-BIN de tu servidor y lo llamas desde tu navegador como

http://localhost/cgi-bin/holamundo.cgi?nombre=Esteban

Te aparecerá "Hola Esteban"

Se entiende ? en perl tienes un montón de módulos que hacen el trabajo sucio por vos, así es más que fácil programar, te recomiendo la sección de tutoriales de www.perlenespanol.com

Saludos
__________________
MonoSwim

Antes era fanfarrón y canchero, ahora soy perfecto !!!!!!!
  Responder Con Cita
Antiguo 27/03/08, 12:41:26   #5 (permalink)
Alphabravo ha deshabilitado el Karma
 
Registrado: ene 2005
Mensajes: 156
Alphabravo is offline  
Re: aplicacion CGI

hola oye y por ejemplo si deseo crear un cgi que tenga codigo sql por ejemplo que los parametros que reciva usuario y contraseña este los busque en la base de datos y si esta imprima algo y si no esta diga que no tiene acceso
  Responder Con Cita
Antiguo 27/03/08, 15:26:53   #6 (permalink)
$moderador{'Esteban'}
monoswim tiene un muy buen nivel de karmamonoswim tiene un muy buen nivel de karma
 
Registrado: nov 2002
Ubicación: Buenos Aires - Argentina
Mensajes: 7.119
Contactar con monoswim a través de MSN
monoswim is offline  
Re: aplicacion CGI

my $sth = $dbh->prepare("SELECT nombre,apellido,edad FROM mitabla WHERE nic = ?");
$sth->execute($in{'nic'});

En serio, leete algunos tutoriales, te servirán mucho...

Saludos
__________________
MonoSwim

Antes era fanfarrón y canchero, ahora soy perfecto !!!!!!!
  Responder Con Cita
Antiguo 29/03/08, 04:18:30   #7 (permalink)
forosdelwebdr ha deshabilitado el Karma
 
Registrado: ene 2008
Mensajes: 19
forosdelwebdr is offline  
Re: aplicacion CGI

Que turro q sos Esteban, tantos años en Perl y todavía con errores maestro!!!!, jajajajja, a ver:

Cita:
Originalmente publicado por monoswim Ver Mensaje
Acá vemos más que nada el lenguaje PERL
Que será ese lenguage uno nuevo? hay un lenguaje que se llama Perl y cuando nos referimos a su interprete se dice perl, otro no hay .

Cita:
Originalmente publicado por monoswim Ver Mensaje
#!c:/perl/bin/perl.exe
Te aporto un consejo, en Windows, si lo tenes a perl en el path, el sheband solo debe indicarlo.

#!perl

Así de cortito, fué un poco de offtopic pero a un maestro como usted era necesario pasar a saludarlo amigo...

Viva mdq!! y algún día voy a conocer esos pagos!!!

Saludos.
  Responder Con Cita
Antiguo 29/03/08, 04:31:41   #8 (permalink)
forosdelwebdr ha deshabilitado el Karma
 
Registrado: ene 2008
Mensajes: 19
forosdelwebdr is offline  
Re: aplicacion CGI

Agrego un posdata, al maestro de la pregunta, si estás trabajando en C o C# y queres mantenerte (vás a tener problema con la portabilidad), lo que debes indicar es una salida simplemente y ya tenes un CGI en C, practiquemos:

Código:
#include <stdio.h>

int main(int argc, char *argv[]) {
    printf("Content-Type: text/html\n\n");
    printf("<h1>%s</h1>", "hola Carola");
    return 0;
}
Un ejemplo más funcional:

Código:
#include <sys/time.h>
#include <stdio.h>
#include <stdlib.h>

#define MICRO_IN_SEC 1000000.00

double microtime(void);

int main(int argc, char *argv[]) {
    char string[12] = "Hola carola\0";
    time_t start, end;
    start=microtime();
    printf("Content-Type: text/html\n\n");
    printf("<h1>%s</h1>", "hola Carola");
    FILE *fp;
    fp=fopen("./sitio.c","r");
    char content[500];
     if (fp != NULL){
     char tmp;
        while (!feof(fp)){
              tmp=fgetc(fp);
              strcat(content, &tmp);
        }
        fclose(fp);
     } else {
       strcat(content, "<span style=\"color:red\">Error no puedo abrir el archivo</span>");
     }
     free(fp);
     printf("Este es el c&oacute;digo fuente de este sitio: <pre>%s</pre>", content);
    end=microtime();
    printf("Esta p&aacute;gina tardo en ejecutarse %f, %s", difftime(end, start), string);
    return 0;
}
double microtime(void) {
	return((double)(clock() / CLOCKS_PER_SEC));
}
Todavía no va a funcionar al menos en Apache cuando cuando lo compiles renombralo a cgi y listo, despúes buscas cuando sepas más como agregar tipos mimes.

Saludos
  Responder Con Cita
Respuesta


Califica este Tema - aplicacion CGI.

Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado Califica este Tema
Califica este Tema:

Reglas del foro
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está activado
Las caritas están activado
Código [IMG] está activado
Código HTML está desactivado


Todas las horas son GMT -6. La hora es 13:11:48.

Message Board Statistics

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95