Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Stažení CSV v php

Taps
verified
rating uzivatele
(118 hodnocení)
6. 5. 2016 11:44:35
Zdravím, po kliknutí na odkaz chci stáhnout csv soubor. Problém je však v tom, že ve staženém souboru nemám údaje které jsou v proměnné filename. Namísto toho stažený soubor obsahuje html kód aktuální stránky. Mohl by mi někdo poradit.Děkuji
6. 5. 2016 11:44:35
https://webtrh.cz/diskuse/stazeni-csv-v-php/#reply1194184
Žeby
? :D
6. 5. 2016 11:50:54
https://webtrh.cz/diskuse/stazeni-csv-v-php/#reply1194183
TomasX
verified
rating uzivatele
(4 hodnocení)
6. 5. 2016 11:55:44
můžeš ten kód stránky ukázat, chyba bude pravděpodobně v tvorbě odkazu, nikoliv tady.
pár typů:
- Content-Type tam máš 4x, stačí ale pouze jednou, nechal bych tam pouze ten octet-stream, to zajistí dialog pro uložení souboru na disk
- Cache-Control tam máš také 2x
- $role a $idTestu dáváš do cesty, ale neošetřuješ, může obsahovat řadu nevhodných věcí, jako třeba další .., či null byte string atd.
- začínej php kód pomocí
- před
---------- Příspěvek doplněn 06.05.2016 v 11:58 ----------
jbezdicek: v tom chyba není, mrkni do dokumentace, readfile je standardní funkce a to má správně. Jen drobnost, u file_get_content() je nutné také zapsat echo, tvůj typ může pro nezkušeného vypadat zmatečně.
6. 5. 2016 11:55:44
https://webtrh.cz/diskuse/stazeni-csv-v-php/#reply1194182
Taps
verified
rating uzivatele
(118 hodnocení)
6. 5. 2016 12:21:52
Tady to je. To vygenerování CSV proběhne v pořádku a CSV soubor obsahuje požadovaná data. Problém nastává při tom stažení toho souboru. Proměnné do file name vstupují z databáze a navíc se jedná o ID, které mají v databázi hodnotu auto_increment.
6. 5. 2016 12:21:52
https://webtrh.cz/diskuse/stazeni-csv-v-php/#reply1194181
TomasX
verified
rating uzivatele
(4 hodnocení)
6. 5. 2016 12:34:46
a můžeš ukázat jak vypadá ta stránka, kterou zobrazí prohlížeč, jak vypadá ten odkaz pro stažení csv a případně kód v té stránce? Sám píšeš, že to csv generuje v pořádku, v tom totiž nejspíš chyba nebude a ani se tenhle kód nenačte a prohlížeč z nějakého důvodu zobrazí něco jiného, rád bych viděl co, bez toho se dá složitě radit :).
Také by bylo vhodné ukázat celý kód, dáváš sem fragmenty, v kterých pravděpodobně chyba není. V tom druhé příkladu třeba chybí volání funkce TiskCSV()...
6. 5. 2016 12:34:46
https://webtrh.cz/diskuse/stazeni-csv-v-php/#reply1194180
Taps
verified
rating uzivatele
(118 hodnocení)
6. 5. 2016 13:26:23
tady je ta stránka http://codepad.org/ZbNuWDKb do toho CSV by se měla dostat jen proměnná $obsah
6. 5. 2016 13:26:23
https://webtrh.cz/diskuse/stazeni-csv-v-php/#reply1194179
TomasX
verified
rating uzivatele
(4 hodnocení)
6. 5. 2016 17:33:28
jasně, teď začátek je špatně, ten řádek s meta totiž způsobí, že se odešlou hlavičky a prohlížeč dostane informaci, že má zobrazit html obsah.
Kód je hodně nepřehledný a špatný, ale to asi víš :). Nechce se mi ho celý luštit a číst. Proč tam ten $obsah vykresluješ při tisku?
Osobně bych asi nejprve zkusil upravit ten začátek a CSV/PDF dal před vše ostatní:
Tohle by mělo zajistit, že když stránka dostane parametr print=1 a typ=csv|pdf, spustí tvůj kód na export, který zároveň volá exit a ukončí zpracování dalších příkazů, takže to meta se již nepošle. Hlavně to musí být na začátku kvůli odeslaným hlavičkám, kdybys měl zapnuté php warningy, napsalo by ti to, že headers already sent...
6. 5. 2016 17:33:28
https://webtrh.cz/diskuse/stazeni-csv-v-php/#reply1194178
Taps
verified
rating uzivatele
(118 hodnocení)
7. 5. 2016 08:17:11
Diky moc vyzkousim, ten kod pracuje tak ze nejdrive vybere cizi slovicko a nasledne se pak k tomu slovicku vyberou ceske preklady a tuto kombinaci pak vypisuji..zatim me nenapadla nejaka myslenka jak ten php balast zefektivnit..mas nejaky tip? Rad se priucim
7. 5. 2016 08:17:11
https://webtrh.cz/diskuse/stazeni-csv-v-php/#reply1194177
TomasX
verified
rating uzivatele
(4 hodnocení)
7. 5. 2016 09:21:02
kup si knížku o programování a nauč se programovat, to je nejlepší tip :). Obecně je potřeba co nejvíce oddělit html od kódu, tj. neprve si dopředu připravit data do nějakých proměnných a poté je pouze dosadit do html kódu, klidně v jedném souboru, jak to máš.
Zapni si error_reporting a oprav všechny warningy, které ti to vypíše, ověř dopředu vstupní data než je použiješ, tím se vyhneš budoucím problémům a chybám či neočekávanému chování.
Kombinace českých a anglických slov je hodně nepřehledná, je dobré se držet jednoho jazyku a v programování to bývá v drtivé většině angličtina.
Snaž se kód rozdělovat do funkcí tak, aby ti stačilo na šířku cca 120 znaků, ty dlouhé nudle do boku akorát zhoršují přehlednost a snáž uděláš chyby.
7. 5. 2016 09:21:02
https://webtrh.cz/diskuse/stazeni-csv-v-php/#reply1194176
Taps
verified
rating uzivatele
(118 hodnocení)
7. 5. 2016 11:31:19
Diky , vim ze idealni je pouzivat mvc, to je podle me cesta spravnym smerem, snad k tomu casem prejdu
7. 5. 2016 11:31:19
https://webtrh.cz/diskuse/stazeni-csv-v-php/#reply1194175
TomasX
verified
rating uzivatele
(4 hodnocení)
8. 5. 2016 03:17:07
mvc není vždy ideální a jediná možná cesta, třeba v tomhle případě by mi to připadalo zbytečně složité, máš jednu stránku v jednom soubor, stačí jen lépe oddělit logiku a může to být ok.
8. 5. 2016 03:17:07
https://webtrh.cz/diskuse/stazeni-csv-v-php/#reply1194174
gully
verified
rating uzivatele
15. 7. 2018 14:13:15
Pardon, dal jsem sem omylem příspěvek, prosím o smazání, jeli-to možné.
15. 7. 2018 14:13:15
https://webtrh.cz/diskuse/stazeni-csv-v-php/#reply1194173
Pro odpověď se přihlašte.
Přihlásit