Jump to content
Fivewin Brasil

Liberação de Uso do Sistema via FTP. (Resolvido)


Valdir

Recommended Posts

Pessoal...

Com o advento da NFe, todos são obrigados a ter e a usar a Internet.

Aproveitando essa necessidade, coloquei no meu sistema uma trava que diariamente avalia se existe um arquivo ".ini" no meu FTP e dentro deste arquivo, informo a data de validade do sistema. Se algum cliente não pagar, é só eu trocar a data dentro deste arquivo que o sistema para de funcionar.

Até ai blz, depois de vários testes no meu servidor local e servidor da internet, ficou perfeito.

Implantei em todos os meus clientes e inicialmente deu tudo certo.

Infelizmente, alguns "ténikos" de rede, decidem alterar as configurações de acesso à internet de meus clientes, bloqueando a porta 21 que dá acesso ao FTP.

Ai,,, fundiu-se né... O Sistema trava por não conseguir visualizar esse arquivo ".ini" no meu FTP.

Bom... perguntar não ofende, então lá vai. kkkkkkkkkkkkkk

Gostaria de saber dos amigos se existe alguma forma de programar no meu sistema, uma função para reconfigurar esse tipo de informação automaticamente toda vez que o meu sistema é acessado ?

Ou existe alguma outra forma de tratar isso ?

Obrigado.

Link to comment
Share on other sites

Ola Valdir,

eu usava da mesma maneira que o senhor....

tive problemas com a porta 21 bloqueada ou caso o servidor ftp tiver o maximo de usuarios ou problema no host ftp... dai travava na consulta ftp o sistema.

alem dos problemas e como tive meus fontes furtados... tive que alterar a maneira de fazer isto...

seria mais ou menos assim

TRY
oOle := CreateObject( "Microsoft.XMLHTTP" )
oOle:Open( "GET", "http://www.sistem.net.br/licenca/b"+strtran(dtos(Date()),"/","")+".html", .f. ) // ex: bloquear b20150210.html /// aqui nao fica dependedo dos cookies do navegador
oOle:Send()
cBuf := oOle:ResponseBody
CATCH
Return nil
END
nFound0 := at(Alltrim(Empr->Cha_Empr)+".lcn", cBuf)
...
,,
,
dentro do arquivo HTML teria a(s) chave(s) que vc gostaria de bloquear (como fosse arquivo texto) // no caso seu sistema teria um campo para pôr esse chave
se interessar me chame no email suporte@sistem.net,br que passo o procedimento completo para o amigo
ftp nao ser bom para esse proposito
[]s
Link to comment
Share on other sites

Amigos, eu como uso o MYSQL, fiz de forma diferente.

Tenho um banco de dados hospedado na hotgator, que tem os cadastros dos meus clientes com o nome e CNPJ, e tenho uma tabela com os boletos deles.

Então o que fiz foi uma rotina que a cada 45 dias ele tem que validar uma chave, que o proprio sistema vai no banco de dados da hostgator, vê se o cliente esta em dia, se sim ele gera a contra-chave caso contrario ele avisa que tem $$ em aberto.

No meu caso funciona 100%.

Eu postei a um tempão isso, mas nao consegui achar mais aqui sobre o assunto.

Link to comment
Share on other sites

Pessoal...

Por favor, alguém saberia me dizer porquê quando atualizo uma página no meu site, a página anterior é a que continua sendo mostrada.?
Vejam nesse exemplo:
oHttp := CreateObject( 'Microsoft.XMLHTTP' )
oHttp:Send()
cResp1 := oHttp:ResponseText()
? cResp1
Mando a página logsys.html para o meu Servidor de Internet.
Até ai blz, funfa direitinho.
Porem se eu fizer qualquer modificação nesta página e subi-la para o meu provedor, a função acima
continua mostrando informações da página anterior.
Obrigado.
Link to comment
Share on other sites

Tente assim:



#Include "FiveWin.ch"

FUNCTION Main()

LOCAL oHttp, cResp1, oError

Try

oHttp := CreateObject( 'Microsoft.XMLHTTP' )

catch oError

? "Gentyyyy, ocorreu um erro? Mofffaaaaaaaa"

Return Nil

End Try

// http://www.fivesolution.com.br/logsys.html
oHttp:Open( "GET", "http://www.fivesolution.com.br/logsys.html", .F. )
oHttp:Send()

// cResp1 := oHttp:ResponseText()

