Nová verze tohoto webu se nachází na www.tutorialy.com

homeforumTutorialy.com
 
Reklama
Počítadlo stažení
Počítadlo stažení
Počítadlo stažení
Vlastní script pro počítadlo stažení souboru v PHP
Autor: topekar | Kategorie: Tvorba webu > PHP | Zhlédnuto: 19302x |
Hodnocení: 2 | Komentáře (5) | Obtížnost: Uživatel | Vloženo: 18.4.2007

Existuje mnoho serverů, které Vám poskytnou zdarma počítadlo stažení nějakého souboru na Vašem webu, ale nejlepší je mít vlastní script, který máte na vlastním disku, můžete si ho upravit jak chcete, nikomu nic neplatíte.

K tomu, aby nám počítadlo fungovalo, budeme potřebovat MySQL databázi. Nejdříve si připravíme potřebnou databázovou tabulku s názvem down. Tabulka bude mít celkem čtyři sloupce: id – automatické číslování řádky nazev – název souboru odkaz – adresa ze kterého se bude soubor stahovat count – počet stažení

Kód pro vytvoření tabulky:

CREATE TABLE `down` (
  `id` int(11) NOT NULL auto_increment,
  `nazev` text character set cp1250 collate cp1250_czech_cs NOT NULL,
  `odkaz` text character set cp1250 collate cp1250_czech_cs NOT NULL,
  `count` int(10) NOT NULL default '0',
  KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ;

Dále si vytvoříme soubor down.php. Tento soubor nám obstará přesměrování na souboru/stránku, kterou jsme si uložili do databáze.

<?php
$db_host = "localhost";    //vlozte adresu serveru Mysql
$db_user = "";             //prihlasovací jméno
$db_password = "";         //heslo
$db_name = "";             //jmeno databaze

$id = $_GET['id'];
if($_GET['id']) { /*Pokud bylo z adresní řádky přijmuto ID, provede se
podmínka*/
//Připojení k databázi
mysql_connect($db_host,$db_user,$db_password) or die(mysql_error());
mysql_select_db($db_name) or die(mysql_error());

$query = mysql_query("SELECT * FROM `down` WHERE `id`='".$id."'");
//Vyber z databáze řádku, kde id=$id
$r = mysql_fetch_array($query); /*Načtení informací z databáze do polí
proměnné $r*/
Header("Location: ".$r["odkaz"]); //Přesměrování na adresu z databáze

mysql_query("UPDATE `down` SET count=(count+1) where `id`='".$id."'");
//Přičte do políčka count + 1
}
else { //Pokud ID neexistuje, vypíše, že soubor neexistuje
echo "Soubor neesixtuje. <a href='javascript:history.back();'>
Zpět</A>";
}
?>

Dále si vytvoříme soubor downadmin.php

<?
session_start(); //INICIALIZACE SESSION

//HESLO DO ADMINISTRACE SOUBORU
$moje_heslo = "1234";

// NASTAVENÍ PŘIPOJENÍ K DATABÁZI
$db_host = "";    //vlozte adresu serveru Mysql
$db_user = "";             //prihlasovací jméno
$db_password = "";         //heslo
$db_name = "";             //jmeno databaze

if(isset($_GET['login']) and $_GET['login'] == "ano"
and isset($_POST['heslo']) and $_POST['heslo'] == $moje_heslo){
/*Pokud jsou splněna všechna kritéria k přihlášení (tzn. heslo),
uloží se SESSION*/
$_SESSION['admin'] = "ano";
echo 'Přihlášení bylo úspěšné!';
}
if (isset($_GET['logout']) and $_GET['logout'] == "ano") {
/*Pokud se z adresní řádky přijme proměnná logout a má obsah "ano",
vyprázdní se proměnná*/
unset($_SESSION['admin']); //Vyprazdní promennou SESSION[admin]
echo 'Odhlášení bylo úspěšné!';
}

if(isset($_SESSION['admin']) and $_SESSION['admin'] == "ano"){

mysql_connect($db_host,$db_user,$db_password) or die(mysql_error());
//Připojení k databázi
mysql_select_db($db_name) or die(mysql_error());
//Výběr databáze

// Nastavení kódování spojení s databází na cp1250
mysql_query("SET CHARACTER SET 'cp1250';");
mysql_query("SET character_set_results='cp1250'");
mysql_query("SET character_set_client='cp1250'");

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1250" />
<title>Administrace souborů</title>
<style type="text/css">
<!--
.inputext{
border:#000000 1px solid;
}
FIELDSET{
border:#FF6600 1px solid; font-family:Arial, Helvetica, sans-serif;
font-size:10px;
}
-->
</style>
</head>
<body>
<fieldset>
<legend>Přidat soubor </legend>
<?
$nazev =  $_POST['nazev'];
$odkaz =  $_POST['odkaz'];

if(isset($_POST['nazev']) and isset($_POST['odkaz'])) { /*Pokud je
//proměnná nazev, odkaz předána metodou POST, uloží se údaje z
formuláře*/

mysql_query("INSERT INTO `down` (nazev, odkaz) VALUES ('".$nazev."',
'".$odkaz."')"); //Vložení záznamu do databáze
echo 'Záznam byl přidán<br /> <a href="downadmin.php">Přidat další
</a>';
}
else {  /*Pokud ovšem není proměnná nazev, odkaz předána metodou POST,
zobrazí se formulář*/
?>
<form method="post">
Název souboru:
<input type="text" name="nazev" class="inputext" /><br />
Adresa souboru:
<input type="text" name="odkaz" class="inputext" />
<input type="submit" value="Pridat">
</form>
<? } //Konec podmínky ?>

</fieldset>

<fieldset>
<legend>Administrace souborů </legend>
<?php
if(isset($_GET['id'])) { /*Pokud přijmeme z adresní řádky proměnnou
ID, smaže rádek s id=$id*/
$id = $_GET['id'];
mysql_query("DELETE FROM `down` WHERE `id`='".$id."'");
echo "Záznam byl smazán";
}
echo '<table bgcolor="#FF6600" width="80%" border="0"
style="border:1px #000000 solid">';

$result = mysql_query("SELECT * FROM `down` ORDER BY `id` DESC");
//Vybere všechny řádky z databáze, řaď podle ID
while($r=mysql_fetch_array($result)) {  /*Vypíše všechny řádky
tabulky `down`*/
echo '<tr>
      <td class="styl2" width="408">
      <a href="'.$r["odkaz"].'">'.$r["nazev"].'</a></td>
      <td class="styl2" width="76">
      <a href="downadmin.php?id='.$r["id"].'">
      <img src="http://1.im.cz/l/ico/del.gif" border="0">
      <b>smazat</b></a></td>
      <td>Staženo:<b>'.$r["count"].'</b>x
      </td>
      <td>
      Odkaz pro stažení: <b><u>down.php?id='.$r["id"].'</u></b>
      </td>
      </tr>';
                                     }
?>
</table>
</fieldset>
<br /><a href="downadmin.php?logout=ano">Odhlásit se</a>
</body>
</html>
<? }
else {
echo '<form action="downadmin.php?login=ano" method="post">
Heslo: <input type="password" name="heslo" /> <input type="submit"
value="Prihlasit" />
</form>
';
}
?>

Tento soubor nám slouží jako administrace souborů. Vše je popsáno v komentářích. Ukázku naleznete zde a oba soubory si můžete stáhnout zde. Pro přihlášení do administrace zadejte heslo 1234. Toto heslo se mění přímo v souboru downadmin.php.


Hodnocení tutoriálu: 2 (hodnotilo 15 uživatelů)

Ohodnoťte tutoriál (jako ve škole):

Tutorialy.com © 2006 Marek Čapla & Filda | výměna odkazů | mapa webu | RSS zdroj | PageRank: 4 | ISSN 0322-9289

Online flash hry