Jump to content
t0ze

[Resolvido] Login via httprequest e download de ficheiro

Recommended Posts

t0ze

Boa tarde,

Não sei se isto é possível com PHP e nem sei por onde começar, o contexto é este:

Existem uma Listagem com uma série de filtros que podem ser aplicados a essa mesma listagem. Existem também nessa Lista um botão de "Download". Ou seja, em utilização normal o utilizador, faz Log In e só depois do login bem sucedido é que tem acesso a fazer as pesquisas e o download de um ficheiro (Crystal Report) que contem os resultados dessa pesquisa.

A necessidade é obter esse ficheiro de forma automática, sem o utilizador ter efectivamente que fazer login, aplicar os filtros e carregar no download.

Obrigado.

Edited by t0ze

Share this post


Link to post
Share on other sites
t0ze

Obrigado I-NOZex.

Estive a ler e a pesquisar sobre o CURL, e é isso, é uma coisa nova para mim, e para já numa primeira fase queria fazer login, por isso segui o exemplo dado aqui neste topic

http://www.portugal-a-programar.pt/topic/58623-login-automatico/page__hl__curl

Acontece que a página fica branca, não sei como verificar se fiz login ou nao...

O meu ficheiro cookie.txt

Mostra isto

# Netscape HTTP Cookie File

# http://curl.haxx.se/docs/http-cookies.html

# This file was generated by libcurl! Edit at your own risk.

og1 FALSE / FALSE 0 PHPSESSID 433ifcekqoj210nvjltva5hfl1

Edited by t0ze

Share this post


Link to post
Share on other sites
t0ze

Já ultrapassei o login e já estou com a informação que preciso:

curl_setopt($ch, CURLOPT_URL, $strURL);
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$store = curl_exec ($ch);
print_r($store);

Acontece que isto é suposto retornar um crystal report, e ele está lá porque consigo ler algumas partes do conteudo aqui:

@ABCDEþÿÿÿGþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿProdORACLE_PRODGENTAP.GENTAP_ACTV_HIST_VIEWgentapðpppp0xjjj8ky//.x;:%;:;:;;x0010000000000838<90Pool = 'A320' and Rank = 'OPT' and Base = 'LIS' and Employee = '17169.4'D  T#   pdsodbc.dll GENTAP.GENTAP_ACTV_HIST_VIEW  tap_actv_hist_view uþÿà…ŸòùOh«‘+'³Ùà…ŸòùOh«‘+'³Ù0u˜ ¬¸ÄÐÜè ô  $08@Hhä218@ÀóžE@«g²¯‚À@:ÀÛÎ@Іֆ€ÀSeagate Crystal Reports0ððuSQLpdsodbc.dllODBC - Oracle_‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ   

O que eu não estou a ser capaz é de gravar esse output para um ficheiro .rpt

Alguma sugestão ?

Obrigado.

PS: EU tenho instalado e configurado a COM do Crystal Report e consigo fazer isto sem problemas:

//------  Variables ------
$my_report = "planeamentos.rpt";
$my_csv = "planeamentos.csv";
//------ Create a new COM Object of Crytal Reports------
$ObjectFactory= new COM("CrystalReports13.ObjectFactory.1");
//------ Create a instance of library Application -------
$crapp =$ObjectFactory->CreateObject("CrystalDesignRunTime.Application.13");
$creport = $crapp->OpenReport($my_report, 1);
$creport->ExportOptions->DiskFileName=$my_csv;
//$creport->ExportOptions->FormatType=31; // PDF
$creport->ExportOptions->FormatType=6; //CSV
$creport->ExportOptions->DestinationType=1;
$creport->Export(false);
//------ Release the variables
$creport = null;
$crapp = null;
$ObjectFactory = null;

Edited by t0ze

Share this post


Link to post
Share on other sites
t0ze

Não. Vou testar. Obg

EDIT:

Deu direitinho Rui Carlos, acontece é que as vezes os pedidos resultam em ficheiros com muitas linhas e a escrever num ficheiro acaba por se tornar muito lento.

Há alguma chance de colocar logo tudo num binário ? Não sei, por exemplo fazer o

echo $store

E no header colocar o type do crystal report ? (não pesquisei ainda muito sobre header's confesso).

Obrigado pela dica.

Edited by t0ze

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.