ProgramatorCZ  |   Diskusní fórum  |   ASMDprojekt  |   Vtipy  |   JavaScript
Spolupracujeme:   WebGuru  |   Komplikátor  |   MinaSite Přidat k oblíbeným položkám  |   Nastavit jako výchozí stránku
Časopis
Hlavní stránka
Assembler
C,C++
Delphi
DOTNET
Flash
HTML
JavaScript
Knihy
O Internetu
Pascal
PHP
Pro. programátor
Programy
Python
Tiskové zprávy

Projekty

JScript Planet
ProProjekty

Služby

Monitoring

Informace
Redakce
O časopisu
Odkazy
Nový redaktor


ISSN 1213-7359

Šéfredaktor:
Jan Sova

Zástupci šéfredaktora
Frerenzy Dawid
Krásenský David

Šéfredaktoři rubrik
Michal Chalupník
Formánek Jiří
Pavel Aleš
Sojka Zdeněk
Petr Rympler

Administrátor
Jan Sova

Naše ikonka
MinaSite
Komplikátorovy Stránky
TOPlist
GALACTICA

Časopis používá redakční systém Sova-Press.



Počítadlo stažení souborů. v rubrice PHP

Dnes si vytvoříme download počítadlo za použití PHP a MySQL.

Všechna nastavení se budou nacházet v souboru nastaveni.php. Nezapomeňte si je upravit podle svých podmínek.

<?
/*************************************************************
                Soubor: nastaveni.php                         
                Funkce: nastavení důležitých údajů            
*************************************************************/

/* Nastavení údajů potřebných pro připojení k SQL-serveru. */
$sql_server "localhost";
$sql_uzivatel "user";
$sql_heslo "";
$databaze "stats";

/* Název tabulky, ve které se budou nacházet údaje. */
$nazev_tabulky "download";

/* Stanovení cesty, kde se nachází soubory. */
$cesta_ke_souborum "soubory";

/* Definování funkce, která nám vypíše chybu. */
function chyba(){
    echo 
"Nastala chyba: ".MySQL_ErrNo();
    echo 
"<br>";
    echo 
"Popis chyby: ".MySQL_Error();
    exit;
}

?>

Hnacím motorem našeho programu bude soubor download.php. Zde se nachází všechny důležité akce.

<?
/*************************************************************
                Soubor: download.php                          
                Funkce: zobrazení stránky s počítadlem        
*************************************************************/

include("nastaveni.php");
/* Připojení k SQL-serveru. */
@$pripojeni MySQL_Connect($sql_server$sql_uzivatel$sql_heslo) or chyba();
/* Vybereme si databázi. */
MySQL_Select_DB($databaze);
/* Vyberu vše z tabulky. */
$dotaz_download MySQL_Query("SELECT * FROM $nazev_tabulky") or chyba();
/* Zjistíme počet záznamů. */
$pocet_download MySQL_Num_Rows($dotaz_download) or chyba();

