Bravo List
Register
Go Back   > Bravo List > Source Code > Active Trackers > Torrent Trader
Reply
Thread Tools
  #1  
Old 24th January 2010, 12:50
alexzut alexzut is offline
Member
 
Join Date: May 2009
P2P
Posts: 3
Exclamation error upload
I appear this error
what to do?

Click image for larger version

Name:	Untitled.jpg
Views:	138
Size:	251.5 KB
ID:	2046
Attached Files
File Type: php torrents-upload.php (16.6 KB, 14 views)
File Type: php benc.php (6.1 KB, 3 views)
Reply With Quote
  #2  
Old 24th January 2010, 15:33
Phogo's Avatar
Phogo Phogo is offline
VIP
 
Join Date: Jan 2008
United Kingdom
Posts: 902
Default
Don't use free hosting...
Reply With Quote
  #3  
Old 3rd February 2010, 03:29
Nemerniq's Avatar
Nemerniq Nemerniq is offline
Member
 
Join Date: Mar 2009
P2P
Posts: 12
Talking
Try this ... on TTv2.0 working good

Before change please make backup your torrents-upload.php and benc.php

torrents-upload.php

Code:
<?
//
//  TorrentTrader v2.x
//    This file was last updated: 09/October/2007 by TorrentialStorm
//    
//    http://www.torrenttrader.org
//
//
require_once("backend/functions.php");
dbconn();

//ini_set("upload_max_filesize",$max_torrent_size);


// check access and rights
if ($site_config["MEMBERSONLY"]){
    loggedinonly();

    if($CURUSER["can_upload"]=="no")
        show_error_msg("Error","<font size=2>You do not have permission to upload.<br> Please click </font><a href=uploadapp.php><font color=red size=2><b>here</b></font></a> <font size=2>to fill out an uploader application.</font>",1);
    if ($site_config["UPLOADERSONLY"] && $CURUSER["class"] < 4)
        show_error_msg("Error","<font size=2>You do not have permission to upload.<br> Please click </font><a href=uploadapp.php><font color=red size=2><b>here</b></font></a> <font size=2>to fill out an uploader application.</font>",1);
}

$announce_urls = explode(",", strtolower($site_config["announce_list"]));  //generate announce_urls[] from config.php

