2020-12-26 01:42:23 +08:00
<? php
2021-01-13 19:32:26 +08:00
require_once ( "../include/bittorrent.php" );
2020-12-26 01:42:23 +08:00
dbconn ();
require_once ( get_langfile_path ());
require ( get_langfile_path ( "" , true ));
$action = htmlspecialchars ( $_GET [ "action" ]);
2020-12-29 21:49:37 +08:00
$sub = htmlspecialchars ( $_GET [ "sub" ] ?? '' );
2020-12-26 01:42:23 +08:00
$type = htmlspecialchars ( $_GET [ "type" ]);
loggedinorreturn ();
parked ();
function check_comment_type ( $type )
{
if ( $type != "torrent" && $type != "request" && $type != "offer" )
stderr ( $lang_comment [ 'std_error' ], $lang_comment [ 'std_error' ]);
}
check_comment_type ( $type );
if ( $action == "add" )
{
if ( $_SERVER [ "REQUEST_METHOD" ] == "POST" )
{
// Anti Flood Code
// This code ensures that a member can only send one comment per minute.
if ( get_user_class () < $commanage_class ) {
if ( strtotime ( $CURUSER [ 'last_comment' ]) > ( TIMENOW - 10 ))
{
$secs = 10 - ( TIMENOW - strtotime ( $CURUSER [ 'last_comment' ]));
stderr ( $lang_comment [ 'std_error' ], $lang_comment [ 'std_comment_flooding_denied' ] . " $secs " . $lang_comment [ 'std_before_posting_another' ]);
}
}
2021-01-06 00:56:13 +08:00
$parent_id = intval ( $_POST [ "pid" ] ?? 0 );
2020-12-26 01:42:23 +08:00
int_check ( $parent_id , true );
if ( $type == "torrent" )
$res = sql_query ( "SELECT name, owner FROM torrents WHERE id = $parent_id " ) or sqlerr ( __FILE__ , __LINE__ );
else if ( $type == "offer" )
$res = sql_query ( "SELECT name, userid as owner FROM offers WHERE id = $parent_id " ) or sqlerr ( __FILE__ , __LINE__ );
else if ( $type == "request" )
$res = sql_query ( "SELECT requests.request as name, userid as owner FROM requests WHERE id = $parent_id " ) or sqlerr ( __FILE__ , __LINE__ );
$arr = mysql_fetch_array ( $res );
if ( ! $arr )
stderr ( $lang_comment [ 'std_error' ], $lang_comment [ 'std_no_torrent_id' ]);
$text = trim ( $_POST [ "body" ]);
if ( ! $text )
stderr ( $lang_comment [ 'std_error' ], $lang_comment [ 'std_comment_body_empty' ]);
if ( $type == "torrent" ){
sql_query ( "INSERT INTO comments (user, torrent, added, text, ori_text) VALUES (" . $CURUSER [ "id" ] . ", $parent_id , '" . date ( "Y-m-d H:i:s" ) . "', " . sqlesc ( $text ) . "," . sqlesc ( $text ) . ")" );
$Cache -> delete_value ( 'torrent_' . $parent_id . '_last_comment_content' );
}
elseif ( $type == "offer" ){
sql_query ( "INSERT INTO comments (user, offer, added, text, ori_text) VALUES (" . $CURUSER [ "id" ] . ", $parent_id , '" . date ( "Y-m-d H:i:s" ) . "', " . sqlesc ( $text ) . "," . sqlesc ( $text ) . ")" );
$Cache -> delete_value ( 'offer_' . $parent_id . '_last_comment_content' );
}
elseif ( $type == "request" )
sql_query ( "INSERT INTO comments (user, request, added, text, ori_text) VALUES (" . $CURUSER [ "id" ] . ", $parent_id , '" . date ( "Y-m-d H:i:s" ) . "', " . sqlesc ( $text ) . "," . sqlesc ( $text ) . ")" );
$newid = mysql_insert_id ();
if ( $type == "torrent" )
sql_query ( "UPDATE torrents SET comments = comments + 1 WHERE id = $parent_id " );
else if ( $type == "offer" )
sql_query ( "UPDATE offers SET comments = comments + 1 WHERE id = $parent_id " );
else if ( $type == "request" )
sql_query ( "UPDATE requests SET comments = comments + 1 WHERE id = $parent_id " );
$ras = sql_query ( "SELECT commentpm FROM users WHERE id = $arr[owner] " ) or sqlerr ( __FILE__ , __LINE__ );
$arg = mysql_fetch_array ( $ras );
if ( $arg [ "commentpm" ] == 'yes' && $CURUSER [ 'id' ] != $arr [ "owner" ])
{
$added = sqlesc ( date ( "Y-m-d H:i:s" ));
$subject = sqlesc ( $lang_comment_target [ get_user_lang ( $arr [ "owner" ])][ 'msg_new_comment' ]);
if ( $type == "torrent" )
$notifs = sqlesc ( $lang_comment_target [ get_user_lang ( $arr [ "owner" ])][ 'msg_torrent_receive_comment' ] . " [url=" . get_protocol_prefix () . " $BASEURL /details.php?id= $parent_id ] " . $arr [ 'name' ] . "[/url]." );
if ( $type == "offer" )
$notifs = sqlesc ( $lang_comment_target [ get_user_lang ( $arr [ "owner" ])][ 'msg_torrent_receive_comment' ] . " [url=" . get_protocol_prefix () . " $BASEURL /offers.php?id= $parent_id &off_details=1] " . $arr [ 'name' ] . "[/url]." );
if ( $type == "request" )
$notifs = sqlesc ( $lang_comment_target [ get_user_lang ( $arr [ "owner" ])][ 'msg_torrent_receive_comment' ] . " [url=" . get_protocol_prefix () . " $BASEURL /viewrequests.php?id= $parent_id &req_details=1] " . $arr [ 'name' ] . "[/url]." );
sql_query ( "INSERT INTO messages (sender, receiver, subject, msg, added) VALUES(0, " . $arr [ 'owner' ] . ", $subject , $notifs , $added )" ) or sqlerr ( __FILE__ , __LINE__ );
$Cache -> delete_value ( 'user_' . $arr [ 'owner' ] . '_unread_message_count' );
$Cache -> delete_value ( 'user_' . $arr [ 'owner' ] . '_inbox_count' );
}
KPS ( "+" , $addcomment_bonus , $CURUSER [ "id" ]);
// Update Last comment sent...
sql_query ( "UPDATE users SET last_comment = NOW() WHERE id = " . sqlesc ( $CURUSER [ 'id' ])) or sqlerr ( __FILE__ , __LINE__ );
if ( $type == "torrent" )
header ( "Refresh: 0; url=details.php?id= $parent_id # $newid " );
else if ( $type == "offer" )
header ( "Refresh: 0; url=offers.php?id= $parent_id &off_details=1# $newid " );
else if ( $type == "request" )
header ( "Refresh: 0; url=viewrequests.php?id= $parent_id &req_details=1# $newid " );
die ;
}
2021-01-06 00:56:13 +08:00
$parent_id = intval ( $_GET [ "pid" ] ?? 0 );
2020-12-26 01:42:23 +08:00
int_check ( $parent_id , true );
if ( $sub == "quote" )
{
2021-01-06 00:56:13 +08:00
$commentid = intval ( $_GET [ "cid" ] ?? 0 );
2020-12-26 01:42:23 +08:00
int_check ( $commentid , true );
$res2 = sql_query ( "SELECT comments.text, users.username FROM comments JOIN users ON comments.user = users.id WHERE comments.id= $commentid " ) or sqlerr ( __FILE__ , __LINE__ );
if ( mysql_num_rows ( $res2 ) != 1 )
stderr ( $lang_forums [ 'std_error' ], $lang_forums [ 'std_no_comment_id' ]);
$arr2 = mysql_fetch_assoc ( $res2 );
}
if ( $type == "torrent" ){
$res = sql_query ( "SELECT name, owner FROM torrents WHERE id = $parent_id " ) or sqlerr ( __FILE__ , __LINE__ );
$url = "details.php?id= $parent_id " ;
}
else if ( $type == "offer" ){
$res = sql_query ( "SELECT name, userid as owner FROM offers WHERE id = $parent_id " ) or sqlerr ( __FILE__ , __LINE__ );
$url = "offers.php?id= $parent_id &off_details=1" ;
}
else if ( $type == "request" ){
$res = sql_query ( "SELECT requests.request as name, userid as owner FROM requests WHERE id = $parent_id " ) or sqlerr ( __FILE__ , __LINE__ );
$url = "viewrequests.php?id= $parent_id &req_details=1" ;
}
$arr = mysql_fetch_array ( $res );
if ( ! $arr )
stderr ( $lang_comment [ 'std_error' ], $lang_comment [ 'std_no_torrent_id' ]);
stdhead ( $lang_comment [ 'head_add_comment_to' ] . $arr [ "name" ]);
begin_main_frame ();
$title = $lang_comment [ 'text_add_comment_to' ] . "<a href= $url >" . htmlspecialchars ( $arr [ "name" ]) . "</a>" ;
print ( "<form id=compose method=post name= \" compose \" action= \" comment.php?action=add&type= $type \" > \n " );
print ( "<input type= \" hidden \" name= \" pid \" value= \" $parent_id \" /> \n " );
begin_compose ( $title , ( $sub == "quote" ? "quote" : "reply" ), ( $sub == "quote" ? htmlspecialchars ( "[quote=" . htmlspecialchars ( $arr2 [ "username" ]) . "]" . unesc ( $arr2 [ "text" ]) . "[/quote]" ) : "" ), false );
end_compose ();
print ( "</form>" );
end_main_frame ();
stdfoot ();
die ;
}
elseif ( $action == "edit" )
{
2021-01-06 00:56:13 +08:00
$commentid = intval ( $_GET [ "cid" ] ?? 0 );
2020-12-26 01:42:23 +08:00
int_check ( $commentid , true );
if ( $type == "torrent" )
$res = sql_query ( "SELECT c.*, t.name, t.id AS parent_id FROM comments AS c JOIN torrents AS t ON c.torrent = t.id WHERE c.id= $commentid " ) or sqlerr ( __FILE__ , __LINE__ );
else if ( $type == "offer" )
$res = sql_query ( "SELECT c.*, o.name, o.id AS parent_id FROM comments AS c JOIN offers AS o ON c.offer = o.id WHERE c.id= $commentid " ) or sqlerr ( __FILE__ , __LINE__ );
else if ( $type == "request" )
$res = sql_query ( "SELECT c.*, r.request as name, r.id AS parent_id FROM comments AS c JOIN requests AS r ON c.request = r.id WHERE c.id= $commentid " ) or sqlerr ( __FILE__ , __LINE__ );
$arr = mysql_fetch_array ( $res );
if ( ! $arr )
stderr ( $lang_comment [ 'std_error' ], $lang_comment [ 'std_invalid_id' ]);
if ( $arr [ "user" ] != $CURUSER [ "id" ] && get_user_class () < $commanage_class )
stderr ( $lang_comment [ 'std_error' ], $lang_comment [ 'std_permission_denied' ]);
if ( $_SERVER [ "REQUEST_METHOD" ] == "POST" )
{
$text = $_POST [ "body" ];
$returnto = htmlspecialchars ( $_POST [ "returnto" ]) ? $_POST [ "returnto" ] : htmlspecialchars ( $_SERVER [ "HTTP_REFERER" ]);
if ( $text == "" )
stderr ( $lang_comment [ 'std_error' ], $lang_comment [ 'std_comment_body_empty' ]);
$text = sqlesc ( $text );
$editdate = sqlesc ( date ( "Y-m-d H:i:s" ));
sql_query ( "UPDATE comments SET text= $text , editdate= $editdate , editedby= $CURUSER[id] WHERE id=" . sqlesc ( $commentid )) or sqlerr ( __FILE__ , __LINE__ );
if ( $type == "torrent" )
$Cache -> delete_value ( 'torrent_' . $arr [ 'parent_id' ] . '_last_comment_content' );
elseif ( $type == "offer" )
$Cache -> delete_value ( 'offer_' . $arr [ 'parent_id' ] . '_last_comment_content' );
header ( "Location: $returnto " );
die ;
}
$parent_id = $arr [ "parent_id" ];
if ( $type == "torrent" )
$url = "details.php?id= $parent_id " ;
else if ( $type == "offer" )
$url = "offers.php?id= $parent_id &off_details=1" ;
else if ( $type == "request" )
$url = "viewrequests.php?id= $parent_id &req_details=1" ;
stdhead ( $lang_comment [ 'head_edit_comment_to' ] . " \" " . $arr [ "name" ] . " \" " );
begin_main_frame ();
$title = $lang_comment [ 'head_edit_comment_to' ] . "<a href= $url >" . htmlspecialchars ( $arr [ "name" ]) . "</a>" ;
print ( "<form id=compose method=post name= \" compose \" action= \" comment.php?action=edit&cid= $commentid &type= $type \" > \n " );
print ( "<input type= \" hidden \" name= \" returnto \" value= \" " . htmlspecialchars ( $_SERVER [ "HTTP_REFERER" ]) . " \" /> \n " );
begin_compose ( $title , "edit" , htmlspecialchars ( unesc ( $arr [ "text" ])), false );
end_compose ();
print ( "</form>" );
end_main_frame ();
stdfoot ();
die ;
}
elseif ( $action == "delete" )
{
if ( get_user_class () < $commanage_class )
stderr ( $lang_comment [ 'std_error' ], $lang_comment [ 'std_permission_denied' ]);
2021-01-06 00:56:13 +08:00
$commentid = intval ( $_GET [ "cid" ] ?? 0 );
2020-12-26 01:42:23 +08:00
$sure = $_GET [ "sure" ];
int_check ( $commentid , true );
if ( ! $sure )
{
$referer = $_SERVER [ "HTTP_REFERER" ];
stderr ( $lang_comment [ 'std_delete_comment' ], $lang_comment [ 'std_delete_comment_note' ] . "<a href=comment.php?action=delete&cid= $commentid &sure=1&type= $type " . ( $referer ? "&returnto=" . rawurlencode ( $referer ) : "" ) . $lang_comment [ 'std_here_if_sure' ], false );
}
else
int_check ( $sure , true );
if ( $type == "torrent" )
$res = sql_query ( "SELECT torrent as pid,user FROM comments WHERE id= $commentid " ) or sqlerr ( __FILE__ , __LINE__ );
else if ( $type == "offer" )
$res = sql_query ( "SELECT offer as pid,user FROM comments WHERE id= $commentid " ) or sqlerr ( __FILE__ , __LINE__ );
else if ( $type == "request" )
$res = sql_query ( "SELECT request as pid,user FROM comments WHERE id= $commentid " ) or sqlerr ( __FILE__ , __LINE__ );
$arr = mysql_fetch_array ( $res );
if ( $arr )
{
$parent_id = $arr [ "pid" ];
$userpostid = $arr [ "user" ];
}
else
stderr ( $lang_comment [ 'std_error' ], $lang_comment [ 'std_invalid_id' ]);
sql_query ( "DELETE FROM comments WHERE id= $commentid " ) or sqlerr ( __FILE__ , __LINE__ );
if ( $type == "torrent" )
$Cache -> delete_value ( 'torrent_' . $arr [ 'pid' ] . '_last_comment_content' );
elseif ( $type == "offer" )
$Cache -> delete_value ( 'offer_' . $arr [ 'pid' ] . '_last_comment_content' );
if ( $parent_id && mysql_affected_rows () > 0 )
{
if ( $type == "torrent" )
sql_query ( "UPDATE torrents SET comments = comments - 1 WHERE id = $parent_id " ) or sqlerr ( __FILE__ , __LINE__ );
else if ( $type == "offer" )
sql_query ( "UPDATE offers SET comments = comments - 1 WHERE id = $parent_id " ) or sqlerr ( __FILE__ , __LINE__ );
else if ( $type == "request" )
sql_query ( "UPDATE requests SET comments = comments - 1 WHERE id = $parent_id " ) or sqlerr ( __FILE__ , __LINE__ );
}
KPS ( "-" , $addcomment_bonus , $userpostid );
$returnto = $_GET [ "returnto" ] ? $_GET [ "returnto" ] : htmlspecialchars ( $_SERVER [ "HTTP_REFERER" ]);
header ( "Location: $returnto " );
die ;
}
elseif ( $action == "vieworiginal" )
{
if ( get_user_class () < $commanage_class )
stderr ( $lang_comment [ 'std_error' ], $lang_comment [ 'std_permission_denied' ]);
2021-01-06 00:56:13 +08:00
$commentid = intval ( $_GET [ "cid" ] ?? 0 );
2020-12-26 01:42:23 +08:00
int_check ( $commentid , true );
if ( $type == "torrent" )
$res = sql_query ( "SELECT c.*, t.name FROM comments AS c JOIN torrents AS t ON c.torrent = t.id WHERE c.id= $commentid " ) or sqlerr ( __FILE__ , __LINE__ );
else if ( $type == "offer" )
$res = sql_query ( "SELECT c.*, o.name FROM comments AS c JOIN offers AS o ON c.offer = o.id WHERE c.id= $commentid " ) or sqlerr ( __FILE__ , __LINE__ );
else if ( $type == "request" )
$res = sql_query ( "SELECT c.*, r.request as name FROM comments AS c JOIN requests AS r ON c.request = r.id WHERE c.id= $commentid " ) or sqlerr ( __FILE__ , __LINE__ );
$arr = mysql_fetch_array ( $res );
if ( ! $arr )
stderr ( $lang_comment [ 'std_error' ], $lang_comment [ 'std_invalid_id' ]);
stdhead ( $lang_comment [ 'head_original_comment' ]);
print ( "<h1>" . $lang_comment [ 'text_original_content_of_comment' ] . "# $commentid </h1>" );
print ( "<table width= \" 737 \" border= \" 1 \" cellspacing= \" 0 \" cellpadding= \" 5 \" >" );
print ( "<tr><td class= \" text \" > \n " );
echo format_comment ( $arr [ "ori_text" ]);
print ( "</td></tr></table> \n " );
$returnto = htmlspecialchars ( $_SERVER [ "HTTP_REFERER" ]);
if ( $returnto )
print ( "<p><font size= \" small \" >(<a href= \" " . $returnto . " \" >" . $lang_comment [ 'text_back' ] . "</a>)</font></p> \n " );
stdfoot ();
die ;
}
else
stderr ( $lang_comment [ 'std_error' ], $lang_comment [ 'std_unknown_action' ]);
die ;
?>