forked from HPR/hpr_hub
		
	
		
			
				
	
	
		
			157 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			157 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
| require "/home/hpr/php/include.php";
 | |
| 
 | |
| date_default_timezone_set('UTC');
 | |
| 
 | |
| if ( $_SERVER['REQUEST_METHOD'] !== 'GET' ) {
 | |
|   naughty("5c965856fd6e1af9256c04d400698fae not GET methog"); 
 | |
| }
 | |
| 
 | |
| $num_get_args=0;
 | |
| 
 | |
| foreach($_GET as $k => $v) { 
 | |
|   ++$num_get_args; 
 | |
| }
 | |
| if ( $num_get_args !== 2 ){
 | |
|   # they are trying to GET on a POST request
 | |
|   naughty("638709cc1d7f107c024eb2a663675e8c num_get_args $num_get_args");
 | |
| }
 | |
| 
 | |
| if ( empty($_GET["key"]) or empty($_GET["action"]) ) {
 | |
|   naughty("991ce46448d64b90bc8a837b58b7ad20 missing key");
 | |
| }
 | |
| 
 | |
| if ( empty($_GET["key"]) or strlen($_GET["key"]) !== 45  ) {
 | |
|   naughty("c9e5ea8d870dda8db08bc570cbed7f84 wrong key length");
 | |
| }
 | |
| 
 | |
| if ( !empty($_GET["key"]) and 
 | |
|     isset( $_GET['key'] ) and 
 | |
|     strlen( $_GET['key'] ) ===  45 and 
 | |
|     strlen( htmlspecialchars( stripslashes( strip_tags( $_GET['key'] ) ) ) ) ===  45 and 
 | |
|     ctype_xdigit( $_GET['key'] ) 
 | |
|   ) {
 | |
|   $key = htmlspecialchars( stripslashes( strip_tags( $_GET['key'] ) ) );
 | |
| }
 | |
| else {
 | |
|   naughty("868d9cc49b2f1e4a9319a8e8755d6189 wrong key type");
 | |
| }
 | |
| 
 | |
| if ( !in_array($_GET["action"], array('publish','approve','delete','block'), true ) ) {
 | |
|   naughty("c0ca62c918f9bb0ab72da0cdf2f2e8df wrong action");
 | |
| }
 | |
| else {
 | |
|     $action = $_GET["action"];
 | |
| }
 | |
| 
 | |
| if ( ! file_exists( $comment_directory ) ) {
 | |
|   # Looks like the comments directory has not been created
 | |
|   naughty("0fdffa1dbe94e0730cef457be93ebf40 cant find comment directory");
 | |
| }
 | |
| 
 | |
| $files = glob( "${comment_directory}/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]Z_*_${key}.json" );
 | |
| if (count($files) === 0) {
 | |
|   naughty("3efef2971727905064855d7866cb0059 cant find comment file - has the comment already been processed ?");
 | |
| }
 | |
| else {
 | |
|   $file = $files[0];
 | |
| }
 | |
| 
 | |
| list($begin, $file_ip, $end) = explode('_', $file);
 | |
| 
 | |
| if ( ! filter_var($file_ip, FILTER_VALIDATE_IP) ) {
 | |
|   naughty("70ebe39c92b393c288e41a4d3128b5da not a valid file format");
 | |
| }
 | |
| 
 | |
| if ( $action === 'block' ) {
 | |
|   file_put_contents($naughtyfile, date('Y-m-d\TH:i:s\Z') . "\t${file_ip}\tReported as comment spammer\t${key}\n", FILE_APPEND | LOCK_EX );
 | |
|   unlink( "${file}" );
 | |
|   $db["http_code"] = "201";
 | |
|   $db["action"] = "block";
 | |
|   http_response_code(201);
 | |
|   header('Content-Type: application/json; charset=utf-8');
 | |
|   echo json_encode($db);
 | |
|   exit;
 | |
| }
 | |
| 
 | |
| if ( $action === 'delete' ) {
 | |
|   unlink( "${file}" );
 | |
|   $db["http_code"] = "202";
 | |
|   $db["action"] = "delete";
 | |
|   http_response_code(202);
 | |
|   header('Content-Type: application/json; charset=utf-8');
 | |
|   echo json_encode($db);
 | |
|   exit;
 | |
| }
 | |