if($takeupload == "yes") {
    require_once("backend/parse.php");

    //check form data
    foreach(explode(":","type:name") as $v) {
        if (!isset($_POST[$v]))
            $message = "Missing form data";
    }

    if (!isset($_FILES["torrent"]))
    $message = "Missing form data";

    $f = $_FILES["torrent"];
    $fname = unesc($f["name"]);

    if (empty($fname))
        $message = "Empty filename!";

    if ($_FILES['nfo']['size'] != 0) {
        $nfofile = $_FILES['nfo'];

        if ($nfofile['name'] == '')
            $message = "No NFO!";
            
        if (!preg_match('/^(.+)\.nfo$/si', $nfofile['name'], $fmatches))
            $message = "Invalid filename (not a .NFO).";

        if ($nfofile['size'] == 0)
            $message = "0-byte NFO";

        if ($nfofile['size'] > 65535)
            $message = "NFO is too big! Max 65,535 bytes.";

        $nfofilename = $nfofile['tmp_name'];

        if (@!is_uploaded_file($nfofilename))
            $message = "NFO upload failed";
            $nfo = 'no';
    }

    $descr = unesc($_POST["descr"]);

    if (!$descr)
        $descr = "No description given.";

    $langid = (0 + $_POST["lang"]);
$smalldescr = $_POST["description"];
    
    /*if (!is_valid_id($langid))
        $message = "Please be sure to select a torrent language";*/

    $catid = (0 + $_POST["type"]);

    if (!is_valid_id($catid))
        $message = "Please be sure to select a torrent category";

    if (!validfilename($fname))
        $message = "Invalid filename!";

    if (!preg_match('/^(.+)\.torrent$/si', $fname, $matches))
        $message = "Invalid filename (not a .torrent).";

        $shortfname = $torrent = $matches[1];

    if (!empty($_POST["name"]))
        $torrent = unesc($_POST["name"]);

        $tmpname = $f["tmp_name"];

    if (!is_uploaded_file($tmpname))
        $message = "The file was uploaded, but wasn't found on the temp directoy.";
    //end check form data

    if (!$message) {
    //parse torrent file
    $torrent_dir = $site_config["torrent_dir"];    
    $nfo_dir = $site_config["nfo_dir"];    

    //if(!copy($f, "$torrent_dir/$fname"))
    if(!move_uploaded_file($tmpname, "$torrent_dir/$fname"))
        show_error_msg("Error:","Error: File Could not be copied $tmpname - $torrent_dir - $fname",1);

    $TorrentInfo = array();
    $TorrentInfo = ParseTorrent("$torrent_dir/$fname");


    $announce = strtolower($TorrentInfo[0]);
    $infohash = $TorrentInfo[1];
    $creationdate = $TorrentInfo[2];
    $internalname = $TorrentInfo[3];
    $torrentsize = $TorrentInfo[4];
    $filecount = $TorrentInfo[5];
    $annlist = $TorrentInfo[6];
    $comment = $TorrentInfo[7];

/*
//for debug...
    print ("<BR><BR>announce: ".$announce."");
    print ("<BR><BR>infohash: ".$infohash."");
    print ("<BR><BR>creationdate: ".$creationdate."");
    print ("<BR><BR>internalname: ".$internalname."");
    print ("<BR><BR>torrentsize: ".$torrentsize."");
    print ("<BR><BR>filecount: ".$filecount."");
    print ("<BR><BR>annlist: ".$annlist."");
    print ("<BR><BR>comment: ".$comment."");
*/
    
    //check announce url is local or external
    if (!in_array($announce, $announce_urls, 1)){
        $external='yes';
    }else{
        $external='no';
    }

    //if externals is turned off
    if (!$site_config["ALLOWEXTERNAL"] && $external == 'yes')
        $message = "The .torrent you are trying to upload does not have this trackers announce url!";
    }
    if ($message) {
        @unlink("$torrent_dir/$fname");
        @unlink($tmpname);
        @unlink("$nfo_dir/$nfofilename");
        show_error_msg("Upload Failed", $message,1);
    }

    //release name check and adjust
    if ($name ==""){
        $name = $internalname;
    }
    $name = str_replace(".torrent","",$name);
    $name = str_replace("_", " ", $name);

    //upload images
    $maxfilesize = 512000; // 500kb

    $allowed_types = array(
        "image/gif" => "gif",
        "image/pjpeg" => "jpg",
        "image/jpeg" => "jpg",
        "image/jpg" => "jpg",
        "image/png" => "png"
    );

    for ($x=0; $x < 2; $x++) {
        if (!($_FILES[image.$x]['name'] == "")) {
            $y = $x + 1;

            if (!array_key_exists($_FILES[image.$x]['type'], $allowed_types))
                show_error_msg("Error","Invalid file type! Image $y",1);
            
            if (!preg_match('/^(.+)\.(jpg|gif|png)$/si', $_FILES[image.$x]['name']))
                show_error_msg("Invalid image", "This file TYPE is not image!",1);

            if ($_FILES[image.$x]['size'] > $maxfilesize)
                show_error_msg("Error","Invalid file size! Image $y - Must be less than 500kb",1);

            $uploaddir = "".$site_config["torrent_dir"]."/images/";
   
            $ifile = $_FILES[image.$x]['tmp_name'];
   
            $ret = mysql_query("SHOW TABLE STATUS LIKE 'torrents'");
            $row = mysql_fetch_array($ret);
            $next_id = $row['Auto_increment'];

            $ifilename = $next_id . $x . substr($_FILES[image.$x]['name'], strlen($_FILES[image.$x]['name'])-4, 4);

            $copy = copy($ifile, $uploaddir.$ifilename);

            if (!$copy)
                show_error_msg("Error","Error occured uploading image! - Image $y",1);

            $inames[] = $ifilename;

        }

    }
    //end upload images

    //anonymous upload
    $anonyupload = unesc($_POST["anonycheck"]); 
    if ($anonyupload == "yes") {
        $anon = "yes";
    }else{
        $anon = "no";
    }

    $ret = mysql_query("INSERT INTO torrents (filename, owner, name, descr, description, image1, image2, category, added, info_hash, size, numfiles, save_as, announce, external, nfo, torrentlang, anon) VALUES (".sqlesc($fname).", '".$CURUSER['id']."', ".sqlesc($name).", ".sqlesc($descr).", ".sqlesc($smalldescr).", '".$inames[0]."', '".$inames[1]."', '".$type."', '" . get_date_time() . "', '".$infohash."', '".$torrentsize."', '".$filecount."', ".sqlesc($fname).", '".$announce."', '".$external."', '".$nfo."', '".$langid."','$anon')");

    $id = mysql_insert_id();
    
    if (mysql_errno() == 1062)
        show_error_msg("Upload Failed", "Torrent already uploaded.", 1);

    //Update the members uploaded torrent count
    /*if ($ret){
        mysql_query("UPDATE users SET torrents = torrents + 1 WHERE id = $userid");*/
        
    if($id == 0){
        unlink("$torrent_dir/$fname");
        $message = "No ID. Server error, please report.";
        show_error_msg("Upload Failed", $message,1);
    }
    
    rename("$torrent_dir/$fname", "$torrent_dir/$id.torrent"); 

    if ($nfo == 'yes') { 
            move_uploaded_file($nfofilename, "$nfo_dir/$id.nfo"); 
    } 

    //EXTERNAL SCRAPE
    if ($external=='yes'){
        $tracker=str_replace("/announce","/scrape",$announce);    
        $stats             = torrent_scrape_url($tracker, $infohash);
        $seeders         = strip_tags($stats['seeds']);
        $leechers         = strip_tags($stats['peers']);
        $downloaded     = strip_tags($stats['downloaded']);

        mysql_query("UPDATE torrents SET leechers='".$leechers."', seeders='".$seeders."',times_completed='".$downloaded."',last_action= '".get_date_time()."',visible='yes' WHERE id='".$id."'"); 
    }
    //END SCRAPE

    write_log("Torrent $id ($name) was Uploaded by $CURUSER[username]");

    //insert email notif, irc, req notif, etc here
    
    //Uploaded ok message (update later)
    if ($external=='no')
        $message = "Torrent Uploaded OK:<BR><BR>".$name." was uploaded.<BR><BR>  Please remember to re-download so that your passkey is added and you can seed this torrent<BR><BR><a href=download.php?id=".$id.">Download Now</a><BR><a href=torrents-details.php?id=".$id.">View Uploaded Torrent</a><BR><BR>";
    else
        $message = "Torrent Uploadeded OK:<BR><BR>".$name." was uploaded.<BR><BR><a href=torrents-details.php?id=".$id.">View Uploaded Torrent</a><BR><BR>";
    show_error_msg("Upload Complete", $message,1);

    die();
}//takeupload


