Página 2 de 3

Re: Bloqueio Online

Enviado: 23 Mar 2010 16:02
por rochinha
Amiguinho,

Passe uma borracha em tudo e use o seguinte:

Código: Selecionar todos

function main()
    local cURL := "http://www.5volution.com.br/revisao.txt"
    local oHyperlink 

    oHyperlink := TOLEAuto():New( "Microsoft.XmlHttp" )
    oHyperlink:Open( "GET", cURL, .F. )
    oHyperlink:Send( "" )
    cResponseText := oHyperlink:ResponseText
    oHyperlink:end()
    ? cResponseText
Caso seu Harbour/xHarbour não tenha TOLEAuto():New() use CreateObject(). Procure exemplos referentes.

Após compilar e rodar diga-me o que apareceu.

Re: Bloqueio Online

Enviado: 23 Mar 2010 18:18
por fladimir
Bom vamos lá....

Passei uma borracha no Teste.PRG e coloquei conforme o codigo postado pelo colega...

Após isto compilei e não apresentou nenhum erro de compilação

Ao executar apresentou a seguinte mensagem:

Código: Selecionar todos

┌───────────────────────────────────────────────────────┐
│ Error Microsoft.XmlHttp/3  DISP_E_MEMBERNOTFOUND: END │
│                     Arguments: ()                     │
│                                                       │
│                         Quit                          │
└───────────────────────────────────────────────────────┘
Apos dar um ENTER no QUIT apareceu:

Código: Selecionar todos

C:\teste>TESTE

Error Microsoft.XmlHttp/3  DISP_E_MEMBERNOTFOUND: END Arguments: ()

Error at ...: TOLEAUTO:END(0) in Module: source\rtl\win32ole.prg
Called from : MAIN(9) in Module: TESTE.PRG

c:\teste>
Acredito q agora foi, só não entendi direito a mensagem de erro....

Grato e Sucesso!!! :)Pos

Re: Bloqueio Online

Enviado: 24 Mar 2010 00:18
por marcos.gurupi
Caro, deixa eu explicar como uso. Quando o usuario acessa pela primeira vez no dia o sistema e tendo internet ativa o sistema vai ateh o meu servidor mysql e verifica a data do banco de dados e assume como a data do dia, isso eh claro para q nenhum engracadinho fique voltando a data, depois ele vai ateh o bando de dados mysql pesquisando pelo cnpj e verifica tb a data do reset retornando a mesma quando n for igual a q estava cadastrada, sendo assim eu posso bloqueiar ou liberar qualquer cliente q tenha internet daqui do meu note. Foi a forma mais facil de fazer, sem usar ftp ou http. Obrigado.

Marcos Roberto.

Re: Bloqueio Online

Enviado: 24 Mar 2010 07:40
por rochinha
Amiguinho,

Voce precisará atualizar o XML em sua máquina, geralmente nossas máquinas possuem os arquivos msxml3.dll, msxml4.dll, etc que nos permitem interagir com o objetos de acesso ao protocolo XML.

http://www.microsoft.com/downloads/deta ... laylang=en

Neste link voce pode baixar e atualizar estes módulos em sua máquina.

A intenção é auxiliá-lo a baixar um arquivo da internet e posteriormente verificar e manusear seu conteudo.

Vamos tentando.

Re: Bloqueio Online

Enviado: 24 Mar 2010 08:16
por fladimir
Marcos obrigado pela colaboração....

Rochinha, eu baixei atualizei e rodei o Teste.EXE e apresentou o mesmo erro, o q pode ainda estar acontecendo... ? Vou testar depois em outro computador e depois posto os resultados pra ver se tb ocorre, mas antes vou instalar a versao mais recente do MSXML.

Obrigado

Sucesso!!!

Re: Bloqueio Online

Enviado: 24 Mar 2010 12:46
por rochinha
Amiguinho,

Em minha máquina também tenho instalado o SOAP Toolkit 3 talvez seja o caso de voce instalá-lo.

