blob: 136cc35cc4a390b38cb00fa94db396c42fed369f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
<?php
require_once('../includes/config.php');
//Pas d'accès direct
if(!isset($_GET['id']) || $_GET['id'] == '') {
header('Location: '.SITEURL.'/torrents.php?action=nodirect');
exit;
}
//on détermine l'id du fichier
$fid = html($_GET['id']);
// Si une session membre est lancée, on détermine l'id du membre
if(isset($_SESSION['username'])) {
$stmt = $db->prepare('SELECT * FROM blog_members WHERE username = :username');
$stmt->execute(array(':username' => html($_SESSION['username'])));
$row = $stmt->fetch();
$uid = $row['memberID'];
}
else {
// s'il n'y a pas de session, c'est donc un visiteur avec l'id 32
$uid = 32;
}
/*
//on recherche le hash dans la base xbt_files
$stmt1 = $db->prepare('SELECT * FROM xbt_files WHERE fid = :fid');
$stmt1->execute(array(':fid' => $fid));
$row1 = $stmt1->fetch();
*/
//on recherche le torrent dans la base blog_posts_seo
$stmt2 = $db->prepare('SELECT * FROM blog_posts_seo WHERE postID = :postID');
$stmt2->execute(array(':postID' => $fid));
$row2 = $stmt2->fetch();
if($row2['postID'] == '') {
header('Location: '.SITEURL.'/torrents.php?action=noexist');
}
$torrent = $row2['postTorrent'];
$torrentfile = $REP_TORRENTS.'/'.$torrent;
// On décode le fichier torrent
$fd = fopen($torrentfile, "rb");
$alltorrent = fread($fd, filesize($torrentfile));
$array = BDecode($alltorrent);
fclose($fd);
//On cherche le pid
$stmt3 = $db->prepare('SELECT * FROM blog_members WHERE memberID = :uid');
$stmt3->execute(array(':uid' => $uid));
$row3 = $stmt3->fetch();
// Il n'y a que les membres + les visiteurs qui peuvent télécharger
// pas de userid = 0
if ($row3['pid'] == '') {
header('Location: '.SITEURL);
}
if ($row3['pid'] == '00000000000000000000000000000000') {
$pid = '00000000000000000000000000000000';
}
else {
$pid = $row3['pid'];
}
$tracker_announce_urls = SITEURL.':'.ANNOUNCEPORT.'/announce';
// On construit la nouvelle announce avec le pid (passkey ...)
$array["announce"] = SITEURL.":".ANNOUNCEPORT."/".$pid."/announce";
$alltorrent=BEncode($array);
// On construit le header
header("Content-Type: application/x-bittorrent");
header('Content-Disposition: attachment; filename="['.SITENAMELONG.']'.$torrent.'"');
print($alltorrent);
if(isset($_SESSION['username'])) {
write_log('<span style="color:blue; font-weight:bold;">Download torrent :</span> '.html($row2['postTitle']).' par '.html($_SESSION['username']), $db);
}
else {
write_log('<span style="color:blue; font-weight:bold;">Download torrent :</span> '.html($row2['postTitle']).' par Visiteur', $db);
}
?>
|