oribeiro Posted December 2, 2014 Report Share Posted December 2, 2014 Pessoal, Hoje me deparei com um site que utiliza um executável rodando no navegador. É possível fazer isso com o xHarbour? Vejam o link: http://www1.dataprev.gov.br/conweb/sp2cgi.exe Quote Link to comment Share on other sites More sharing options...
Rogerio Figueira Posted December 2, 2014 Report Share Posted December 2, 2014 Oscar, Programa cgi pearl, pode ter extensão .exe ou .cgi ou .pl Nada a ver com os nossos .exe para windows. Quote Link to comment Share on other sites More sharing options...
aferra Posted December 2, 2014 Report Share Posted December 2, 2014 no ultimo "Congresso Fivewin", que eu fui, o Gilmer apresentou um programa que fazia isso...não me lembro o nome, se o "homi" puder ajudar....rsrsrsrsrsrs Quote Link to comment Share on other sites More sharing options...
CIACPD Posted December 2, 2014 Report Share Posted December 2, 2014 Oribeiro, a fiveweb do Lailton e a wxweb se não me engano é isto do Vailton faz exatamente isto. a fiveweb que não deve estar mais a venda eu uso a 3 anos e ainda funciona. Mas como dizem existe ferramentas melhores para fazer isto. a vantagem é usar o padrão xbase. Daniel Segura Quote Link to comment Share on other sites More sharing options...
CIACPD Posted December 2, 2014 Report Share Posted December 2, 2014 Abaixo um bat exemplo de compilação, set path=c:\bcc582\bin;c:\cgi_web\harbour\bin;%path% rem excluindo os arquivos compilados del c:\cgi_web\FiveWeb\samples\login.exe rem no site del C:\inetpub\wwwroot\ciaweb\login.exe rem compilando os arquivos e publicando o executável hbmk2 win.hbm c:\cgi_web\FiveWeb\samples\login.prg -oC:\inetpub\wwwroot\ciaweb\login.exe > clip.log rem abrindo o executável no navegador -> pode acessar pelo celular/tablet... c:\progra~1\Mozill~1\firefox.exe http://localhost/ciaweb/login.exe pause Quote Link to comment Share on other sites More sharing options...
rochinha Posted December 2, 2014 Report Share Posted December 2, 2014 Amiguinhos, Em primeiro lugar é necessário que o servidor web possua a característica de execução de CGI executáveis. Por padrão os CGIs executados nos servidores web que conhecemos só podem ser ASP, PHP, Perl, ColdFusion e mais uns dois ou três, mas nenhum deles são executáveis. Os executáveis feitos com Fivewin, ficam muito grandes e consomem demais o servidor, pois eles não ficam ativos e sim são executados, processados e terminados, pois o que vemos no browser é somente a resposta destes CGIs. Os servidores Apache permitem de forma linda esta característica e você deverá colocar todo o seu website disponivel para acesso pela web, já que nenhum provedor irá permitir este tipo de ação. Exemplo de um CGI: #include "FiveWin.ch" #include "common.ch" #include "inkey.ch" FUNCTION main(cIniFile) ************************************************ * Required in every FiveWeb CGI... ************************************************ CgiInit() ************************************************ * Create a cgi object based on the passed file name... ************************************************ IF cIniFile != Nil nHOut := cgiForm("mycgi.ini") && create a cgi object else return ENDIF ************************************************ * Find the proper record.. ************************************************ use customer.dbf alias Customers NEW select Customers locate for upper(Customers->Name) = upper(aFieldArray[1, 2]) putBeginHTML() putTitle("FiveWeb Field Update") putBeginBody() IF eof() ************************************************ * Build a response error file... ************************************************ //putHeader(Upper(trim(aFieldArray[1, 2])),1) putLine() putParagraph() putItalics("<B>Unable to find the information you requested!</B>") putParagraph() else ************************************************ * Build a response success file... ************************************************ putItalics("This record is ready to be updated:") putLine() putHeader(trim(Customers->name), 1) putBeginPreFormat() putBeginForm("POST", "rocha.htm") putEntryField(" Name:", "Name", trim(Customers->name), 32) PutLineBreak() putEntryField(" Address:", "Street", trim(Customers->street), 32) PutLineBreak() putEntryField(" City:", "City", trim(Customers->city), 32) PutLineBreak() putEntryField(" State:", "State_Prov", trim(Customers->state_prov), 2) PutLineBreak() putEntryField(" Zip Code:", "Zip_Postal", trim(Customers->zip_postal), 16) putEndPreFormat() putParagraph() putSubmitButton("Submit", "Submit this change") putResetButton("Clear", "Clear this form") putEndForm() ENDIF putLineBreak() put("For more information, contact: ") putAddrLink(wtEMailName, wtEMailAddress) putLineBreak() putLastUpdate() putEndBody() putEndHTML() ************************************************ * Close the cgi session... ************************************************ closeCGISession() && close the cgi session (optional - closed automaticaly unless trace is on) RETURN(Void) Perceba que neste tipo de código você programa o percurso do script, gera o executável e transfere ele para a pasta habilitada a correr CGIs pelo servidor web. O executável irá desenhar todo o código que será apresentado no browse e a interação deverá ser feita por FORM e seus eventos. #INCLUDE "FiveWin.ch" FUNCTION main(cIniFile) local nStartTime := seconds() local nStopTime := 0 CgiInit() ESTRU_DBF := {} AADD( ESTRU_DBF, { ALLTRIM("OBJETIVO "), "C", 30, 0 } ) AADD( ESTRU_DBF, { ALLTRIM("NOME "), "C", 45, 0 } ) AADD( ESTRU_DBF, { ALLTRIM("IDADE "), "N", 2, 0 } ) AADD( ESTRU_DBF, { ALLTRIM("NACIONALID"), "C", 20, 0 } ) AADD( ESTRU_DBF, { ALLTRIM("ESTADOCIVI"), "C", 20, 0 } ) AADD( ESTRU_DBF, { ALLTRIM("ENDERECO "), "C", 45, 0 } ) AADD( ESTRU_DBF, { ALLTRIM("BAIRRO "), "C", 25, 0 } ) AADD( ESTRU_DBF, { ALLTRIM("CEP "), "C", 9, 0 } ) AADD( ESTRU_DBF, { ALLTRIM("TELEFONE "), "C", 14, 0 } ) AADD( ESTRU_DBF, { ALLTRIM("FAX "), "C", 14, 0 } ) AADD( ESTRU_DBF, { ALLTRIM("GRAU "), "C", 20, 0 } ) AADD( ESTRU_DBF, { ALLTRIM("CURSOS "), "M", 10, 0 } ) AADD( ESTRU_DBF, { ALLTRIM("HISTORICO "), "M", 10, 0 } ) AADD( ESTRU_DBF, { ALLTRIM("QUALIDADES"), "M", 10, 0 } ) IF ! FILE("curiculo.DBF") DBCREATE( "curiculo", ESTRU_DBF ) ENDIF IF cIniFile != Nil nHOut := cgiForm(cIniFile) else return Void ENDIF set date brit use curiculo alias curiculo NEW SHARED select curiculo m->operacao := upper(alltrim(CGIField("ACAO"))) m->registro := val(CGIField("REGISTRO")) m->erro := .t. if m->operacao = 'NOVO' EditFile := memoread( "curiculo.HTM" ) m->tam_memo := MLCOUNT( EditFile, 132 ) EditFile := strtran(EditFile,"<!-- BLOCO DE MANUTENCAO -->",; '<input type="hidden" name="ACAO" value="INCLUSAO">') for i = 1 to m->tam_memo put(ALLTRIM(memoline( EditFile, 132 ,i))+CHR(13)+CHR(10)) next closeCGISession() CLOSE DATA RETURN(Void) elseif m->operacao = 'INCLUSAO' append blank IF Rlock() curiculo_SV() COMMIT m->erro := .f. ENDIF elseif m->operacao = 'SALVAR' go m->registro // val(CGIField("RECNO()")) IF Rlock() curiculo_SV() COMMIT m->erro := .f. ENDIF elseif m->operacao = 'EXCLUSAO' go m->registro // val(CGIField("RECNO()")) IF Rlock() DELETE COMMIT m->erro := .f. ENDIF elseif m->operacao = 'ALTERAR' go m->registro // val(CGIField("RECNO()")) EditFile := memoread( "curiculo.HTM" ) m->tam_memo := MLCOUNT( EditFile, 132 ) EditFile := strtran(EditFile,"<!-- BLOCO DE MANUTENCAO -->",; '<input type="hidden" name="ACAO" value="SALVAR">'+; '<input type="hidden" name="REGISTRO" value="'+STRZERO(m->registro,6)+'">') for i = 1 to len(ESTRU_DBF) EditFile := strtran(EditFile,'text" name="'+ESTRU_DBF[i,1]+'" size="',; 'text" name="'+ESTRU_DBF[i,1]+'" value="'+ALLTRIM(REQUEST(&(ESTRU_DBF[i,1])))+'"') EditFile := strtran(EditFile,'<option selected value="">'+ESTRU_DBF[i,1]+'<',; '<option selected value="'+ALLTRIM(REQUEST(&(ESTRU_DBF[i,1])))+'">'+ALLTRIM(REQUEST(&(ESTRU_DBF[i,1])))+'<') EditFile := strtran(EditFile,'text" name="'+ESTRU_DBF[i,1]+'"></textarea>',; 'text" name="'+ESTRU_DBF[i,1]+'">'+ALLTRIM(REQUEST(&(ESTRU_DBF[i,1])))+'</textarea>') next for i = 1 to m->tam_memo put(ALLTRIM(memoline( EditFile, 132 ,i))+CHR(13)+CHR(10)) next m->erro := .f. closeCGISession() CLOSE DATA RETURN(Void) elseif m->operacao = 'LISTAGEM' IF RECCO() > 0 put(ALLTRIM('<HTML>')) put(ALLTRIM('<HEAD>')) put(ALLTRIM(' <TITLE>Ok</TITLE>')) put(ALLTRIM(' <style>')) put(ALLTRIM(' A {color : Black; text-decoration : none; font-size : 11px; font-family : Arial;}')) put(ALLTRIM(' A:Hover {color : Gray; text-decoration : none;}')) put(ALLTRIM(' .indic {font-size : 10px; font-family : Arial; color:#FFFFFF}')) put(ALLTRIM(' .texto {font-size : 10px; font-family : Arial;}')) put(ALLTRIM(' </style>')) put(ALLTRIM(' <script src="include/open_esconde.js" language="JavaScript"></script>')) put(ALLTRIM(' <script src="include/indices1.js" language="Javascript"></script>')) put(ALLTRIM(' <script src="include/indices2.js" language="Javascript"></script>')) put(ALLTRIM(' <script src="include/imgswp.js" language="Javascript"></script>')) put(ALLTRIM('</HEAD>')) put(ALLTRIM('<BODY bgcolor="#FFFFFF"> ')) put(' <center> ') put(' <table cellpadding=0 cellspacing=0 border=0 width=95% valign=top bgcolor="#ffffff"> ') put(' <table border="0" cellpadding="2" cellspacing="1" width="600" bgcolor="#FFFFFF"> ') put(' <tr bgcolor="#386898" align="center"> ') put(' <td colspan="2"> ') put(' <b> ') put(' <font color="#FFFFFF" size="4" face="Arial, Helvetica, sans-serif"> ') put(' <strong>Listagem Geral:</strong> ') put(' </font> ') put(' <font color="#FFFFFF" size="1" face="Arial, Helvetica, sans-serif">Contamos com sua atenção no preenchimento do formulário abaixo.</font> ') put(' </b> ') put(' </td> ') put(' <td colspan="2"> ') put(' <a href="curiculo.DLL?ACAO=NOVO"> ') put(' <img src="imagens/novo.gif" alt="Incluir novo registro" border="0"> ') put(' </a> ') put(' ') put(' <a href="javascript:location.reload();"> ') put(' <img src="imagens/icone_refresh.gif" alt="Recarregar a pagina" border="0"> ') put(' </a> ') put(' ') put(' <a href="curiculo.exe?ACAO=PROCURAR"> ') put(' <img src="imagens/procurar.gif" alt="Procurar registros" border="0"> ') put(' </a> ') put(' </td> ') put(' </tr> ') put(' </table> ') put(' <table border="0" cellpadding="2" cellspacing="1" width="600" bgcolor="#FFFFFF"> ') put(' <tr bgcolor="#A8C8E8" align="center"> ') ************************************************* put(' <!-- ------------- INICIO DO BLOCO DE CABECALHOS -------- -->') put(' <td align=left width=30% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>Objetivo </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=45% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>Nome </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=2% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>Idade </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=20% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>Nacionalid </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=20% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>Estadocivi </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=45% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>Endereco </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=25% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>Bairro </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=9% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>Cep </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=14% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>Telefone </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=14% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>Fax </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=20% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>Grau </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=10% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>Cursos </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=10% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>Historico </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=10% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>Qualidades </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <!-- ------------- FINAL DO BLOCO DE CABECALHOS -------- -->') ************************************************* put(' <td align=left width=16 valign="top"> ') put(' <FONT FACE="Arial" size="1"><B>ST</b> </FONT> ') put(' </td> ') put(' <td align=left width=50 valign="top"> ') put(' <FONT FACE="Arial" size="1"><B>Manutencao</b> </FONT> ') put(' </td> ') put(' </tr> ') go top PU_LAR := 0 DO WHILE .NOT. eof() put(' <TR width="100%" align="center" ') IF PU_LAR = 0 PU_LAR = 1 if deleted() put(' bgcolor="RED" ') else put(' bgcolor="#E8F0FF" ') endif else PU_LAR = 0 if deleted() put(' bgcolor="RED" ') else endif endif put(' > ') ************************************************* put(' <!-- ------------- INICIO DO BLOCO DE CAMPOS ------------ -->') put(' <td align=left width=30% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>'+curiculo->OBJETIVO +' </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=45% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>'+curiculo->NOME +' </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=2% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>'+STR(curiculo->IDADE , 2, 0)+' </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=20% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>'+curiculo->NACIONALID+' </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=20% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>'+curiculo->ESTADOCIVI+' </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=45% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>'+curiculo->ENDERECO +' </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=25% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>'+curiculo->BAIRRO +' </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=9% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>'+curiculo->CEP +' </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=14% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>'+curiculo->TELEFONE +' </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=14% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>'+curiculo->FAX +' </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=20% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>'+curiculo->GRAU +' </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=10% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>'+curiculo->CURSOS +' </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=10% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>'+curiculo->HISTORICO +' </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <td align=left width=10% valign=top> ') put(' <FONT FACE="Arial" size="1"><B>'+curiculo->QUALIDADES+' </FONT><BR><FONT Color="#ff0000" FACE="" SIZE=""></FONT> ') put(' </td> ') put(' <!-- ------------- FINAL DO BLOCO DE CAMPOS ------------ -->') ************************************************* put(' <td align=left width=16 valign=top> ') //put(' <a href="imagens/'+STRZERO(RECNO(),6)+'.jpg"> ') put(' <img src="imagens/'+IIF(DELETED(),'red_mark','none')+'.gif" alt="" border="0"> ') //put(' </a> ') put(' </td> ') put(' <td align=right width=60 height=10 valign="top"> ') put(' <TABLE cellpadding=0 cellspacing=0 border=0> ') put(' <TR valign=top> ') put(' <TD valign=top> ') put(' <a href="curiculo.exe?ACAO=ALTERAR®ISTRO='+STRZERO(RECNO(),6)+'"> ') put(' <img src="imagens/edit.gif" alt="Alterar" border="0"> ') put(' </a> ') put(' ') put(' <a href="curiculo.exe?ACAO=EXCLUSAO®ISTRO='+STRZERO(RECNO(),6)+'"> ') put(' <img src="imagens/delete.gif" alt="Excluir" border="0"> ') put(' </a> ') put(' ') put(' <a href="imagens/'+STRZERO(RECNO(),6)+'.jpg"> ') put(' <img src="imagens/viewbasket.gif" alt="Foto do produto" border="0"> ') put(' </a> ') put(' </TD> ') put(' </tr> ') put(' </table> ') put(' </TD> ') put(' </TR> ') SKIP ENDDO put(ALLTRIM('</TABLE>')) put(ALLTRIM('</BODY>')) put(ALLTRIM('</HTML>')) ELSE put(ALLTRIM('<HTML>')) put(ALLTRIM('<HEAD>')) put(ALLTRIM(' <TITLE>Ok</TITLE>')) put(ALLTRIM(' <style>')) put(ALLTRIM(' A {color : Black; text-decoration : none; font-size : 11px; font-family : Arial;}')) put(ALLTRIM(' A:Hover {color : Gray; text-decoration : none;}')) put(ALLTRIM(' .indic {font-size : 10px; font-family : Arial; color:#FFFFFF}')) put(ALLTRIM(' .texto {font-size : 10px; font-family : Arial;}')) put(ALLTRIM(' </style>')) put(ALLTRIM(' <script src="include/open_esconde.js" language="JavaScript"></script>')) put(ALLTRIM(' <script src="include/indices1.js" language="Javascript"></script>')) put(ALLTRIM(' <script src="include/indices2.js" language="Javascript"></script>')) put(ALLTRIM(' <script src="include/imgswp.js" language="Javascript"></script>')) put(ALLTRIM('</HEAD>')) put(ALLTRIM('<BODY bgcolor="#FFFFFF"> ')) put(' <center> ') put(' <table cellpadding=0 cellspacing=0 border=0 width=95% valign=top bgcolor="#ffffff"> ') put(' <table border="0" cellpadding="2" cellspacing="1" width="600" bgcolor="#FFFFFF"> ') put(' <tr bgcolor="#330066" align="center"> ') put(' <td colspan="2"> ') put(' <b> ') put(' <font color="#FFFFFF" size="4" face="Arial, Helvetica, sans-serif"> ') put(' <strong>Listagem Geral:</strong> ') put(' </font> ') put(' <font color="#FFFFFF" size="1" face="Arial, Helvetica, sans-serif">Contamos com sua atenção no preenchimento do formulário abaixo.</font> ') put(' </b> ') put(' </td> ') put(' <td colspan="2"> ') put(' <a href="curiculo.exe?ACAO=NOVO"> ') put(' <img src="imagens/novo.gif" alt="Incluir novo registro" border="0"> ') put(' </a> ') put(' ') put(' <a href="curiculo.exe?ACAO=PROCURAR"> ') put(' <img src="imagens/procurar.gif" alt="Procurar registros" border="0"> ') put(' </a> ') put(' </td> ') put(' </tr> ') put(' </table> ') put(' <table border="0" cellpadding="2" cellspacing="1" width="600" bgcolor="#FFFFFF"> ') put(' <tr> ') put(' <td> ') put(ALLTRIM('<BR><BR><BR><BR><BR><BR><BR><BR>')) put(ALLTRIM('<P align="center">')) put(ALLTRIM('<FONT style="font: 12pt Arial; ')) put(ALLTRIM(' color:#000000;')) put(ALLTRIM(' font-weight:bold">Arquivo vazio, sem registros cadastrados!</FONT>')) put(ALLTRIM(' <br>')) put(ALLTRIM(' <br>')) put(ALLTRIM(' <br>')) put(ALLTRIM('</P>')) put(' </td> ') put(' </tr> ') put(' </table> ') put(' <center> ') put(ALLTRIM('</BODY>')) put(ALLTRIM('</HTML>')) m->erro := .f. ENDIF closeCGISession() CLOSE DATA RETURN(Void) endif putTitle("Confirmacao de Operacao") put(ALLTRIM("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 3.2 Final//EN'>")) put(ALLTRIM("<HTML>")) put(ALLTRIM("<HEAD>")) put(ALLTRIM(" <TITLE>Operacao realizada</TITLE>")) put(ALLTRIM("</HEAD>")) put(ALLTRIM("<BODY bgcolor=#FFFFFF")) if m->erro put(ALLTRIM(" onLoad=aux=setTimeout('javascript:history.back(1);',3000)")) else put(ALLTRIM(" onLoad=aux=setTimeout('javascript:history.back(1);javascript:history.back(1);',3000)")) endif put(ALLTRIM(" background=images/fundo_body.gif topMargin=0 MARGINHEIGHT=0 MARGINWIDTH=0>")) put(ALLTRIM("<BR><BR><BR><BR><BR><BR><BR><BR>")) put(ALLTRIM("<P align=center>")) put(ALLTRIM(" <FONT style='font: 12pt Arial; ")) put(ALLTRIM(" color:#000000;")) if m->erro put(ALLTRIM(" font-weight:bold'>A operacao nao foi concluida!</FONT>")) else put(ALLTRIM(" font-weight:bold'>A operacao foi realizada com sucesso!</FONT>")) endif put(ALLTRIM("</P>")) put(ALLTRIM("</BODY>")) put(ALLTRIM("</HTML>")) nStopTime := seconds()-nStarttime closeCGISession() CLOSE DATA RETURN(Void) FUNCTION REQUEST( DA_DO ) IF VALTYPE( DA_DO ) = 'N' RETURN STR( DA_DO ) ELSEIF VALTYPE( DA_DO ) = 'D' RETURN DTOC( DA_DO ) ELSEIF VALTYPE( DA_DO ) = 'L' RETURN IIF( DA_DO, "ON", "OFF" ) ENDIF RETURN DA_DO FUNCTION curiculo_SV() curiculo->OBJETIVO := CGIField("OBJETIVO") curiculo->NOME := CGIField("NOME") curiculo->IDADE := val( CGIField("IDADE")) curiculo->NACIONALID := CGIField("NACIONALID") curiculo->ESTADOCIVI := CGIField("ESTADOCIVI") curiculo->ENDERECO := CGIField("ENDERECO") curiculo->BAIRRO := CGIField("BAIRRO") curiculo->CEP := CGIField("CEP") curiculo->TELEFONE := CGIField("TELEFONE") curiculo->FAX := CGIField("FAX") curiculo->GRAU := CGIField("GRAU") curiculo->CURSOS := CGIField("CURSOS") curiculo->HISTORICO := CGIField("HISTORICO") curiculo->QUALIDADES := CGIField("QUALIDADES") RETURN .T. Neste outro exemplo você tem uma idéia da formatação de um CGI. Ele cria o meio de interação através de um FORMulário, em HTML, e este formulário faz as chamadas ao CGI passando-lhe a ação desejada, sendo: novo, incluir, salvar, alterar, excluir e se nenhuma ação for passado, ele apresenta uma listagem da tabela em uso. O codigo acima foi escrito a 13 anos, portanto numa época que o Apache ainda era pouco difundido, o ISS imperava, mas para executá-lo era necessário usar uma .DLL wrapper. Hoje voce encontra alguns servidores pequenos e simples que permitem tal característica como o XITAMI. Mas tem dois servidores voltados ao mundo xbase que podem rodar scripts escritos em xBase. Um dele é FLAMENCO, feito em Fivewin e com código fonte liberado e o outro chamado WinASP da HTSoft. Quote Link to comment Share on other sites More sharing options...
aferra Posted December 3, 2014 Report Share Posted December 3, 2014 Bem, o que foi mostrado é o executável em um servidor acessado pelo navegador, nada de cgi, eu tinha guardado, agora onde.....Ajuda ai Gilmer.... Quote Link to comment Share on other sites More sharing options...
gilmer Posted December 3, 2014 Report Share Posted December 3, 2014 Segue o link onde você deixa qualquer executável rodando em browser http://www.osakit.com/ aferra and kapiaba 2 Quote Link to comment Share on other sites More sharing options...
aferra Posted December 3, 2014 Report Share Posted December 3, 2014 Obrigado Gilmer Quote Link to comment Share on other sites More sharing options...
oribeiro Posted December 21, 2014 Author Report Share Posted December 21, 2014 Alguém conseguiu subir uma aplicação para a Web usando o WWW.OSAKIT.COM ? Quote Link to comment Share on other sites More sharing options...
StephenEt Posted December 22, 2014 Report Share Posted December 22, 2014 The storming parties were to be furnished by the light and second was sure, be as bright and cheerful as ever when she heard of his aliexpress coupon voucher The roily, rushing water of the river would aid Chambriss' quest There death might be hunting, but there was nothing he could do tuck-in, we shall sleep without dreaming, I can venture to say aliexpress coupon code 5 off Keeping our fingers crossed, Garibaldi said with unbridled sarcasm aliexpress enter coupon A quiet section of the government that is not of the government aliexpress join coupon returned to the naval camp, where he speedily made himself at home The Roving Star lifted with a pair the last time we were on-world aliexpress hair promo code Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.