///////////////////// FORMAT PAGE ////////////////////////

stdhead("Upload");

begin_frame("" . UPLOAD_RULES . "");
    echo "<b>".stripslashes($site_config["UPLOADRULES"])."</b>";
    echo "<BR>";
end_frame();

begin_frame("" . UPLOAD . "");
?>
<form name="upload" enctype="multipart/form-data" action="torrents-upload.php" method="post">
<input type="hidden" name="takeupload" value="yes" />
<table border="0" cellspacing="0" cellpadding="6" align="center">
<?
print ("<TR><TD align=right valign=top>" . ANNOUNCE . ": </td><td align=left>");

while (list($key,$value) = each($announce_urls)) {
    echo "<B>$value</B><br>";
}

if ($site_config["ALLOWEXTERNAL"]){
    echo "<BR><B>This site accepts ALL external torrents also!</B>";
}
print ("</td></tr>");

print ("<TR><TD align=right>" . TORRENT_FILE . ": </td><td align=left> <input type=file name=torrent size=50 value=" . $_FILES['torrent']['name'] . ">\n</td></tr>");

//print ("<TR><TD align=right>" . NFO . ": </td><td align=left> <input type=file name=nfo size=50 value=" . $_FILES['nfo']['name'] . "><br />\n</td></tr>");

print ("<TR><TD align=right>" . TNAME . ": </td><td align=left><input type=text name=name size=60 value=" . $_POST['name'] . "><BR>This will be taken from .torrent if left empty\n</td></tr>");

//print ("<TR><TD align=right>Small Description: </td><td align=left><input type=text name=description size=60 value=" . $_POST['description'] . "><BR>Ex: Horror | +18 | HipHop | Xp | Vista | Mobile\n</td></tr>");

print ("<TR><TD align=right>Images</b>: </td><td align=left>Max File Size: 500kb<br>Accepted Formats: .gif, .jpg, .png<br><b>Image 1:</b>&nbsp&nbsp<input type=file name=image0 size=50><br><b>Image 2:</b>&nbsp&nbsp<input type=file name=image1 size=50>\n</td></tr>");

$category = "<select name=\"type\">\n<option value=\"0\">" . CHOOSE_ONE . "</option>\n";

