El Lenguaje C en CGI - PowerPoint PPT Presentation

About This Presentation
Title:

El Lenguaje C en CGI

Description:

El Lenguaje C en CGI. El ANSI C, uno de los lenguajes de programaci n m s ... Algunos c digos ASCII equivalentes. Capturando los datos ... – PowerPoint PPT presentation

Number of Views:119
Avg rating:3.0/5.0
Slides: 24
Provided by: Clau299
Category:

less

Transcript and Presenter's Notes

Title: El Lenguaje C en CGI


1
El Lenguaje C en CGI
  • El ANSI C, uno de los lenguajes de
    programación más conocidos, utiliza la función
    getenv(),definida en el archivo de cabecera
    stdlib.h, para recoger una variable de entorno.
    El prototipo de la función es
  • char getenv(char nombre_variable)
  • La función getenv() recibe el nombre de una
    variable de entorno, y devuelve una cadena (char
    ) correspondiente al valor almacenado en dicha
    variable.
  • Ilustremos esta función almacenando en la
    variable nombre_navegador el contenido de la
    variable de entorno HTTP_USER_AGENT.

2
El lenguaje C en CGI II
  • void main(void)
  • char nombre_navegador
  • nombre_navegadorgetenv(HTTP_USER_AGENT)
  • .....
  • ....
  • Las líneas punteadas sugieren que en lo que
    respecta del programa se debe utilizar la
    variable nombre_navegador.

3
El lenguaje PERL en CGI
  • Una alternativa al uso del ANSI C, es el
    lenguaje PERL este lenguaje es ideal para la
    creación de aplicaciones CGI debido a su poderoso
    manejo de cadenas, y a que tiene todos los
    elementos propios de un lenguaje estándar de
    programación.
  • En PERL se define una matriz (ENV) en la que
    se almacenan todas las variables de entorno. La
    instrucción que permite capturar el contenido de
    entorno HTTP_USER_AGENT es la siguiente
  • ENVHTTP_USER_AGENT

4
Codificación de los Datos
  • Recordemos que el método POST permite enviar
    los datos de los campos del formulario como parte
    del mensaje, utilizando el canal estándar de
    entrada. El método GET por el contrario, almacena
    la respuesta dentro de la variable de entorno
    QUERY_STRING.
  • Sin importar si se utiliza el método POST o
    el método GET, los datos del formulario se
    codifican de acuerdo a un estándar denominado
    URLencoding. En este sistema de codificación se
    siguen las siguientes reglas
  • El nombre de la variable y su valor asociado se
    separan mediante el signo ().
  • Las parejas de datos están separadas mediante el
    símbolo de ampersand ().

5
Codificación de los Datos
  • Los espacios en blanco se sustituyen por el
    símbolo suma ().
  • Los restantes caracteres alfanuméricos no
    sufren ninguna variación. Sin embargo, los
    caracteres no alfanuméricos, como el tabulador,
    los símbolos de puntuación, etc. Se codifican
    así
  • se sustituye el carácter alfanumerico por el
    simbolo del tanto porciento ()., y a
    continuación se agrega el código ASCII
    equivalente en base hexadecimal. Un ejemplo
    simple
  • apellidoAntonioPE9rezempresaACCIONLTDA
    correoempid_at_diansa.com.co

6
Codificación de los Datos
  • Observaciones sobre el ejemplo.
  • En primer lugar el formulario contiene tres
    elementos que han sido rellenados por el usuario
    del navegador apellidos, empresa y correo. Estos
    elementos pueden corresponder a cuadros de texto
    para recibir los datos digitados en la página del
    navegador.
  • Al frente de cada variable (campo), separado
    con el símbolo igual (), se encuentra el
    correspondiente contenido. Como puede observarse
    cada uno de estos datos requiere la utilización
    de símbolos especiales.
  • Las variables, incluyendo su contenido,
    están separadas mediante el símbolo .

7
Algunos códigos ASCII equivalentes
8
Capturando los datos
  • La primera acción del guión CGI es capturar
    los datos enviados por el navegador. Si el método
    utilizado para la captura de los datos es GET,
    entonces los datos se encuentran en QUERY_STRING
  • includeltstdio.hgt
  • includeltstdlib..hgt
  • includeltmalloc..hgt
  • void main(void)
  • char cadena // guarda la variable de entorno
  • cadena(char)malloc(sizeof(char)1000)
    //reserva
  • cadenagetenv(QUERY_STRING)

9
Programas utilizados para procesar formularios
  • Para empezar, vamos a escribir un programa
    que recoja los datos directamente del canal
    estándar de entrada, asumiendo que se ha
    utilizado el método POST. Los datos son
    almacenados en la variable info, con capacidad de
    hasta 1000 caracteres

10
Programa 1
  • includeltstdio.hgt
  • includeltstdio.hgt
  • void main(void)
  • int i
  • char info
  • const char cadena
  • double longitud
  • info(char)malloc(sizeof(char)1000)
  • cadenagetenv(CONTENT_LENGTH)
  • longitudstrtod(cadena,NULL)
  • for(i0iltlongitudi)
  • fscanf(stdin,c,infoi)
  • infolongitud\0

11
PERL

Perl es un lenguaje interpretado. Esta
característica implica que su velocidad es menor
que la que brinda un lenguaje compilado, pero se
compensa esta ventaja al ofrecer algunas
características entre las que se incluye un hábil
manejo de información de tipo textual, y
facilidades para la construcción de sistemas
complejos como servidores FTP o servidores de
correo electrónico.
12
PERL
  • Perl fue desarrollado por Larry Wall para el
    sistema operativo UNIX. El nombre Perl es un
    acrónimo de Lenguaje Práctico para Extracción y
    Reportes (Practical Extractionand Report
    languaje), y como su nombre sugiere, su principal
    campo de actividad se encuentra en el
    procesamiento de texto y en el tratamiento de
    formularios contenidos en las páginas Web.

