PHP týden PHP týden
Tento týden až 80% sleva na e-learning PHP!
Avatar
Peter Tulic
Člen
Avatar
Peter Tulic:29.11.2018 14:22

Zdravím,

máme vo firme rôzne reporty, ktoré reportisti manuálne exportujú do excelovej tabuľky a ďalej s nimi pracujú. Chceli by sme trochu preskočiť tu manuálnu prácu, tak sme skúsili niečo, čo ponúka samotný Excel, a to, že ako zdroj dát sa dá nastaviť aj web. Tam sa zadá url, na ktorej zobrazím konkrétny report v csv formáte a excel si ho stiahne.

Problém je, že sú to citlivé dáta, ktoré nechceme mať iba tak prístupné cez url. Chceli by sme, aby sa na prístup k tým dátam dalo použiť rovnaké meno a heslo, ako keď sa náš zamestnanec prihlasuje do nášho informačného systému, ktorý funguje takmer celý na PHP.

Ale neviem úplne presne ako na to, aby bol excel schopný sa nejakým spôsobom prihlásiť a získať tie dáta zabezpečene.

Budem rád za každú radu ako to spraviť bez toho, aby som si musel robiť nejaké vlastné Rest API alebo čo.

Zkusil jsem: Googliť a našiel som na stránke Officu toto: https://support.office.com/…6a4921380ca9#…. Kde v podstate nie sú žiadne dôležité informácie, ale vidieť z toho, že sa tam nejakým spôsobom dá nastaviť meno a heslo, ale neviem akým spôsobom ho spracovať na serveri.

Chci docílit: Chcem aby bol excel schopný si sám sťahovať dáta, a aby po pokuse k ich pristúpeniu som vedel na serveri pomocou PHP riadiť, že kto ich môže zobraziť.

 
Odpovědět 29.11.2018 14:22
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:30.11.2018 7:27

Muzes soubor zipovat, ale nejde to pak otevirat online.
Php, ktere posila soubor, predtim snad overuje, zda je uzivatel prihlasen a ma prava takovy soubor pozadovat, ne?

<php?
if ($prihlasen && $prava) {
echo header('pro csv');
//echo file_get_contents('soubor'); // nebo echo $str
echo 'a;b;c;d'."\n";
echo '1;2;3;4'."\n";
}
/*
//---
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=file.csv");
header("Pragma: no-cache");
header("Expires: 0");
echo "record1,record2,record3\n";
die;
 
Nahoru Odpovědět  +1 30.11.2018 7:27
Avatar
Peter Tulic
Člen
Avatar
Odpovídá na Peter Mlich
Peter Tulic:30.11.2018 9:54

Asi som to vysvetlil trochu zle, že čo požadujem. Ja s tým súborom vôbec nepracujem na serveri, ten si vytvára až excel sám z tých csv dát, ktoré odošle server. Ja to potrebujem zabezpečiť, aby excel nejakým spôsobom poslal prihlasovacie údaje a server tým pádom zobrazil tie dáta až ked ho overí. Len neviem akým spôsobom to má poslať excel, respektíve kedy má server vedieť, že môže bezpečne tie dáta vypísať. Lebo ten excel si to pomocou url dotazuje sám. A v tom linku je vidieť, že je tam nejaká možnosť zadať nejaké prihlasovacie údaje, len neviem ako to funguje. Či to excel nejako pripojí do url alebo či nachvíľu bude fungovať ako prehliadač a pošle POST požiadavok. Dúfam, že je to jasnejšie. Lebo ja nemám problém so súbormi a overovaním prihlásenia na serveri, ak používateľ pristupuje klasicky cez prehliadač, to problém nie je.

 
Nahoru Odpovědět 30.11.2018 9:54
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:30.11.2018 15:03

Aha. To netusim, nepouzivam.
'excel sám z tých csv dát' - nedava to smysl. CSV je textovy soubor, ktery excel umi otevrit. Nechapu, co tobe jeste vytvari? Nedava to smysl.

Mas browser. Kliknes na url x.php. Php ti vyrobi csv. Ty mas v browseru nastavene, ze soubor s priponou csv bude otevirat excel. Tak on veme csv a zobrazi ti ho jako excel tabulku. -- Takto jsem to pochopil

Ty to mas asi nejak jinak. Provozujes asi nejaka excel makra.
Nemam zdani, jake prihlasovani ti nabizi. Mohl jsi poslat screenshot.
Pokud mas nejakou excel tabulku, v ni link. Tak ten link by mel otevirat asi pres web-browser. Web-browser by te mohl, pokud je za linkem skryte csv, vratit zpet na excel. A nebo to mozna excel zvladne sam. Netusim.
Pokud by to melo chtit nejakou autentizaci, pak asi neco jako http basic. Obvykle vyskoci takova seda oskliva tabulka. To se da obejit tim, ze do url pridas login. Ale mela by url byt aspon https.

https://www.itnetwork.cz/
https://name:[email protected]/ mozna spis
https://name:[email protected]/

A nebo bys musel byt logovany v browseru.
A nebo bys musel do excel sesitu pridat makro, ktere tam doplnuje logovani.
Pripadne tam mozna mas makro na stahovani dat, netusim.
To ale neni moc bezpecne, tam takhle psat hesla pro autologovani.

Jo, na ten link jsem prvne neklikal.
Tak by to slo asi taky. Do excelu si pridat stranku jako data-source. A bud tam primo vyplnit logovat a nebo to nechat prazdne, on by si mel login vyptat (ten login asi pujde pres http basic do php). Podobne se resi treba kalendare. Kolega ma asi na 4 mistech. V seznamu rel ma jen url. Pri spusteni aplikace pise 4x v podstate to same heslo :)
Ostatne, v tom obrazku pod nadpisem 'Manage data source credentials' to vidis. Logovani typu anonym (zadne), win, basic (http basic), ostatni netusim.
-- Hej, tak ms na strance klikni Ano/Ne, ze ti to nepomohlo a treba cesky napis, co bys jeste rad vedel.

google = excel Data Source Settings Credentials basic

https://docs.microsoft.com/…data-sources?…

  • Tady maji mozna podrobnejsi seznam, ale zrovna bez basic :)

google = excel web Data Source

https://support.office.com/…b68e9e616f5a

No, spatne se to hleda. Ale napadlo mne, co kdybys pro kazdeho klienta vyrobil specialni hash jenom pro tuhle operaci? Neco jineho nez je login do weboveho rozhrani. Kdyz zaznamenas problem, tak proste zmenis na obou stranach hash. Pripadne nechas uzivatele si ten hash sam vygenerovat, pokud je trochu gramotnejsi.

 
Nahoru Odpovědět 30.11.2018 15:03
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.