Anterior Home Page Sumário E-Mail Próximo

  • Utilizando a OPUSWEB
  • As facilidades de programação de aplicativos CGI e ISAPI foram implementadas, na OPUS e na OPUSWin, através de comandos e funções.

  • Anatomia de um programa OPUSWEB
  • A estrutura geral de um programa OPUS/OPUSWin para gerar programas CGI ou DLLs ISAPI é a seguinte:

    Gerar programa CGI "demo"

    "Gerar DLL ISAPI "demo.dll"

    $web

    prog demo

    ...

    var=html_var("...")

    ...

    html_read( )

    html_get("...",varx)

    ...

    html_init( )

    html_head ()

    html_put ("<html><head><title><body>")

    ....

    html_put(‘<FORM method="POST" ’)

    html_put(‘action="/cgi-bin/demo">’)

    ...

    BeginHtml

    <INPUT type="text" name="xxx">

    ...

    </body></html>

    EndHtml

    html_write("")

    return

    $dll=demo.dll (ou $dll=demo.isa)

    proc HttpExtensionProc (ou proc http)

    ...

    var=html_var("...")

    ...

    html_read( )

    html_get("...",varx)

    ....

    html_init( )

    html_head ()

    html_put ("<html><head><title><body>")

    ...

    html_put(‘<FORM method="POST" ’)

    html_put(‘action="/scripts/demo.dll">’)

    ...

    BeginHtml

    <INPUT type="text" name="xxx">

    ...

    </body></html>

    EndHtml

    html_write("")

    return

  • Comandos e funções OPUSWEB
  • Os comandos e funções utilizados para construir programas CGI e DLLs ISAPI são os seguintes:

    Comando

    ou função

    Descrição do comando / função

    Sintaxe

    Obs

    Html_init

    Aloca e inicializa uma área, em memória, a ser utilizada na composição do documento HTML que será enviado ao Browser (Cliente). Esta área é alocada de forma eficiente e dinâmica, sendo "esticada" ou "encolhida" conforme a necessidade, ou seja, conforme a quantidade e tamanho dos "html_put".

    html_init( )

    Html_put

    Armazena a cadeia especificada em <varc> numa área temporária, em memória, destinada a construir o documento HTML. Esta área é alocada e inicializada pelo comando html_init( ), sendo gerenciada, de forma eficiente, conforme as necessidades.

    html_put (<varc>)

    Html_write

    Solicita ao servidor para enviar ao cliente (Browser) o documento construído através de sucessivos comandos html_put. Usualmente, o argumento passado é uma cadeia vazia, Porém, pode ser informado, como argumento, o nome de um arquivo, em cujo caso, todos os comandos HTML, especificados no comando html_put, serão gravados nele. Esta opção é útil para debug ou para uso posterior do documento HTML gerado.

    html_write ("")

    ou html_write ("<nome>")

    Html_read

    Extrai e formata, em áreas temporárias da OPUS ou em vetores definidos dentro do programa, todos os campos de um FORM recebidos no servidor Web através do método POST.

    Quando este comando for usado sem parâmetros, os campos são armazenados em pares, conforme seu nome e seu valor, para serem disponibilizados, um a um, utilizando sucessivos comandos html_get.

    Quando este comando for usado com os parâmetros <v1> e <v2>, os nomes dos campos são armazenados no vetor <v1> e os valores correspondentes são armazenados no vetor <v2>.

    html_read ( ) ou

    html_read(<v1>,<v2>)

    Html_get

    Este comando transfere para áreas do programa do usuário o conteúdo de cada um dos campos, previamente extraídos e armazenados pelo comando html_read. Cada comando html_get obtém apenas um campo, aquele identificado em <nome>, sendo que <nome> é o identificador atribuído a cada campo, botão ou figura, na opção INPUT quando da definição do FORM e <varc> é uma variável cadeia onde será colocado o conteúdo do campo identificado por <nome>. Se este campo não existir na área de memória obtida pelo comando html_read (estiver "empty"), ou seja, se não tiver sido digitado pelo usuário (no FORM HTML), o conteúdo de <varc> será uma cadeia vazia.

    html_get (<nome>,<varc>)

    Html_getmultiple

    Transfere para um vetor de tipo cadeia as seleções múltiplas efetuadas pelo usuário sobre uma lista ComboBox, construída por comandos HTML do tipo:

    <SELECT MULTIPLE> <OPTION … > </SELECT>

    O vetor <vetc> é definido dentro do programa OPUSWeb, conforme as características da ComboBox definida dentro do Formulário.

    Os valores correspondentes às várias escolhas, dentro da lista ComboBox , são armazenados no vetor <vetc> de maneira seqüencial.

    html_getmultiple (<nome>,<vetc>)

    Html_var

    Obtém o valor de uma determinada variável de ambiente, identificada por <nome>, colocando-o na variável cadeia varx.

    varx=html_var (<nome>)

    Html_head

    Insere, na resposta do servidor, o cabeçalho especificado em <varc>. Geralmente, o comando html_head serve para especificar o item "Content_Type", tanto no caso de DLLs ISAPI como programas CGI.

    Caso não seja especificado o parâmetro <varc> a OPUS constrói o cabeçalho "Content-type" no formato adequado, dependendo da plataforma (Unix ou Windows) em que o programa OPUSWEB está sendo compilado.

    html_head (<varc>)

    ou html_head ()

    ou html_head ("")

    Html_exec

    Solicita ao servidor o redirecionamento do pedido para a URL especificada pelo operando <varc>. Em aplicações CGI, usamos o comando Location para redirecionar uma URL.

    html_exec (<varc>)

    (01)

    Html_log

    Solicita ao servidor para gravar a cadeia <cadlog> no log do servidor Web, para ser utilizado de variadas maneiras, por exemplo, para debug e estatísticas.

    html_log (<cadlog>)

    (01)

    BeginHtml

    Indica que, a seguir, se inicia a codificação de comandos HTML dentro de um programa OPUS ou OPUSWin.

    Os blocos de comandos são fechados com o comando EndHtml.

    Dentro dos blocos BeginHtml até EndHtml são permitidos códigos HTML, CSS, Dynamic HTML, Java Script, VBScript, Jscript, ASP, PHP e outros, conforme a conveniência do aplicativo.

    Entre um BeginHtml e um EndHtml podem ser especificadas "tags" a serem interpretadas pela OPUSWEB, conforme os seguintes critérios:

    • código que for colocado entre os delimitadores #+# será processado pela OPUS e substituído pelo seu resultado, colocado entre aspas (")
    • código que for colocado entre os delimitadores #+# será processado pela OPUS e substituído pelo seu resultado
    • O bloco codificado entre esses delimitadores pode ser uma variável cadeia ou uma chamada de função cadeia

    BeginHtml

    EndHtml

    Serve para fechar o bloco de comandos HTML aberto pelo comando BeginHtml, previamente declarado num programa OPUSWeb (OPUS ou OPUSWin))

    EndHtml

    Html_msg

    Serve para emitir uma mensagem na tela do Browser. A mensagem está contida no vetor cadeia <vetc>, passado como parâmetro e será mostrada em tantas linhas quantos sejam os elementos do vetor <vetc>.

    Html_msg(<vetc>

    Html_vpost

    Serve para emitir uma mensagem na tela do Browser mostrando a lista dos campos de um FORM, que foram submetidos através do método POST.

    Esta função é útil na depuração de um programa OPUSWeb.

    Html_vpost()

    Html_vquery

    Serve para emitir uma mensagem na tela do Browser mostrando os dados contidos na variável QUERY_STRING (submetidos, por default, através do método GET).

    Esta função é útil na depuração de um programa OPUSWeb.

    Html_vquery()

    Html_venv

    Serve para emitir uma mensagem na tela do Browser mostrando uma lista de todas as variáveis de ambiente, também conhecidas como variáveis do servidor.

    Esta função é útil na depuração de um programa OPUSWeb.

    Html_venv()

    Observações:

    (01)à Os comandos Html_exec e Html_log são usados apenas em programas ISAPI.

    1. Exemplo OPUSWEB
    2. html_init( )

      html_head()

      BeginHtml

      <html><head><title>

      Teste ISAPI...

      </title></head><body>

      <h2>Demo ISAPI...</h2>

      <hr size=6 noshade>

      EndHtml

      html_write("")

    3. Lógica de um programa OPUSWeb

    Os componentes CGI e ISAPI constituem extensões do Servidor WEB e, como tais:

    Quando um programa (ou DLL) OPUSWeb recebe o controle, executa os passos informados na tabela a seguir:

    Tarefa a executar

    Função OPUSWeb

    Testar variáveis de ambiente, por exemplo, Content_length e Query_string.

    Html_var()

    Obter os dados do FORM, informados no Browser.

    Html_read() e Html_get()

    Processar os dados obtidos

    Programa OPUS OPUSWin

    Construir documento HTML de resposta

    Html_put(), BeginHtml e EndHtml

    Retornar ao Servidor Web entregando-lhe o documento HTML a ser enviado ao Browser

    Html_write()

    Return

      Anterior Home Page Sumário E-Mail Próximo