13
PERL
  • Algunas de las ventajas del uso del lenguaje PERL
    son las siguientes
  • Construcción de pequeños programas que pueden ser
    usados como filtros para obtener información de
    ficheros, realizar búsquedas, ...
  • Se puede utilizar en varios entornos, como puede
    ser Windows 95, OS/2, ..., sin realizar cambios
    de código, siendo únicamente necesario la
    introducción del interprete PERL correspondiente
    a cada sistema operativo.
  • El mantenimiento y depuración de un programa en
    PERL es mucho más sencillo que la de cualquier
    programa en C.

14
Ejecuciones de guiones PERL
  • Comenzaremos presentando un instrucción en
    lenguaje Perl
  • print hola, mundo
  • Para el desarrollo completo de un guion CGI
    es necesario crear un archivo que contenga el
    programa con una extensión válida como por
    ejemplo hola.pl
  • El programa se ejecuta con la orden Perl
    hola.pl

15
Ejecuciones de guiones PERL
  • Si utilizamos UNIX o LINUX, podemos ejecutar el
    programa de la siguiente manera
  • perl hola.pl
  • Otra forma de ejecutar el programa añadir en
    la primera línea de hola lo siguiente
  •  ! /usr/bin/perl
  • Los caracteres ! sirven para denotar que
    lo que viene a continuación hace referencia a un
    interprete de comandos.
  • y ejecutamos el programa de la siguiente
    manera
  • hola.pl

16
Ejecuciones de guiones PERL
  • Naturalmente las ordenes van a depender del
    sistema operativo. Si este es UNIX o LINUX
    debemos darle permiso de ejecución. Esto se
    realiza de la siguiente manera
  • chmod ux hola.pl
  • El Perl scripts en UNIX quedaría
  • ! /usr/bin/perl
  • print "HOLA MUNDO\n"

17
Elementos del Lenguaje
  • símbolos
  • Las líneas de comentarios comienzan con el
    símbolo .
  • Las instrucciones terminan con el símbolo
  • La primera línea de un programa escrito en Perl
    se debe iniciar con un comentario especial que
    identifica la ubicación del interprete Perl por
    ejemplo
  • !/usr/local/bin/perl

18
Tipos de datos en Perl
  • En Perl no se requiere que las variables
    sean declaradas antes de usarlas, e incluso el
    tipo de las mismas puede cambiar a lo largo de la
    ejecución del guión que las contiene. En general,
    vamos a emplear tres tipos básicos escalares,
    arreglos y arreglos asociativos.
  • Escalares
  • Estos datos se corresponden con caracteres,
    números y cadenas. Se reconocen porque comienzan
    con el carácter (por ejemplo, código).
  • Los datos de tipo escalar son lo más
    utilizados en la programación Perl.
  • Para almacenar números
  • numeros 10 esta variable contiene el
    valor numérico 10
  • Para almacenar caracteres
  • palabra 'perros'

19
Tipos de datos en Perl
  • Escalares
  • Para almacenar números
  • numeros 10 esta variable contiene el
    valor numérico 10
  • Para almacenar caracteres
  • apellido gutierrez'
  • Para almacenar caracteres especiales, se
    utiliza
  •  apellido " gutierrez \n"
  • También es posible almacenar varias
    variables al mismo tiempo.
  • (nombre,apellido1,apellido2)
    (claudio,gutierrez",soto")

20
Tipos de datos en Perl
  • Arreglos
  • Este tipo corresponde a lista de
    caracteres, listas de números o lista de cadenas.
    En particular Perl admite que las listas
    contengan mezclas de caracteres, números y
    cadenas.
  • Un arreglo se reconoce porque el
    identificador que lo maneja empieza con el
    símbolo _at_ (por ejemplo, _at_salarios).
  • Los elementos individuales son
    referenciados mediante un subíndice, como por
    ejemplo _at_salariosn.
  • Los arreglos empiezan con el componente
    cero (por ejemplo, _at_salarios0).

21
Tipos de datos en Perl
  • Arreglos
  • También es posible definir los arreglos de
    la siguiente manera
  • _at_Alumnos (Luis",Jacqueline",Claudia )
  • Es posible obtener el numero de elementos que
    conforman el arreglo de los escalares. Esto es
    posible utilizando los símbolos . Sin embargo
    este nos devuelve el numero de elementos menos 1.
  • numero_alumnos Alumnos1

22
Tipos de datos en Perl
  • Arreglos
  • También podemos acceder a varios elementos
    de un array de la forma _at_nom_variableindice1,...,
    indicen, por ejemplo
  • print _at_Alumnos0,1
  • imprimirá el primer y segundo elemento del
    array _at_Alumnos.
  • Otra forma de acceder a los elementos de
    un array es usando el operador rango .. , si
    quisiéramos imprimir todos los valores desde un
    índice i hasta un indice j deberíamos utilizar el
    siguiente formato _at_nom_variablei..j, por
    ejemplo

  • print  _at_Alumnos0..2

23
Tipos de datos en Perl
  • Arreglos Asociativos
  • Los arreglos asociativos se indexan
    mediante cadenas. Cada uno de los elementos del
    arreglo asociativo maneja la combinación
    elemento/valor, por ejemplo,
  • mes(enero,31, febrero,28)
  • Los arreglos asociativos se reconocen porque
    comienzan con el símbolo ( por ejemplo, mes).
  • Se tiene acceso a los elementos individuales
    utilizando cadenas especificas encerradas entre
    llaves y con el uso del símbolo _at_
Write a Comment
User Comments (0)
About PowerShow.com