-
Salve a tutti,
sto ancora lavorando al mio progetto bit torrent basato solo su tracker esterni. Lo script che sto progettando deve permettere l'upload di un file, la conseguente apertura e la decodifica delle informazioni al suo interno per inserirle in database. Ecco il codice dello script...
Modulo da compilare:
[code:1:11f6fc58d0]
<html>
<head>
<title>Upload</title>
</head>
<body>
<form method="POST" action="upload.php">
<p>Nome:<input type="text" name="name" size="20"></p>
<p>Inserito da: <input type="text" name="upper" size="9"></p>
<p>Indirizzo del file:<input type=file name=source_file size=20></p>
<p>Descrizione: <input type="text" name="descr" size="39"></p>
<p>Tipo: <select size="1" name="category">
<option>divx</option>
<option>musica</option>
<option>giochi</option>
<option>software</option>
<option>libri</option>
<option>anime</option>
<option>vario</option>
</select></p>
<p><input type="reset" value="Reimposta" name="B2"><input type=submit name=btnSubmit value=Invia size=20 style='border: 1px solid #ff6600'></td></p>
</form>
</body>
</html>
[/code:1:11f6fc58d0]
ed ecco il codice della pagina upload.php:
[code:1:11f6fc58d0]
<?php
require_once("BDecode.php");
require_once("BEncode.php");
include ("./config.php");
copy( $source_file,$destination_file);
function hex2bin($hex)
{
$result = '';
for ($i = 0; $i < strlen($hex); $i += 2)
$result .= chr(hexdec(substr($hex,$i,2))& #41;;
return $result;
}
function escapeURL($url)
{
$ret = "";
$i=0;
while (strlen($url) > $i)
{
$ret .= "%".$url[$i].$url[$i + 1];
$i+=2;
}
return $ret;
}
function add_entry()
{
global $info_hash, $name, $filename, $descr, $scrape, $category, $added, $seeders, $leechers, $upper;
echo ("".n.n.n);
$entered = FALSE;
$add = "INSERT INTO $table ( info_hash, name, filename, descr, scrape, category, added, seeders, leechers, upper) VALUES ('$info_hash', '$name', '$filename', '$descr', '$scrape', '$category', '$added', '$seeders', '$leechers', '$upper')";
$added = mysql_query($add) or die("Could not add entry".n);
if (!$added) {
echo ("Errore: impossibile inserire il torrent".n);
$entered = FALSE;
exit;
}
$fd = fopen("$source_file_name", "r");
$stream = fread($fd, filesize("$source_file_name") 1;;
fclose($fd);
$torrent = BDecode($stream);
$parts = parse_url($torrent["announce"	 3;);
$scrape = str_replace("announce", "scrape",$torrent["announce&quo t;]);
$tracker = "http://".$parts["host"]."/";
$info_hash = sha1(BEncode($torrent["info" ]));
$scrape2 = "".$scrape."?info_hash=".escap eURL($info_hash)."";
$added= Date("M d, Y");
$seeders= "".$torrent2['files'][hex2bi n($info_hash)]['complete'].&qu ot;";
$leechers= "".$torrent2['files'][hex2bi n($info_hash)]['incomplete'].& quot;";
//SCRAPE
$fp2 = fopen($scrape2, "r");
if (!$fp2)
die("Error opening connection.");
$stream2 = fread($fp2,204800);
fclose($fp2);
$torrent2 = BDecode($stream2);
$seeders= "".$torrent2['files'][hex2bi n($info_hash)]['complete'].&qu ot;";
$leechers= "".$torrent2['files'][hex2bi n($info_hash)]['incomplete'].& quot;";
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
add_entry();
?>
[/code:1:11f6fc58d0]
Nel file config php, oltre ai dati mysql ho inserito:
[code:1:11f6fc58d0]
$dir= "";
$destination_file = $dir.$source_file_name;
[/code:1:11f6fc58d0]
Gli altri 2 files inclusi sono delle librerie che vanno lasciare così come sono...al momento dell'upload ricevo il seguente errore:
[code:1:11f6fc58d0]
Parse error: parse error, unexpected $end in e:\domains\tresuvesdobles.com\wwwroot\pcstore\ torrentstore\upload.php on line 75[/code:1:11f6fc58d0]
Non riesco proprio a capire a cosa sia dovuto. E' da specificare che il file non viene copiato nella cartella. Inoltre tengo a sottolineare che questo script non verrà utilizzato sullo spazio altervista perchè il blocco della comunicazione server-server non mi permette di aprire la pagina $scrape2. A cosa è dovuto questo errore? vi prego aiutatemi!
Grazie mille
Androc
-
se ho visto bene, manca la parentesi graffa di chiusura della funzione add_entry()
:wink: