Výsledky 1 až 21 z 21

Téma: [PHP] Počet stažení souboru ze stránky, jak?

  1. #1
    Senior Member Avatar uživatele D_a_v_i_d
    Založen
    08.12.2002
    Bydliště
    Praha
    Věk
    44
    Příspěvky
    5 153
    Vliv
    358

    Standardní [PHP] Počet stažení souboru ze stránky, jak?

    Mám jednu stránku, kde je sekce Download... No a potřeboval bych udělat skript, kterej mi zajistí "počítání" downloadů, tedy takový to abych tam měl

    "Soubor xxx, staženo 135x", například...

    Nikdy jsem to nedělal, jediný, co mě napadlo, je udělat to tak, že ten odkaz by nesměroval přímo na ten soubor, ale bylo to přes nějakou "mezistránku" a při přístupu na ní by to někam (soubor, DB) uložilo hodnotu toho počtu stažení zvětšenou o jednu... Jestli teda chápete, co myslím ... Nicméně tohle mi přijde dost kostrbatý... Nevíte někdo o něčem elegantnějším? Jinak to jak jsem napsal "mám stránku" je trošku zavádějící, ta stránka je známýho a rád by to řešil přes PHP (JavaScript mu vůůbec nic neříká, takže případná řešení v tomto jazyce - děkuji, ale nechci )

    Dik za pomoc!
    A Jedi gains power through understanding; a Sith gains understanding through power

    Destkop machine: Intel Core i5 2400/MSI P67A-C45 /2x4 GB DDR3 1333 MHz/Sapphire HD6790/22" LCD HP w2216/DSL 8MBit connected
    Na filmy v posteli: Lenovo IdeaPad S9e/1,6 GHz Intel Atom, 1 GB RAM, 80 GB HDD
    Na práci: Dell E5500/T9550 2,66 GHz Intel, 3 GB RAM, 120 GB HDD

  2. #2

    Standardní

    Pro binarni soubory to delam cca takhle
    Kód:
    <?php
    include "connection.php";
    MySQL_Query&#40;"UPDATE data SET download=download+1 WHERE id=".$_GET&#91;DataId&#93;&#41;;
    
    header&#40;"Content-type&#58; octet/stream"&#41;;
    header&#40;"Content-Disposition&#58; attachment; filename=".$_GET&#91;filename&#93;&#41;;
    
    readfile&#40;"data/".$_GET&#91;filename&#93;&#41;;
    
    ?>
    Pro textaky je zmenim hlavicky na

    Kód:
    header&#40;"Content-type&#58; text/plain"&#41;;
    header&#40;"Content-Disposition&#58; attachment; filename=".$_GET&#91;filename&#93;&#41;;
    I kdyz tech mime typu je nekolik dost podobny a u kazdeho dela kazdy prohlizec neco jineho :/ Ale tohle co jsem postl jsem pokusy zjistil jako nejvic kompatibilni se vsemi

  3. #3
    Senior Member Avatar uživatele D_a_v_i_d
    Založen
    08.12.2002
    Bydliště
    Praha
    Věk
    44
    Příspěvky
    5 153
    Vliv
    358

    Standardní

    OK. V connection.php je jen spojeni s databazi, spravne?
    A Jedi gains power through understanding; a Sith gains understanding through power

    Destkop machine: Intel Core i5 2400/MSI P67A-C45 /2x4 GB DDR3 1333 MHz/Sapphire HD6790/22" LCD HP w2216/DSL 8MBit connected
    Na filmy v posteli: Lenovo IdeaPad S9e/1,6 GHz Intel Atom, 1 GB RAM, 80 GB HDD
    Na práci: Dell E5500/T9550 2,66 GHz Intel, 3 GB RAM, 120 GB HDD

  4. #4

    Standardní

    Citace Původně odeslal D_a_v_i_d
    OK. V connection.php je jen spojeni s databazi, spravne?
    Jj

  5. #5

    Standardní

    čau,
    nějak mi to nejde zprovoznit...

    stahl jsem zdroják z http://www.jaknaweb.com/scripty=php=pocitadlo.php
    do HTML to vkládám takto:
    <p align="center"><font size="2"> <font size="3">XXXXXXX</font></font></p>
    <p align="center"><font size="3"> počet stažení </font><font face="Verdana,Arial" size="3">[
    1593 ] 544 KB </font></p>

    Jenže download.php odkazuje ještě na soubory
    include("config.php");
    include("specfce.php");
    include("myweb.php");
    include("sl.php");
    include($adrlayoutu);
    include("trlayout.php");
    a ty ten zdroják neobsahuje...
    Takže když to chci pustit vypíše to plno chyb (což je jasný).
    Nemá někdo z vás uvedené soubory, nebo fungující jiný zdrojový kód??
    Moc by mi to pomohlo... Díky za nápady

  6. #6

    Standardní

    Ktery z nich?

    To co jsem tu psal je plne funkcni, potrebujes neco navic?

  7. #7

    Standardní

    Citace Původně odeslal jedik
    Pro binarni soubory to delam cca takhle
    Kód:
    <?php
    include "connection.php";
    MySQL_Query&#40;"UPDATE data SET download=download+1 WHERE id=".$_GET&#91;DataId&#93;&#41;;
    
    header&#40;"Content-type&#58; octet/stream"&#41;;
    header&#40;"Content-Disposition&#58; attachment; filename=".$_GET&#91;filename&#93;&#41;;
    
    readfile&#40;"data/".$_GET&#91;filename&#93;&#41;;
    
    ?>
    Pro textaky je zmenim hlavicky na

    Kód:
    header&#40;"Content-type&#58; text/plain"&#41;;
    header&#40;"Content-Disposition&#58; attachment; filename=".$_GET&#91;filename&#93;&#41;;
    I kdyz tech mime typu je nekolik dost podobny a u kazdeho dela kazdy prohlizec neco jineho :/ Ale tohle co jsem postl jsem pokusy zjistil jako nejvic kompatibilni se vsemi
    tohle mas zkopirovany z nejakyho svyho webu ?
    Hrrrr, will you stop using people as human driven search engines? Google.com has all the answers you need.

  8. #8

  9. #9

    Standardní

    Citace Původně odeslal jedik
    2Fox: Jo mam.
    tyve a rika ti neco bezpecnost ?
    Kód:
    MySQL_Query&#40;"UPDATE data SET download=download+1 WHERE id=".$_GET&#91;DataId&#93;&#41;;
    Hrrrr, will you stop using people as human driven search engines? Google.com has all the answers you need.

  10. #10

    Standardní

    Ale trosku jo ale byl jsem moc liny

    Samo ze bych to mel prvni overit a ne brat primo z _GET, nebos myslel jeste neco jineho?

  11. #11

    Standardní

    Citace Původně odeslal jedik
    Ale trosku jo ale byl jsem moc liny

    Samo ze bych to mel prvni overit a ne brat primo z _GET, nebos myslel jeste neco jineho?
    mno tohle jsem mel namysli ... ono by tam bylo bejvalo i stacilo addslashes
    a jestli to mas na nezabezpecenym webserveru tak by bylo vhodny udelat i neco s tim
    readfile("data/".$_GET[filename]);


    asi mas predstavu co by se stalo kdybych ti to zavolal treba download.php?filename=../../../../../../../etc/passwd&DataId=0ELETE FROM data;
    Hrrrr, will you stop using people as human driven search engines? Google.com has all the answers you need.

  12. #12

    Standardní

    OK dik, byl jsem fakt jen moc liny a pak uz sem na to zapomel

  13. #13

    Standardní

    Citace Původně odeslal jedik
    Ktery z nich?

    To co jsem tu psal je plne funkcni, potrebujes neco navic?
    no nejde mi to...
    vyhodí mi to plno chyb a nevim co s tim..... že bych to zadával špatně?

  14. #14

    Standardní

    No bys tu musel napsat jake chyby abychom se pohnuli z mista

  15. #15

    Standardní

    Citace Původně odeslal jedik
    No bys tu musel napsat jake chyby abychom se pohnuli z mista
    Jo jasně chvilku jsem to zase zkoušel... ale furt nic! Vyhodí to:

    Warning: main(config.php) [function.main]: failed to open stream: No such file or directory in /DISK2/WWW/sofokless.com/www/download/dalsi/download.php on line 18
    Warning: main() [function.include]: Failed opening 'config.php' for inclusion (include_path='.') in /DISK2/WWW/sofokless.com/www/download/dalsi/download.php on line 18
    Warning: main(specfce.php) [function.main]: failed to open stream: No such file or directory in /DISK2/WWW/sofokless.com/www/download/dalsi/download.php on line 19
    Warning: main() [function.include]: Failed opening 'specfce.php' for inclusion (include_path='.') in /DISK2/WWW/sofokless.com/www/download/dalsi/download.php on line 19
    Warning: main(myweb.php) [function.main]: failed to open stream: No such file or directory in /DISK2/WWW/sofokless.com/www/download/dalsi/download.php on line 20
    Warning: main() [function.include]: Failed opening 'myweb.php' for inclusion (include_path='.') in /DISK2/WWW/sofokless.com/www/download/dalsi/download.php on line 20
    Warning: main(sl.php) [function.main]: failed to open stream: No such file or directory in /DISK2/WWW/sofokless.com/www/download/dalsi/download.php on line 21
    Warning: main() [function.include]: Failed opening 'sl.php' for inclusion (include_path='.') in /DISK2/WWW/sofokless.com/www/download/dalsi/download.php on line 21
    Warning: main() [function.include]: Failed opening '' for inclusion (include_path='.') in /DISK2/WWW/sofokless.com/www/download/dalsi/download.php on line 22
    Warning: main(trlayout.php) [function.main]: failed to open stream: No such file or directory in /DISK2/WWW/sofokless.com/www/download/dalsi/download.php on line 23
    Warning: main() [function.include]: Failed opening 'trlayout.php' for inclusion (include_path='.') in /DISK2/WWW/sofokless.com/www/download/dalsi/download.php on line 23
    Fatal error: Call to undefined function dbcon() in /DISK2/WWW/sofokless.com/www/download/dalsi/download.php on line 26

  16. #16

    Standardní

    Citace Původně odeslal jedik
    Ktery z nich?

    To co jsem tu psal je plne funkcni, potrebujes neco navic?
    hmm, nic tě nanapadá čím by to mohlo být?

  17. #17

    Standardní

    No ja myslel ze zkousis ten muj skript, ale asi ne. Nevim ktery zkousis ty

    Zitra tu zkusim dat muj upraveny skript, aby byl i bezpecnostni dustojnik spokojen

  18. #18

    Standardní

    Citace Původně odeslal jedik
    No ja myslel ze zkousis ten muj skript, ale asi ne. Nevim ktery zkousis ty

    Zitra tu zkusim dat muj upraveny skript, aby byl i bezpecnostni dustojnik spokojen
    jasně! budeš hodnej........

  19. #19

    Standardní

    Citace Původně odeslal sofokless
    Citace Původně odeslal jedik
    No ja myslel ze zkousis ten muj skript, ale asi ne. Nevim ktery zkousis ty

    Zitra tu zkusim dat muj upraveny skript, aby byl i bezpecnostni dustojnik spokojen
    jasně! budeš hodnej........
    hmmm tři dny a nic sem se těšil...

  20. #20

  21. #21

    Standardní

    Tak sem se k tomu dostal az dnes

    Kód:
    <?php
    include "connection.php"; // konexe na db
    
    if &#40; empty&#40;$_GET&#91;id&#93; || !is_numeric&#40;$_GET&#91;id&#93;&#41; &#41;&#123;
       die&#40;"&dagger; Pekny pokus, ale zkus to jinak &dagger;"&#41;;
    &#125;
    
    
    $rr = MySQL_Query&#40;"SELECT hitrate, file, name FROM files WHERE id=".$_GET&#91;id&#93;&#41;;
    
    if &#40;mysql_num_rows&#40;$rr&#41; == 0&#41;
       die&#40;"Neplatne Id souboru!
    \n<a href=\"index.php\">Návrat na hlavní stránku</a>"&#41;;
    
    $r = mysql_fetch_array&#40;$rr&#41;;
    
    $nv = $r&#91;'hitrate'&#93; + 1;
    
    MySQL_Query&#40;"UPDATE files SET hitrate = ".$nv." WHERE id=".$_GET&#91;id&#93;&#41;;
    
    
    header&#40;"Content-type&#58; octet/stream"&#41;;
    header&#40;"Content-Disposition&#58; attachment; filename=".strtr&#40;$r&#91;'name'&#93;," ","_"&#41;&#41;;
    
    if &#40;!file_exists&#40;"files/".$r&#91;'file'&#93;&#41;&#41;&#123;
       mail&#40;'pepa@kocourkov.cz', 'Soubor nenalezen', 'Soubor neexistuje&#58; '.$r&#91;'file'&#93;, ''&#41;;
       exit;
    &#125;
    else
        readfile&#40;"files/".$r&#91;'file'&#93;&#41;;
    
    ?>
    Trosku jsem to pomenil na obecne schema tak doufam, ze sem neco nezapomel.

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •