103 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
<?php 
 | 
						|
session_start();
 | 
						|
include("../include/settings.php");
 | 
						|
include("../include/functions.php");
 | 
						|
 | 
						|
if(!isset($_GET["q"])){
 | 
						|
	echo("Question not specified.");
 | 
						|
	die();
 | 
						|
}
 | 
						|
else if(!isset($_SESSION["uid"])){
 | 
						|
       	echo("You need to log in to perform that task.");
 | 
						|
}
 | 
						|
else{
 | 
						|
	$db = new sqlite3('../ask.db');
 | 
						|
	
 | 
						|
	$question = $db->query("SELECT * FROM questions WHERE id = '" . $_GET["q"] . "';")->fetchArray(SQLITE3_ASSOC);
 | 
						|
	if(!$question || !$question["id"]){
 | 
						|
		echo("Question not found.");
 | 
						|
		die();
 | 
						|
	}
 | 
						|
	else if($question["user"] != $_SESSION["uid"]){
 | 
						|
		echo("You have no permission to answer this question.");
 | 
						|
		die();
 | 
						|
	}
 | 
						|
 | 
						|
	if(isset($_POST["answered"])){
 | 
						|
		if($_POST["answer_body"] == ""){
 | 
						|
			echo("Answer cannot be blank.");
 | 
						|
		}
 | 
						|
		else{
 | 
						|
			$db->exec("UPDATE questions SET answer = '" . htmlspecialchars($_POST["answer_body"], ENT_QUOTES) . "', a_date = " . strtotime("now") . " WHERE id = " . $_GET["q"] . ";");
 | 
						|
 | 
						|
			$question = $db->query("SELECT * FROM questions WHERE id = '" . $_GET["q"] . "';")->fetchArray(SQLITE3_ASSOC);
 | 
						|
			$user = $db->query("SELECT * FROM users WHERE id = '" . $_SESSION["uid"] . "';")->fetchArray(SQLITE3_ASSOC);
 | 
						|
	
 | 
						|
			// Writing the tweet text
 | 
						|
		
 | 
						|
			$separator = " - ";
 | 
						|
			$tw_url_length = 23;
 | 
						|
			$max_length = 280 - strlen($separator) - strlen(" ") - $tw_url_length;
 | 
						|
			$ellipsis = "...";
 | 
						|
	
 | 
						|
			if(strlen($question["question"]) >= $max_length/2 - strlen($separator)){
 | 
						|
				if(strlen($question["answer"]) >= $max_length/2 - strlen($separator)){
 | 
						|
					$tweet = substr($question["question"],0,$max_length/2 - strlen($ellipsis)) . $ellipsis;
 | 
						|
					$tweet = $tweet . $separator . substr($question["answer"],0,$max_length/2 - strlen($ellipsis)) . $ellipsis;
 | 
						|
				}
 | 
						|
				else{
 | 
						|
					$tweet = substr($question["question"],0,$max_length - strlen($question["answer"]) - strlen($ellipsis)) . $ellipsis;
 | 
						|
					$tweet = $tweet . $separator . $question["answer"];
 | 
						|
				}
 | 
						|
			}
 | 
						|
			else{
 | 
						|
				if(strlen($question["answer"]) >= $max_length/2 - strlen($separator)){
 | 
						|
					$tweet = $question["question"] . $separator;
 | 
						|
					$tweet = $tweet . substr($question["answer"],0,$max_length - strlen($question["question"]) - strlen($ellipsis)) . $ellipsis;
 | 
						|
				}
 | 
						|
				else{
 | 
						|
					$tweet = $question["question"] . $separator . $question["answer"];
 | 
						|
				}
 | 
						|
			}
 | 
						|
			$tweet = $tweet . " https://" . $_SERVER['HTTP_HOST'] . "/user/" . $user["username"] . "?p=" . $question["id"];
 | 
						|
		
 | 
						|
//			echo strlen($tweet) . " - " . strlen($question["answer"]) . "<br/><br/>\n";
 | 
						|
//			echo $tweet;
 | 
						|
 | 
						|
			if($user["tw_oauth_token"] && $user["tw_oauth_verify"] && $question['private'] != 1){
 | 
						|
				include("../include/tw-post.php");
 | 
						|
				post_tweet(htmlspecialchars_decode($tweet, ENT_QUOTES));
 | 
						|
			}
 | 
						|
 | 
						|
			if($fancy_urls){
 | 
						|
				header("Location: /user/" . $db->querySingle("SELECT username FROM users WHERE id = " . $question["user"] . ";"));
 | 
						|
				die();
 | 
						|
			}
 | 
						|
			else{
 | 
						|
				header("Location: /user.php?q=" . $db->querySingle("SELECT username FROM users WHERE id = " . $question["user"] . ";"));
 | 
						|
				die();
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
?>
 | 
						|
 | 
						|
<!DOCTYPE html>
 | 
						|
<html>
 | 
						|
<head>
 | 
						|
<?php include("../themes/$theme_name/reply.php"); ?>
 | 
						|
</head>
 | 
						|
<body>
 | 
						|
	<?php
 | 
						|
	?>
 | 
						|
	<div class="main-container">
 | 
						|
	<h3 class="question"><?= $question["question"] ?></h3>
 | 
						|
	<form action="" method="post">
 | 
						|
		<textarea cols=100 rows=10 name="answer_body" placeholder="Write your answer."></textarea><br/>
 | 
						|
		<input type="submit" name="answered"/>
 | 
						|
	</form>
 | 
						|
	</div>
 | 
						|
</body>
 | 
						|
</html>
 |