Co zrobić, gdzie wstawić poniższe kody?#
Potrzebna nam będzie baza kodów do której wstawimy kody oraz baza z opisanymi plikami do ściągnięcia. Tworzymy następujące tabele:
create table kody2(
id int(8) not null auto_increment primary key,
kod varchar(8) not null,
aktywowano varchar(20) not null default '0'
);
create table pliki2(
id int(8) not null auto_increment primary key,
nazwa_pliku varchar(50) not null,
opis varchar(200) not null
);
Funkcje w pliku, który włączamy do ston z download za pomocą funkcji require() lub include():
<?php
session_name("nazwa_sesji");
session_start();
mysql_connect("host_bazy_danych", "uzytkownik_bazy", "haslo_uzytkownika_bazy_danych");
mysql_select_db("nazwa_bazy_danych");
//bezpośrednia ścieżka do katalogu w którym znajdują się pliki do ściągnięcia
$pathfiles = "/var/lib/apache/htdocs/pliki";
//tablica powinna zawierać definicję content-type dla wszystkich rodzajów plików
//występujących w bazie danych
$content_types = array(
"zip" => "application/x-zip",
"pdf" => "application/pdf",
"doc" => "application/msword"
);
function aktywujKod($dla_kodu){
$qAktywuj = "UPDATE kody2 SET aktywowano=UNIX_TIMESTAMP() WHERE kod='".$dla_kodu."'";
$aAktywuj = mysql_query($qAktywuj);
$_SESSION['aktywny'] = $dla_kodu;
}
function zniszczZmienna(){
unset($_SESSION['aktywny']);
}
function sprawdzKod($kod){
$qKod = "SELECT * FROM kody2 WHERE kod='".$kod."'";
$aKod = mysql_query($qKod) or die(mysql_error());
if(mysql_num_rows($aKod) != 1){
zniszczZmienna();
return false;
} else {
$data_aktywacji = mysql_result($aKod, 0, 'aktywowano');
$aktywny_przez = 60*60*24;
//60sek*60min.*24h doba w sekundach, można oczywiście ustawić inny okres ważności kodu
if($data_aktywacji == 0){
aktywujKod($kod);
return true;
} else {
if( (time() - $data_aktywacji) > $aktywny_przez){
zniszczZmienna();
return false;
} else {
$_SESSION['aktywny'] = $kod;
return true;
}
}
}
}
function listFiles(){
$listaPlikow = "";
global $pathfiles;
$qPliki = "SELECT * FROM pliki2 ORDER BY id";
$aPliki = mysql_query($qPliki) or die(mysql_error());
if(mysql_num_rows($aPliki) > 0){
$temp = "";
while($r = mysql_fetch_array($aPliki)){
if(file_exists($pathfiles."/".$r['nazwa_pliku'])){
$temp .= ""
.$r['nazwa_pliku']."".$r['opis']."";
}
}
if($temp != "") {
$listaPlikow = "";
}
} else {
$listaPlikow = "Ten dział nie zawiera plików! Albo inny komunikat";
}
return $listaPlikow;
}
?>
[/code]