$cats = genrelist();
foreach ($cats as $row)
    $category .= "<option value=\"" . $row["id"] . "\">" . htmlspecialchars($row["parent_cat"]) . ": " . htmlspecialchars($row["name"]) . "</option>\n";

$category .= "</select>\n";
print ("<TR><TD align=right>" . TTYPE . ": </td><td align=left>".$category."</td></tr>");


$language = "<select name=\"lang\">\n<option value=\"0\">Unknown/NA</option>\n";

$langs = langlist();
foreach ($langs as $row)
    $language .= "<option value=\"" . $row["id"] . "\">" . htmlspecialchars($row["name"]) . "</option>\n";

$language .= "</select>\n";
print ("<TR><TD align=right>Language: </td><td align=left>".$language."</td></tr>");

if ($site_config['ANONYMOUSUPLOAD'] && $site_config["MEMBERSONLY"] ){ ?>
    <TR><TD align=right>Upload Anonymous: </td><td><? printf("<input name=anonycheck value=yes type=radio" . ($anonycheck ? " checked" : "") . ">Yes <input name=anonycheck value=no type=radio" . (!$anonycheck ? " checked" : "") . ">No"); ?> &nbsp;<I>(Your userid will not be associated to this upload)</font>
    </td></tr>
    <?
}

print ("<TR><TD align=center colspan=2>" . TDESC . "</td></tr></table>");

require_once("backend/bbcode.php");
print ("".textbbcode("upload","descr","$descr")."");
?>

<BR><BR><CENTER><input type="submit" value="<? print("" . UPLOADT . "\n"); ?>"><BR>
<I>Click Once! - Uploading an image may take longer</I>
</CENTER>
</form>

<?
end_frame();
stdfoot();
?>
benc.php

Code:
<?

/*

Basic knowledge of how bencoding works is assumed. Details can be found
at <http://bitconjurer.org/BitTorrent/protocol.html>.



How to use these functions:

An "object" is defined to be an associative array with at least the keys
"type" and "value" present. The "type" key contains a string which is
one of "string", "integer", "list" or "dictionary". The "value" key
contains the appropriate thing, either a string, an integer, a list which
is just a flat array, or a dictionary, which is an associative array. In
the case of "list" and "dictionary", the values of the contained array
are agaib "objects".



Description of the functions:



string benc($obj);

Takes an object as argument and returns the bencoded form of it as string.
Returns the undefined/unset value on failure.

Examples:

benc(array(type => "string", value => "spam"))        returns "4:spam".
benc(array(type => "integer", value => 3))        returns "i3e".
benc(array(type => "list", value => array(
    array(type => "string", value => "spam"),
    array(type => "string", value => "eggs")
)))
                        returns "l4:spam4:eggse"

benc(array(type => "dictionary", value => array(
    cow => array(type => "string", value => "moo"),
    spam => array(type => "string", value => "eggs"),
)))
                    returns "d3:cow3:moo4:spam4:eggse"




object bdec($str);

Returns the object that results from bdecoding the given string. Note
that those aren't real php objects, but merely "objects" as described
above. The returned objects have two additional keys: "string" and
"strlen". They represent the bencoded form of the returned objects, as
it was given in the original bencoded string. Use this to extract
certain portions of a bencoded string without having to re-encode it
(and avoiding possible re-ordering of dictionary keys). $x["strlen"]
is always equivalent to strlen($x["string"]). The "string" attribute
of the top-level returned object will be the same as the original
bencoded string, unless there's trailing garbage at the end of the
string.

This function returns the undefined/unset value on failure.

Example:

bdec("d4:spaml11:spiced pork3:hamee")
    returns this monster:

Array
(
    [type] => dictionary
    [value] => Array
        (
            [spam] => Array
                (
                    [type] => list
                    [value] => Array
                        (
                            [0] => Array
                                (
                                    [type] => string
                                    [value] => spiced pork
                                    [strlen] => 14
                                    [string] => 11:spiced pork
                                )

                            [1] => Array
                                (
                                    [type] => string
                                    [value] => ham
                                    [strlen] => 5
                                    [string] => 3:ham
                                )

                        )

                    [strlen] => 21
                    [string] => l11:spiced pork3:hame
                )

        )

    [strlen] => 29
    [string] => d4:spaml11:spiced pork3:hamee
)





object bdec_file($filename, $maxsize);

Opens the specified file, reads its contents (up to the specified length),
and returns whatever bdec() returns for those contents. This is a simple
convenience function.

*/

