Autor | Zpráva | ||
---|---|---|---|
Inpocasi Profil |
#1 · Zasláno: 7. 10. 2006, 15:21:43
Jak udělat aby po kliknutí na odkaz download se zvětšíla proměná a o jedna (nevím jak to zabudovat do adresy toho odkazu, možná přes tlačítko, ale to beru jako druhé řešení).
|
||
Joker Profil |
#2 · Zasláno: 7. 10. 2006, 15:47:35
Odkaz download povede na PHP skript, který zvětší příslušnou proměnnou.
Pokud to budete mít přes databázi, tak by to zjednodušeně mohlo vypadat nějak takhle: download.php?soubor=jmeno.pripona download.php: $soubor = $_GET["soubor"]; if(!file_exists($soubor)) die("Soubor neexistuje"); // připojit k databázi mysql_query("UPDATE pocitadlo SET pocet=pocet+1 WHERE jmeno='$soubor'"); if(mysql_affected_rows()==0){ mysql_query("INSERT INTO pocitadlo(jmeno,pocet) VALUES($soubor, 1)"); } //následoval by download souboru |
||
Inpocasi Profil |
#3 · Zasláno: 7. 10. 2006, 16:16:07
Přes databázi jsem to ani nechtěl dělat
|
||
Alphard Profil |
#4 · Zasláno: 7. 10. 2006, 16:23:40
tak stejnym způsobem, ale se zápisem do souboru:
otevře se soubor, přečte hodnota, zvětší o 1, zapíše, zavře se soubor a pokračuje se ve scriptu |
||
Joker Profil |
#5 · Zasláno: 7. 10. 2006, 16:51:46
Inpocasi
Tak přes soubor, no... ale s tím je víc práce, zatímco v databázi si pěkně využijete WHERE podmínku u SQL dotazu, u souboru si to musíte napsat ručně. Takže si soubor zorganizujete třeba po řádcích a na každém řádku "název souboru mezera počet stažení", pak napíšete funkci, která v cyklu projde soubor a přečte ze správného řádku hodnotu, pak ještě funkci, která ze souboru odstraní ten původní řádek a nahradí ho řádkem s novou hodnotou a nakonec nejjednodušší, přidání nového řádku na konec souboru, pokud tam ještě není. Právě proto radši používám databázi anebo XML struktury, protože hlavně u složitějších věcí (jako třeba příspěvky na webu a podobně) je práce s pevnou strukturou souboru dost vopruz. Pak někdo někde něco blbě vyplní, skript tam kvůli tomu vloží o řádek víc nebo míň a celé se to rozsype, toho jsem si už taky užil :-) |
||
Acci Profil |
#6 · Zasláno: 7. 10. 2006, 18:53:24 · Upravil/a: Acci
Přes databázi jsem to ani nechtěl dělat
To jsi měl napsat již v prvním příspěvku. U souborů je navíc složitější situace kvůli nutnosti řešit atomicitu operací. |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0