librecat/user.php

71 lines
1.7 KiB
PHP
Raw Normal View History

2020-05-17 00:02:20 +00:00
<?php
2020-05-17 20:06:22 +00:00
$db = new SQLite3('ask.db');
2020-05-17 00:02:20 +00:00
2020-05-20 16:08:25 +00:00
$user = $db->query("SELECT * FROM users WHERE username = '" . $_GET["q"] . "';")->fetchArray(SQLITE3_ASSOC);
2020-05-21 08:07:28 +00:00
if(!$user || !$user["id"]){
include("404.php");
die();
}
//else if(!$user["id"]){
// include("404.php");
// die();
//}
2020-05-17 00:02:20 +00:00
2020-05-20 16:08:25 +00:00
$db->exec("CREATE TABLE IF NOT EXISTS questions(
id INTEGER PRIMARY KEY,
user INTEGER,
by INTEGER,
question TEXT
);");
2020-05-17 20:06:22 +00:00
2020-05-21 08:07:28 +00:00
if(!$db->querySingle("SELECT EXISTS(SELECT * FROM users where id = 0);")){
echo "NOTICE: anonymous user created.";
$db->exec("INSERT INTO users(id, username, name) VALUES('0','anonymous','Anonymous');");
}
2020-05-20 16:08:25 +00:00
if($validUser){
header("Location: /"); die();
}
$errorMsg = "";
if(isset($_POST["post-submit"])){
if($_POST["post-text"] == "") $errorMsg = "The question can't be blank.";
else if(strlen($_POST["post-text"]) > 400) $errorMsg = "The question can't bee longer than 400 characters";
else{
$u = $user["id"];
$by = 0;
$question = htmlspecialchars($_POST["post-text"]);
// Insert user into DB
$db->exec("INSERT INTO questions(user,by,question) VALUES ('$u','$by','$question');");
unset($_POST["post-text"]);
}
}
?>
<html>
<head>
<title><?= $user["username"] ?> | LibreCat</title>
</head>
<body>
<h2><?= $user["username"] ?></h2>
<p><?= $user["bio"] ?></p>
<form name="input" action="" method="post">
<p>Ask me anything</p>
<textarea id="post-text" name="post-text"></textarea>
<br/>
<?php if(isset($errorMsg)) echo "<p>$errorMsg</p>\n"; ?>
<input type="submit" name="post-submit"/>
</form>
<?php
$qs = $db->query("SELECT * FROM questions WHERE user = '" . $user["id"] . "' LIMIT 0, 10;");
while($current = $qs->fetchArray(SQLITE3_ASSOC)){
echo("<h3>". $current["by"] ."</h3>");
echo("<p>". $current["question"] ."<p>");
}
?>
</body>
</html>