/* Pokud není $stahuj prazdna, poslu hlavicku. */
if ($stahuj != ""){
    
header("location: $cesta_ke_souborum/$stahuj");
/* Upravim pocet stazeni +1 */
$dotaz_pocet MySQL_Query("SELECT * FROM $nazev_tabulky WHERE soubor='$stahuj'") or chyba();
$pocet_stazeni = (MySQL_Result($dotaz_pocet0"stazeni")+1);
MySQL_Query("UPDATE $nazev_tabulky SET stazeni = '$pocet_stazeni' WHERE soubor='$stahuj'") or chyba();
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Download počítadlo</title>
    <style type="text/css">
    table{
        border: 1px solid;
        border-color: #005D29;
    }
    
    a{
        color: blue;
        font-size: 14px;
    }
    
    a:hover{
        color: red;
        font-size: 14px;
    }
    </style>
</head>
<body>
<table align="center" width="700" cellspacing="0">
<tr bgcolor="#EFFBE7">
    <th>Soubor</th>
    <th>Rubrika</th>
    <th>Velikost</th>
    <th>Datum</th>
    <th>Verze</th>
    <th>Popis</th>
    <th>Staženo</th>
    
</tr>
<?
/* Vypíšu data. */
for($i=0;$i<$pocet_download;$i++){
    echo 
"<tr>\n";
    echo 
"\t<td align=center><a href=\"download.php?stahuj=".MySQL_Result($dotaz_download$i"soubor")." \"> ".MySQL_Result($dotaz_download$i"soubor")."</a></td>\n";
    echo 
"\t<td align=center>".MySQL_Result($dotaz_download$i"rubrika")."</td>\n";
    echo 
"\t<td align=center>".MySQL_Result($dotaz_download$i"velikost")."</td>\n";
    echo 
"\t<td align=center>".MySQL_Result($dotaz_download$i"datum")."</td>\n";
    echo 
"\t<td align=center>".MySQL_Result($dotaz_download$i"verze")."</td>\n";
    echo 
"\t<td align=center>".MySQL_Result($dotaz_download$i"popis")."</td>\n";
    echo 
"\t<td align=center>".MySQL_Result($dotaz_download$i"stazeni")."</td>\n";
    echo 
"</tr>\n";
}
?>
</table>
<p align="center"><a href="pridej.php">Přidat nový soubor</a>.</p>

</body>
</html>

Vložení nového záznamu nám umožní soubor pridej.php.

<?
if ($pridat == "ano" && $soubor != "" && $rubrika != "" && $velikost != ""){
    Include(
"nastaveni.php");
    
/* Připojení k SQL-serveru. */
    
@$pripojeni MySQL_Connect($sql_server$sql_uzivatel$sql_heslo) or chyba();
    
/* Vybereme si databázi. */
    
@MySQL_Select_DB($databaze);
    
/* Vložím do tabulky. */
    
@MySQL_Query("INSERT INTO $nazev_tabulky VALUES ('', '$soubor', '$rubrika', '$velikost', '$datum', '$verze', '$popis', '0')") or chyba();
    
Die(Header("Location: download.php"));
}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Přidání nového souboru do sekce download</title>
    <style type="text/css">
    input{
        border: 1px solid;
        border-color: #005D29;
        background-color: #EFFBE7;
    }
    
    textarea{
        border: 1px solid;
        border-color: #005D29;
        background-color: #EFFBE7;
    }
    
    </style>
</head>
<body>
<h3 align="center">Přidání nového záznamu do sekce download</h3>
<form method="post">
<table align="center" width="400">
<tr>
    <td>Soubor:</td>
    <td><input type="Text" name="soubor"></td>
</tr>
<tr>
    <td>Rubrika:</td>
    <td><input type="Text" name="rubrika"></td>
</tr>
<tr>
    <td>Velikost:</td>
    <td><input type="Text" name="velikost"></td>
</tr>
<tr>
    <td>Datum:</td>
    <td><input type="Text" name="datum" value="<? echo Date("j.m.Y");?>"></td>
</tr>
<tr>
    <td>Verze:</td>
    <td><input type="Text" name="verze" value="1.0.0"></td>
</tr>
<tr>
    <td>Popis:</td>
    <td><textarea name="popis" rows="5"></textarea></td>
</tr>
<tr>
    <input type="hidden" name="pridat" value="ano">
    <th colspan="2"><input type="Submit" value="  Přidat  "></th>
</tr>
</table>
</form>

</body>
</html>

A nakonec jen zdrojový kód tabulky.


CREATE TABLE download (
  id int(11) NOT NULL auto_increment,
  soubor varchar(120),
  rubrika varchar(20),
  velikost varchar(40),
  datum varchar(20),
  verze varchar(10),
  popis varchar(255),
  stazeni int(11),
  PRIMARY KEY  (id)
);

INSERT INTO download VALUES (1, 'test.zip', 'PHP', '1,5KB', '20.1.2002', '1.0.0', 'Jednoduché download počítadlo.', 10);
INSERT INTO download VALUES (2, 'download.zip', 'PHP', '1,59KB', '19.01.2002', '1.0.0', 'Jednoduché počítadlo stažení.', 1);

Celý příklad si můžete stáhnout na adrese
http://tests.web3.cz/download.php?stahuj=download.zip

Autor: Petr Rympler e-mail: http://casopis.programator.cz/index.php?autor=peta@webguru.cz web: tests.web3.cz

Příspěvky ke článku

AHA ty odkazy nejdou nikde. 06.05.2002 11:08:44 Autor: Pavel Jakubisko
bez MySQL 08.05.2002 23:07:13 Autor: St0Rm
Počítadlo bez MySQL 11.05.2002 18:22:10 Autor: Paskal
Pocitadlo 12.05.2002 15:59:19 Autor: Petr Rympler
Přidat komentář

Poslední ze stejné rubriky

Dnes má svátek... v PHP
Práce se session
Online počet čtenářů
Grafické počítadlo návštěv v PHP
Anketa s vyhodnocením

Funkce ke článku
Přidat komentář

Nejnovější články
DirectX (7.) [2]
Kurz C/C++ (19.) [70]
DirectX (6.) [152]
Kurz C/C++ (18.) [136]
Kurz C/C++ (17.) [156]


O článku
Datum: 27.01.2002
Rubrika: PHP
Čtenářů: 606
Autor: Petr Rympler

Hodnocení článku:
Znamka: 2.5
Počet známek: 48
[1] [2] [3] [4] [5]

 


(c) Systém Jan Sova, Design David Krásenský a Jan Sova
Se svými dotazy či problémy se obracejte na diskusní fórum.
Časopis je součástí projektu Programator