| 
 | |
| if ( $action === 'approve' ) {
 | |
|   unlink( "${file}" );
 | |
|   $db["http_code"] = "200";
 | |
|   $db["action"] = "approve";
 | |
|   http_response_code(200);
 | |
|   header('Content-Type: application/json; charset=utf-8');
 | |
|   echo json_encode($db);
 | |
|   exit;
 | |
| }
 | |
| 
 | |
| if ( $action === 'publish' ) {
 | |
| 
 | |
|   $comment = file_get_contents("$file");
 | |
| 
 | |
|   $json = json_decode($comment, true);
 | |
|   
 | |
|   require "/home/hpr/public_html_hub/cms/comment_checks.php";
 | |
|   
 | |
|   $ep_num = mysqli_real_escape_string( $connection, $ep_num );
 | |
|   $comment_timestamp_db = mysqli_real_escape_string( $connection, $comment_timestamp_db );
 | |
|   $comment_author_name = mysqli_real_escape_string( $connection, $comment_author_name );
 | |
|   $comment_title = mysqli_real_escape_string( $connection, $comment_title );
 | |
|   $comment_text = mysqli_real_escape_string( $connection,$comment_text  );
 | |
|   
 | |
|   // OK I believe you
 | |
|   
 | |
|   if ( strcmp($justification, "No justification is asked for or required.") !== 0 ) {
 | |
|     file_put_contents($justification_file, "$justification\n", FILE_APPEND | LOCK_EX );
 | |
|   }
 | |
|   
 | |
|   $ep_retrieve = "SELECT id FROM comments WHERE comment_timestamp='$comment_timestamp' AND comment_author_name='$comment_author_name'";
 | |
|   
 | |
|   if ($result = mysqli_query($connection, $ep_retrieve)) {    
 | |
|     if ( $result->fetch_assoc()) {
 | |
|       naughty("9422f4e06ded59e4e7c2e426e62ffa5e comment already in database. comment_timestamp='$comment_timestamp_db' and comment_author_name='$comment_author_name'");
 | |
|     }
 | |
|   }
 | |
|   
 | |
|   
 | |
|   $query_add = "INSERT INTO comments (eps_id,comment_timestamp,comment_author_name,comment_title,comment_text) VALUES ( '{$ep_num}', '{$comment_timestamp_db}', '{$comment_author_name}', '{$comment_title}', '{$comment_text}')";
 | |
| 
 | |
|   $result = mysqli_query($connection, $query_add );
 | |
|   if(!$result) {
 | |
|     problem("ERROR: DB problem - The comment was not added to the db.");
 | |
|   }
 | |
|   if (mysqli_errno( $connection )) {
 | |
|     $error = "MySQL error ".mysqli_errno( $connection ).": ".mysqli_error()."\n";
 | |
|     problem("ERROR: MySQL error- The comment was not added to the db.\n$error");
 | |
|   }
 | |
|  
 | |
|   $query = "SELECT * FROM comments WHERE comment_timestamp='$comment_timestamp_db' AND comment_author_name='$comment_author_name'";
 | |
|   $result = @mysqli_query($connection, $query);
 | |
|   $db = mysqli_fetch_array($result, MYSQLI_ASSOC);
 | |
| 
 | |
|   if ( empty($db["id"]) ) {
 | |
|     naughty("1caead2716fb4e793b11f978eddd7559 could not find the id of the entry. comment_timestamp='$comment_timestamp_db' and comment_author_name='$comment_author_name'");
 | |
|   }
 | |
|   unlink( "${file}" );
 | |
|   $db["http_code"] = "200";
 | |
|   $db["action"] = "publish";
 | |
|   http_response_code(200);
 | |
|   header('Content-Type: application/json; charset=utf-8');
 | |
|   echo json_encode($db);
 | |
|   exit;
 | |
| }
 | |
| 
 | |
| //   exit;
 | |
| http_response_code(500);
 | |
| ?>
 | |
| 
 |