Em todo caso caso consiga compilar normalmente e executá-lo voce obterá como resposta duas linhas de texto, Revisao e Release.

Como voce usa xHarbour pode tentar usar a TUrl(). Só não posto algum exemplo pois não encontro o famigerado. Mas com a TUrl() que é mais compativel com sua versão voce consiga o mesmo.

Re: Bloqueio Online

Enviado: 24 Mar 2010 18:08
por rochinha
Amiguinhos,

Recebi de um companheiro um exemplo usando a TIP.LIB para xHarbour:

Código: Selecionar todos

Function Teste_rochinha()
 
   oHttp:= TIpClientHttp():new( "http://www.5volution.com.br/revisao.txt" )
   // Connect to the HTTP server
   If .NOT. oHttp:open()
      ? "Connection error:", oHttp:lastErrorMessage()
      QUIT
   EndIf
 
   cHtml   := oHttp:readAll()
   oHttp:close()
 
   ? "Teste Rochinha.","","O Resultado é : " + cHtml 
 
Return NIL
Fiz uma pequenina alteração para ficar mais puro.

Como me foi informado é necessário que esta biblioteca esteja posicionada antes das bibliotecas sqllib e fivewin caso seja usado, eu recomendo que posicione ela como a primeira de todas já que suas funções devem suprimir funções identicas em outras bibliotecas.

O nome Teste_rochinha() não foi colocado por mim, ok. Hehehe!

O desejo é que esta explanação funcione para podermos dar os passos vindouros.

Re: Bloqueio Online

Enviado: 24 Mar 2010 23:47
por fladimir
Rochinha e nobres colegas...

Fiz conforme a última postagem e deu certo, compilou sem erros e ao rodar tb deu certo...

Segue abaixo o resultado:

Código: Selecionar todos

Teste Rochinha.  O Resultado é : Revisao: 220310
Release: 2500
E agora qual a idéia do colega em cima disto?

Grato e Sucesso!!!

:)Pos

Re: Bloqueio Online

Enviado: 25 Mar 2010 19:09
por rochinha
Amiguinho,

Com base nisto seria a hora de voce criar o arquivo com as informações de liberação onde contenha um identificador do cliente como CNPJ ou CPF e a critica de liberação

Código: Selecionar todos

REGISTRADO: 00.000.000/0000-00
LIBERADO: S
Dentro de seu sistema voce deve possuir uma variavel que irá conter o CNPJ ou CPF do cliente que será usado para criticar os dados de seu arquivo de liberação.

Caso não esteja liberado, uma rotina deverá direcionar o cliente para uma tela que lhe informe o problema. ou até usando o método que postamos, baixe o boleto de pagamento e imprima o na impressora do cliente, ao invés de aguardar que o mesmo lhe contacte ou entre em seu site para fazer isto.

Como sua liberação é on-line, voce deve colocar os arquivo referentes a cada cliente no seu site a cada situação.

Re: Bloqueio Online

Enviado: 29 Mar 2010 19:56
por fladimir
Uma dúvida, suponhamos q tenha um cliente ótimo CNPJ X e o mesmo paga em dia e consequentemente o sistema estar sempre liberado, se alguém sem querer ou querendo cadastre um CNPJ igual em outro cliente o mesmo irá pegar a liberação do BOM cliente e ficar sempre liberado, digo isto pq em casos de clientes q utilizem o sistema para controle administrativo q não precisem de ECF ou q não emitam vendas, não tera necessidade de constar o CNPJ no documento, ou seja, poderá ser utilizada de má fé...

Meu raciocínio tem lógica? Estou meio paranóico? Existe alguma idéia para o caso, caso o mesmo tenha lógica ao ver dos colegas ?


Grato e Sucesso!!!

:)Pos

Re: Bloqueio Online

Enviado: 30 Mar 2010 04:22
por rochinha
Amiguinho,

O arquivo que estará na internet deverá ter o CNPJ como nome e extensão .TXT.

Seu sistema deverá saber qual arquivo pesquisar através do uso do CNPJ gravado em algum arquivo de configuração de seu sistema.

