Autor Zpráva
Inpocasi
Profil
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
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
Přes databázi jsem to ani nechtěl dělat
Alphard
Profil
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
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
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í.
Toto téma je uzamčeno. Odpověď nelze zaslat.