Diskuze: Textové súbory na stiahnutie
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 27 zpráv z 27.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Uložit se to dá - Ctrl + S - po otevření / po kliknutí pravým na odkaz - Uložit cíl jako
To se dělá nastavením v .htaccess - často se to obchází přes PHP.
Myslím, že to spočívá v přidání několika hlaviček, před stahovaný
soubor...
Něco ve stylu:
function download($path)
{
header("Content-Description: File Transfer");
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=\"$path\"");
readfile ($path);
}
snad to mám dobře, strašně dlouho jsem to nepotřeboval...
ps.: Možná existuje elegantnější řešení... ,nevím
Áno, to viem, ale ja chcem odkaz na stiahnutie dať do stránky (aby netrvalo využívať to, čo si napísal
Prepáč, ale s php veľmi neviem pracovať. Ako teda zadám cestu k súboru?
Už to sem poslal user. Jenom doplním, že proměnná
$path
v "Content-Disposition" a "readfile" může být pokaždé
jiná. Můžu tak nabídnout soubor pod jiným názvem, než jak ho mám na
disku. Případně na disku vůbec nemusí existovat, můžu ho třeba
vytáhnout jako záznam z databáze.
S tím .htaccess
se mi to nechce hledat. Jen se u souborů podle
masky změní MIME. Má to smysl, pokud takových souborů je víc.
Už jsem to našel:
<FilesMatch "\.(ini|pdf)$"
ForceType application/octet-stream
Header set Content-Disposition attachment
</FilesMatch>
v odkazu, místo cesty k souboru uvedeš script, který cestu zpracuje... cestu souboru předáš fci jako parametr...
Myslím, že samo chce něco jiného, kód výše vyvolá stažení. Můžeš si v PHP zavolat něco jako
file_get_contents($cesta_k_souboru);
Výsledkem je načtení obsahu souboru, který stačí vyechovat. Možná by to šlo fcí readfile, co to rovnou vypíše. Každopádně pozor na parametr funkce, nemělo by se stát, aby ho mohl zadat uživatel, je to nebezpečné.
Ďakujem, ale ja som mal namysli niečo ako mi poslal user
Ještě před funkci readfile()
musíš poslat ty 3 hlavičky,
jinak se ten soubor přímo zobrazí v prohlížeči a to samo007
nechce.
Ohledně bezpečnosti souhlasím. Je nepřípustné, aby byl přímo použit parametr od uživatele. Sám jsem to v jednom projektu tak potřeboval a musel jsem si dát dost velký pozor na to, aby uživatel nelezl tam kam nemá. Daleko bezpečnější je umístit obsah souboru do databáze. Zejména pokud uživatel takové soubory může i nahrávat.
Len keby som vedel s tými databázami pracovať :/ Je to dosť zložité,
naučiť sa s nimi pracovať. Teda aspoň pre mňa
Už jsem vyzkoušel 11 různých databází. Každá má své pro i proti. Některé z nich mají velmi jednoduché ovládání a dá se s nimi pracovat jako s polem.
Vedel by si mi ich teda poradiť?
S čím by si mi odporučil začať?
Jenže nevím, k jakému účelu to potřebuješ. Poradím ti databázi vhodnou na krátké texty a ty do ní začneš strkat video. Nebo naopak.
Z SQL databází se hodí MySQL, PostgreSQL a SQLite, ale každá je dobrá v něčem jiném. Na webové texty je asi nejlepší SQLite. Na silnou aplikační logiku a komplikované datové struktury PostgreSQL. MySQL je takový univerzál, který je někde mezi.
Z NoSQL mohu doporučit DB4 a GDBM kvůli extrémnímu výkonu při čtení, ale pro častý zápis se nehodí. Jedna z nich je k dispozici na skoro každém hostingu.
Pro velmi častý zápis se mi osvědčil Redis. Jeho unikátní datové struktury jsem v jiných databázích nenašel. Podmínkou však je, že se celá databáze vejde do RAM. Například na webové hry se hodí podstatně lépe, než velmi často používaná MySQL.
S čím začít? S jazykem SQL. Stáhni si SQLite (je to jen jeden soubor, neinstaluje se) a spusť si ho. Na YouTube najdeš k němu videotutoriál. Za 2 hodiny se naučíš vše podstatné, včetně joinů, triggerů a transakcí.
Já bych ti poradil nainstalovat XAMPP, vše se ti samo nakonfiguruje, potom si můžeš hrát v PHPMyAdmin, je to takové hezky klikací a dá se tam psát i SQL dotazy, hezky si to osaháš.
Jenže to umí jen MySQL, které se např. na weby moc nehodí.
Ďakujem za rady. Asi skúsim ten SQLLite.
Mám ale ešte jeden podstatný problém. Ide o môj lokálny server. Ešte pred
rokmi som si stiahol EasyPHP, kde je Lokálny web-serve, podpora PHP a MySQL,
ale MySQL mi prestal fungovať a keďže som si tam nainštaloval FrogCMS,
všetko mi prestalo fungovať. Už som to vzdal, neviem kde je chyba a čo mám
s tým robiť.
Nehodí, ale je tam nejpoužívanější Pro začátky je určitě
jednodušší, už jen proto, že nikde nemusí nic nastavovat.
U databáze SQLite nemusíš nastavovat vůbec nic. V jedné instanci jich můžeš mít otevřených až 10 a joinovat dotazy i mezi nimi. Navíc umí spoustu věcí, o kterých si MySQL může nechat jen zdát: Cizí klíče, integritní omezení, transakce,... Jistě, tabulky InnoDB to umí, ale každý hosting je nenabízí. Většinou jen MyISAM.
Proto tvrdím, že SQLite je pro začátky jednodušší, než MySQL. MySQL má jen jedinou podstatnější výhodu: Je víc v povědomí, víc se o ní mluví a píše.
Takže som si asi vybral dobre
Teraz ale premýšľam, že som sa chcel ešte naučiť C#. A keďže všetko sa
naraz nedá, tak sa radšej ešte poradím
Čo by som mal skôr začať študovať? Ešte ani neovládam poriadne základy
php. Ktorý jazyk je užitočnejší? (Pre začiatočníka)
Záleží na tom, co chceš programovat. Pokud desktopovou aplikaci pro Windows, tak C#. Pokud multiplatformní, tak Java nebo Python. Pokud chceš webovou aplikaci, tak nejvhodnější bude asi PHP, i když existují hostingy s Javou nebo Pythonem. Pokud chceš programovat roboty nebo vesmírné sondy, tak asi Lisp.
Univerzální programovací jazyk neexistuje. Je dobré jich znát několik a pro daný problém vždy vybrat ten nejvhodnější.
Zobrazeno 27 zpráv z 27.