O arquivo de configuração de seu sistema terá: CNPJ, razão social, etc.

O arquivo que esta na internet com a liberação/travamento terá dentro dele as variaveis com CNPJ, Razão e Liberação.

Caso o cliente descubra o CNPJ de outro cliente seu e queira usar o mesmo para isto, o seu sistema deverá criatica se CNPJ e Razão social são os mesmos, senão não libera.

Para que não aconteça, problemas, principalmente com acentuação, grave e critique as informações sempre em maiusculas e sem acentos.

Se quizer dar mais segurança, grave as informações criptografadas e acrescente uma variável com senha.

Esta senha voce envia por email, e ela será exclusiva do cliente.

Ao verificar o registro o cliente deverá ser indagado desta senha.

Resumindo:
CNPJ
Razão Social
Liberação
Senha

Serão suas variáveis e voce criptografa, salva no arquivo, sobe pra internet e em seu sistema voce baixa o arquivo, descriptografa as variáveis e critica as mesmas.

Bloqueio Online

Enviado: 01 Nov 2018 14:41
por juniorcamilo
Boa tarde !!1
amigos estava vendo a respeito desse tópico!!
como faz para enviar um arquivo para o ftp?(pois aki diz o dwload!!)

Bloqueio Online

Enviado: 02 Nov 2018 02:37
por rochinha
Amiguinhos,

Mais ou menos assim:

Código: Selecionar todos

/*
 *
 * Geração de arquivos cm conteúdos e envio para pasta FTP online
 *
 */
#define CRLF chr(13)+chr(10)

function main
  //
  Request DBFCDX
  RddRegister('DBFCDX',1)
  RddSetDefault('DBFCDX')
  Request OrdKeyNo
  Request OrdKeyCount
  set date brit
  //
  cRC :=       [] + strtran(dtoc(date()),"/","") + [-] + strzero(nRevisao,5) + [] + CRLF
  errhandle = fcreate( "revisao.txt" )
  fwrite( errhandle, cRC )
  fclose( errhandle )
  //
  errhandle = fcreate( "revisao.scr" )
  fwrite( errhandle, cRC )
  fclose( errhandle )
  //
  REV_EnviarFTP()  
  return .t.