function benc($obj) {
    if (!is_array($obj) || !isset($obj["type"]) || !isset($obj["value"]))
        return;
    $c = $obj["value"];
    switch ($obj["type"]) {
        case "string":
            return benc_str($c);
        case "integer":
            return benc_int($c);
        case "list":
            return benc_list($c);
        case "dictionary":
            return benc_dict($c);
        default:
            return;
    }
}

function benc_str($s) {
    return strlen($s) . ":$s";
}

function benc_int($i) {
    return "i" . $i . "e";
}

function benc_list($a) {
    $s = "l";
    foreach ($a as $e) {
        $s .= benc($e);
    }
    $s .= "e";
    return $s;
}

function benc_dict($d) {
    $s = "d";
    $keys = array_keys($d);
    sort($keys);
    foreach ($keys as $k) {
        $v = $d[$k];
        $s .= benc_str($k);
        $s .= benc($v);
    }
    $s .= "e";
    return $s;
}

function bdec_file($f, $ms) {
    $fp = fopen($f, "rb");
    if (!$fp)
        return;
    $e = fread($fp, $ms);
    fclose($fp);
    return bdec($e);
}

function bdec($s) {
    if (preg_match('/^(\d+):/', $s, $m)) {
        $l = $m[1];
        $pl = strlen($l) + 1;
        $v = substr($s, $pl, $l);
        $ss = substr($s, 0, $pl + $l);
        if (strlen($v) != $l)
            return;
        return array(type => "string", value => $v, strlen => strlen($ss), string => $ss);
    }
    if (preg_match('/^i(\d+)e/', $s, $m)) {
        $v = $m[1];
        $ss = "i" . $v . "e";
        if ($v === "-0")
            return;
        if ($v[0] == "0" && strlen($v) != 1)
            return;
        return array(type => "integer", value => $v, strlen => strlen($ss), string => $ss);
    }
    switch ($s[0]) {
        case "l":
            return bdec_list($s);
        case "d":
            return bdec_dict($s);
        default:
            return;
    }
}

function bdec_list($s) {
    if ($s[0] != "l")
        return;
    $sl = strlen($s);
    $i = 1;
    $v = array();
    $ss = "l";
    for (;;) {
        if ($i >= $sl)
            return;
        if ($s[$i] == "e")
            break;
        $ret = bdec(substr($s, $i));
        if (!isset($ret) || !is_array($ret))
            return;
        $v[] = $ret;
        $i += $ret["strlen"];
        $ss .= $ret["string"];
    }
    $ss .= "e";
    return array(type => "list", value => $v, strlen => strlen($ss), string => $ss);
}

function bdec_dict($s) {
    if ($s[0] != "d")
        return;
    $sl = strlen($s);
    $i = 1;
    $v = array();
    $ss = "d";
    for (;;) {
        if ($i >= $sl)
            return;
        if ($s[$i] == "e")
            break;
        $ret = bdec(substr($s, $i));
        if (!isset($ret) || !is_array($ret) || $ret["type"] != "string")
            return;
        $k = $ret["value"];
        $i += $ret["strlen"];
        $ss .= $ret["string"];
        if ($i >= $sl)
            return;
        $ret = bdec(substr($s, $i));
        if (!isset($ret) || !is_array($ret))
            return;
        $v[$k] = $ret;
        $i += $ret["strlen"];
        $ss .= $ret["string"];
    }
    $ss .= "e";
    return array(type => "dictionary", value => $v, strlen => strlen($ss), string => $ss);
}

?>
Reply With Quote
  #4  
Old 21st April 2010, 12:35
danscarlat danscarlat is offline
Member
 
Join Date: Dec 2008
P2P
Posts: 6
Default I have a problem
Click the image to open in full size.

I do not know why I can not upload

Reply With Quote
Reply

Tags
error , upload


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Upload error bob2012 Template Shares 1 29th January 2010 21:49
Upload Error Extreme86 TBDev 2 11th January 2010 00:48
Upload error, Fatal error TKO Template Shares 5 14th February 2009 02:23
TS 1.3.9 upload error... matrixismyname Template Shares 12 4th January 2009 00:35
Upload error HelixiR BT.Manager (phpMyBitTorrent) 3 22nd December 2008 12:21



All times are GMT +2. The time now is 17:15. vBulletin skin by ForumMonkeys. Powered by vBulletin® Version 3.8.11 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions Inc.