Compare commits

...

2 commits

Author SHA1 Message Date
de4cbe9ee6
Ability to post
This is HUUUUUUUGE milestone B)
2024-12-20 16:41:21 +02:00
f717080e8a
Small fixes and things 2024-12-20 16:40:32 +02:00
4 changed files with 45 additions and 7 deletions

View file

@ -12,3 +12,6 @@ docker-run: data/
FORCE: FORCE:
cp -r src/data ./ cp -r src/data ./
chmod 777 data chmod 777 data
docker-run-dev: data/ src/
docker run -v $(current_dir)src/:/var/www/html/ -v $(current_dir)data/:/var/www/html/data/ -p 8080:80 snuffler/snuffler-web:dev

View file

@ -102,7 +102,7 @@ class DataBase extends SQLite3 {
function addPersona($userid, $handle, $name, $about=NULL, $colour=NULL) { function addPersona($userid, $handle, $name, $about=NULL, $colour=NULL) {
$id = hexdec(uniqid()); $id = hexdec(uniqid());
$sql = "INSERT INTO personas (id, userid, handle, name, colour) VALUES ('$id', '$userid', '$handle', '$about', '$colour');"; $sql = "INSERT INTO personas (id, userid, handle, name, about, colour) VALUES ('$id', '$userid', '$handle', '$name', '$about', '$colour');";
$ret = $this->exec($sql); $ret = $this->exec($sql);
if(!$ret) { if(!$ret) {
die($this->lastErrorMsg()); die($this->lastErrorMsg());
@ -125,6 +125,9 @@ class DataBase extends SQLite3 {
return false; return false;
} }
$dbhash = $ret[0]; $dbhash = $ret[0];
if(!$dbhash) {
return false;
}
return password_verify($password, $dbhash); return password_verify($password, $dbhash);
} }
@ -192,5 +195,19 @@ class DataBase extends SQLite3 {
} }
return $array; return $array;
} }
function getPersonas($userid=NULL) {
if(!$userid) {
$userid = $this->getAuthedUserId();
}
$sql = "SELECT * FROM personas AS persona WHERE userid='$userid' ORDER BY name;";
$ret = $this->query($sql);
$array = array();
while ($row = $ret->fetchArray(SQLITE3_ASSOC)) {
array_push($array, $row);
}
return $array;
}
} }
?> ?>

View file

@ -55,12 +55,16 @@ if(!$database) {
} else { } else {
?> ?>
<a href="logout.php">LOG OUT</a> <a href="logout.php">LOG OUT</a>
<form id="postform"> <form id="postform" method="post" action="post.php">
<textarea id="postformtextarea" name="text" rows="5" placeholder="Whatcha snuffin' about?"></textarea><br /> <textarea id="postformtextarea" name="text" rows="5" placeholder="Whatcha snuffin' about?"></textarea><br />
<div id="postformactionrow"> <div id="postformactionrow">
<select id="user" name="user"> <select id="persona" name="persona">
<option value=0>SYSTEM</option> <?php
<option value=1>User</option> $personas = $database->getPersonas();
foreach($personas as $persona) {
echo "<option value=" . $persona['persona.id'] . ">" . $persona['persona.name'] . "</option>";
}
?>
</select> </select>
<input type="submit" id="submit" name="submit" value="Snuff!" /> <input type="submit" id="submit" name="submit" value="Snuff!" />
</div> </div>
@ -80,8 +84,8 @@ $posts = array_reverse($database->getPosts());
foreach($posts as $post) { foreach($posts as $post) {
echo '<div class="post">'; echo '<div class="post">';
echo '<div class="postinfo">'; echo '<div class="postinfo">';
echo '<strong>' . $post["user.name"] . '</strong>'; echo $post["user.name"] . ': <strong>' . $post["persona.name"] . '</strong>';
echo '<br><small>@' . $post["user.handle"] . '</small>'; echo '<br><small>@' . $post["user.handle"] . '@' . $post["persona.handle"] . '</small>';
echo '</div>'; echo '</div>';
echo '<p>' . $post["post.text"] . '</p>'; echo '<p>' . $post["post.text"] . '</p>';

14
src/post.php Normal file
View file

@ -0,0 +1,14 @@
<?php
if (empty($_POST) || !isset($_POST['submit'])) {
die("Post canceled: no post / no submit");
}
require_once('inc/database.php');
$db = new DataBase();
$userid = $db->getAuthedUserId();
$persid = $_POST['persona']; // TODO: CHECK OWNERSHIP! (db schema?)
if($userid) {
$db->addPost($_POST['text'], $userid, $persid);
}
header("Location: /");
?>