cResp1 := oHttp:ResponseBody //ResponseText

? cResp1

RETURN NIL


Link to comment
Share on other sites

Fala Tranka...

Obrigado pela resposta, más infelizmente não funfou.

O problema persiste.

Tens alguma outra sugestão ?

abração.

Tente assim:
#Include "FiveWin.ch"
 
FUNCTION Main()
 
   LOCAL oHttp, cResp1, oError
 
   Try
 
      oHttp := CreateObject( 'Microsoft.XMLHTTP' )
 
   catch oError
 
      ? "Gentyyyy, ocorreu um erro? Mofffaaaaaaaa"
 
      Return Nil
 
   End Try
 
   // http://www.fivesolution.com.br/logsys.html
   oHttp:Open( "GET", "http://www.fivesolution.com.br/logsys.html", .F. )
   oHttp:Send()
 
   // cResp1 := oHttp:ResponseText()
 
   cResp1 := oHttp:ResponseBody //ResponseText
 
   ? cResp1
 
RETURN NIL
Link to comment
Share on other sites

Outra...



#Include "FiveWin.ch"

Function Main()

local oHttp
local cResp

Try

oHttp := CreateObject( "winhttp.winhttprequest.5.1" )

oHttp:Open("GET", "http://www.fivesolution.com.br/logsys.html", .f. )

oHttp:Send()

cResp := oHttp:ResponseText()

oHttp:WaitForResponse()

Catch

MsgStop( "Error" )

Return cResp

End Try

? cResp

Return cResp


Link to comment
Share on other sites

Outra..



#include "FiveWin.ch"

Function Main()

Local oHttp, cRet := '', uRet

Try

oHttp := CreateObject( 'MSXML2.XMLHTTP' )

Catch

oHttp := CreateObject( 'Microsoft.XMLHTTP' )

End

oHttp:Open("GET", "http://www.fivesolution.com.br/logsys.html", .f. )

oHttp:Send()

SysRefresh()

#ifdef __XHARBOUR__

cRet := oHttp:ResponseBody

? "1 ", cRet

#else

AEval(oHttp:ResponseBody,{|uRet|cRet+=Chr(uRet)}) // harbour?

? "2 ", cRet

#endif

Return cRet


Link to comment
Share on other sites

Amigos...

Com a ajuda dos amigos Kapiaba, Sistem, Hasa, Márcio e Vagner Wirts, o problema foi resolvido.

Aproveitei a dica do amigo Sistem:

TRY
oOle := CreateObject( "Microsoft.XMLHTTP" )
oOle:Open( "GET", "http://www.sistem.ne...n(dtos(Date()),"/","")+".html", .f. ) // ex: bloquear b20150210.html /// aqui nao fica dependedo dos cookies do navegador
oOle:Send()
cBuf := oOle:ResponseBody
CATCH
Return nil
END
Depois foi só criar uma página html com as tags de controle de Data de validade de todos os meus clientes e depois instalá-la no meu Servidor de Internet.
Pelo menos aqui funfou direitinho.
Obrigados à todos que aajudaram.
abração.
Link to comment
Share on other sites

  • 2 years later...

Boa tarde!
Sou novato em programação e fivewin, estou tentando implementar algo do tipo controle do acesso somente após o pagamento mais estou perdido por não conseguir exemplos para testar em minha aplicação. Sou programador fundo de quintal porem recentemente tenho uns 3 clientes que persistem em só me pagar quando querem. 
Tem como me ajudar com um exemplo para que eu estude e implemente na minha aplicação?
Desde já,
Obrigado!

Link to comment
Share on other sites

 

Ola Valdir,

eu usava da mesma maneira que o senhor....

tive problemas com a porta 21 bloqueada ou caso o servidor ftp tiver o maximo de usuarios ou problema no host ftp... dai travava na consulta ftp o sistema.

alem dos problemas e como tive meus fontes furtados... tive que alterar a maneira de fazer isto...

seria mais ou menos assim

TRY
oOle := CreateObject( "Microsoft.XMLHTTP" )
oOle:Open( "GET", "http://www.sistem.net.br/licenca/b"+strtran(dtos(Date()),"/","")+".html", .f. ) // ex: bloquear b20150210.html /// aqui nao fica dependedo dos cookies do navegador
oOle:Send()
cBuf := oOle:ResponseBody
CATCH
Return nil
END
nFound0 := at(Alltrim(Empr->Cha_Empr)+".lcn", cBuf)
...
,,
,
 
dentro do arquivo HTML teria a(s) chave(s) que vc gostaria de bloquear (como fosse arquivo texto) // no caso seu sistema teria um campo para pôr esse chave
 
se interessar me chame no email suporte@sistem.net,br que passo o procedimento completo para o amigo
ftp nao ser bom para esse proposito
 
[]s

Boa tarde!
Sou novato em programação e fivewin, estou tentando implementar algo do tipo controle do acesso somente após o pagamento mais estou perdido por não conseguir exemplos para testar em minha aplicação. Sou programador fundo de quintal porem recentemente tenho uns 3 clientes que persistem em só me pagar quando querem. 
Tem como me ajudar com um exemplo para que eu estude e implemente na minha aplicação?
Desde já,
Obrigado!

Link to comment
Share on other sites

 

Boa tarde!
Sou novato em programação e fivewin, estou tentando implementar algo do tipo controle do acesso somente após o pagamento mais estou perdido por não conseguir exemplos para testar em minha aplicação. Sou programador fundo de quintal porem recentemente tenho uns 3 clientes que persistem em só me pagar quando querem. 
Tem como me ajudar com um exemplo para que eu estude e implemente na minha aplicação?
Desde já,
Obrigado!

Ola,

caso vc tenha um host, crie um arquivo e no conteudo deste coloque algo que identifique o seu cliente(algo unico para cada cliente)....dai vc escreve essa identificacao unica em um arquivo. ex: teste.html ou teste.txt e joga no seu host

dai vc poe o codigo abaixo em algum lugar no inicio de seu prog.principal...  veja o codigo:

       TRY
        oOle := CreateObject( "Microsoft.XMLHTTP" )
        oOle:Open( "GET", "http://www.SeuSite.net/licenca/b"+strtran(dtos(Date()), "/","")+".html", .f. )  // bloquear as chaves que encontrase no arquivo  ex: b20170807.html
        oOle:Send()
        cBuf := oOle:ResponseBody   // cBuf pega o conteudo do arquivo que esta no host(internet) (aquele arq. que vc vai pôr as chave(s) para bloqueio)  
       CATCH
        Return nil
       END
       nFound := at(Cha_Empr, cBuf)  // aqui verifica se a chave esta no conteudo cBuf (cBuf = conteudo do arquivo que esta na intenet HOST)
       If nFound > 0  // aqui verifica se variavel nFound eh maior que zero, caso seja mostra a msg de acesso negado e abandona o programa. 
          MsgAlert("ACESSO NEGADO, por favor consultar suporte.", "Atenção!")
          quit  
       Endif
       oOle := nil   // mata o objeto

pq usar uma data sendo o nome do arquivo? Resp: veja o inicio do topic

[]s

 

Link to comment
Share on other sites

  • 5 weeks later...
 

Ola,

caso vc tenha um host, crie um arquivo e no conteudo deste coloque algo que identifique o seu cliente(algo unico para cada cliente)....dai vc escreve essa identificacao unica em um arquivo. ex: teste.html ou teste.txt e joga no seu host

dai vc poe o codigo abaixo em algum lugar no inicio de seu prog.principal...  veja o codigo:


       TRY
        oOle := CreateObject( "Microsoft.XMLHTTP" )
        oOle:Open( "GET", "http://www.SeuSite.net/licenca/b"+strtran(dtos(Date()), "/","")+".html", .f. )  // bloquear as chaves que encontrase no arquivo  ex: b20170807.html
        oOle:Send()
        cBuf := oOle:ResponseBody   // cBuf pega o conteudo do arquivo que esta no host(internet) (aquele arq. que vc vai pôr as chave(s) para bloqueio)  
       CATCH
        Return nil
       END
       nFound := at(Cha_Empr, cBuf)  // aqui verifica se a chave esta no conteudo cBuf (cBuf = conteudo do arquivo que esta na intenet HOST)
       If nFound > 0  // aqui verifica se variavel nFound eh maior que zero, caso seja mostra a msg de acesso negado e abandona o programa. 
          MsgAlert("ACESSO NEGADO, por favor consultar suporte.", "Atenção!")
          quit  
       Endif
       oOle := nil   // mata o objeto

pq usar uma data sendo o nome do arquivo? Resp: veja o inicio do topic

[]s

 

Boa tarde!
Muito obrigado, acabei de conseguir!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...