function REV_EnviarFTP() /* ****** ////// OK ////// ****** */
  LOCAL WSHShell
  LOCAL intWindowStyle := 2, bWaitOnRun := .t.
  //
  cSHFTPServerName     := "158.269.44.202" // "ftp.blablabla.com.br"
  cSHServerFolder      := "downloads"
  cSHFTPLoginID        := "usuario@blablabla.com.br"
  cSHFTPPassword       := "abc@987"
  cSHLocalFolder       := ".\"
  //
  cSTRFile :=            [strFTPServerName   = "] + cSHFTPServerName + ["] + CRLF
  cSTRFile := cSTRFile + [strFTPServerFolder = "] + cSHServerFolder + ["] + CRLF
  cSTRFile := cSTRFile + [strLoginID         = "] + cSHFTPLoginID + ["] + CRLF
  cSTRFile := cSTRFile + [strPassword        = "] + cSHFTPPassword + ["] + CRLF
  cSTRFile := cSTRFile + [strFile2PutGet     = "revisao.txt"] + CRLF
  cSTRFile := cSTRFile + [strFile2PutGet2    = "revisao.scr"] + CRLF
  cSTRFile := cSTRFile + [strLocalFolderName = "] + cSHLocalFolder + ["] + CRLF
  cSTRFile := cSTRFile + [strFTPScriptFileName = strLocalFolderName & "\revisao.ftp"] + CRLF
  cSTRFile := cSTRFile + [Set objFSO = CreateObject("Scripting.FileSystemObject")] + CRLF
  cSTRFile := cSTRFile + [If (objFSO.FileExists(strFTPScriptFileName)) Then] + CRLF
  cSTRFile := cSTRFile + [   objFSO.DeleteFile (strFTPScriptFileName)] + CRLF
  cSTRFile := cSTRFile + [End If] + CRLF
  cSTRFile := cSTRFile + [Set objMyFile = objFSO.CreateTextFile(strFTPScriptFileName, True)] + CRLF
  cSTRFile := cSTRFile + [    objMyFile.WriteLine ("open " & strFTPServerName)] + CRLF
  cSTRFile := cSTRFile + [    objMyFile.WriteLine (strLoginID)] + CRLF
  cSTRFile := cSTRFile + [    objMyFile.WriteLine (strPassword)] + CRLF
  cSTRFile := cSTRFile + [    objMyFile.WriteLine ("cd " & strFTPServerFolder)] + CRLF
  cSTRFile := cSTRFile + [    objMyFile.WriteLine ("hash")] + CRLF
  cSTRFile := cSTRFile + [    objMyFile.WriteLine ("lcd " & strLocalFolderName)] + CRLF
  cSTRFile := cSTRFile + [    objMyFile.WriteLine ("put " & strFile2PutGet)] + CRLF
  cSTRFile := cSTRFile + [    objMyFile.WriteLine ("put " & strFile2PutGet2)] + CRLF
  cSTRFile := cSTRFile + [    objMyFile.WriteLine ("bye")] + CRLF
  cSTRFile := cSTRFile + [    objMyFile.WriteLine ("quit")] + CRLF
  cSTRFile := cSTRFile + [    objMyFile.Close] + CRLF
  cSTRFile := cSTRFile + [Set objFSO = Nothing] + CRLF
  cSTRFile := cSTRFile + [Set objMyFile = Nothing] + CRLF
  cSTRFile := cSTRFile + [Set objShell = WScript.CreateObject( "WScript.Shell" )] + CRLF
  cSTRFile := cSTRFile + [objShell.Run "ftp -s:" & chr(34) & strFTPScriptFileName & chr(34),7] + CRLF
  cSTRFile := cSTRFile + [Set objShell = Nothing]
  errhandle := FCreate( "revisao.vbs" )
  FWrite( errhandle, cSTRFile )
  FClose( errhandle )
  RUNWScript( "revisao.vbs", 2 )
  return .t.

function RUNWScript( cScript, intWindowStyle, bWaitOnRun )
   *  0 Hide the window and activate another window. 
   *  1 Activate and display the window. (restore size and position) Specify this flag when displaying a window for the first time. 
   *  2 Activate & minimize. 
   *  3 Activate & maximize. 
   *  4 Restore. The active window remains active. 
   *  5 Activate & Restore. 
   *  6 Minimize & activate the next top-level window in the Z order. 
   *  7 Minimize. The active window remains active. 
   *  8 Display the window in its current state. The active window remains active. 
   *  9 Restore & Activate. Specify this flag when restoring a minimized window. 
   * 10 Sets the show-state based on the state of the program that started the application. Example 
   LOCAL WSHShell
   DEFAULT intWindowStyle := 0, bWaitOnRun := .t.
   WSHShell := TOleAuto():New("wscript.shell")
   WSHShell:Run( cScript, intWindowStyle, bWaitOnRun )
   WSHShell:End()
   return .t.

Bloqueio Online

Enviado: 05 Nov 2018 08:56
por juniorcamilo
rochinha escreveu:Amiguinhos,

Mais ou menos assim:

Código: Selecionar todos


function RUNWScript( cScript, intWindowStyle, bWaitOnRun )
  .......
   DEFAULT intWindowStyle := 0, bWaitOnRun := .t.
   .....
.
amigo quando compilo da o seguinte erro nessa linha:
E0030 Syntax error: syntax error at 'INTWINDOWSSTYLE'

Obs: xHb build 1.2.3 (Simplex) & BCC 5.82

Bloqueio Online

Enviado: 05 Nov 2018 13:14
por rochinha
Amiguinhos,
E0030 Syntax error: syntax error at 'INTWINDOWSSTYLE'
No meu código não tem esta variável, revise o que você digitou.