Register - Login
Views: 85598177
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - JCS - Stats - Latest Posts - Color Chart - Smilies
09-20-17 06:36:15 PM

Jul - Projects and Creations - BoardC New poll - New thread - New reply
Pages: 1 2Next newer thread | Next older thread
Kak

gg photobucket
Level: 67


Posts: 1535/1627
EXP: 2523399
For next: 69473

Since: 09-03-13
From: ???

Since last post: 33 days
Last activity: 11 days

Posted on 04-24-16 08:48:51 PM (last edited by Kak at 10-13-16 04:05:34 AM) Link | Quote

BoardC

This is a little project I've been working on and off since early January that basically attempts to clone the Jul codebase. The original plan was to port the actual Jul in PDO but it failed pretty badly, so I ended up creating this for whatever reason.

The current version (1.0) is finally "finished" and it's pretty much complete.
well, complete for what can go in a distributable release

Current list of distributed versions:
0.06 - Link
0.15 - Link
1.0 - Link
1.0a - Link (fixes username related issues and a broken query)
1.0b - Link
1.0d - Link (more bugfixes)
Some notes you may want to read:

  • I have tested this under PHP 5.6.15 and MySQL 5.0.11. It should work with later 5.x versions. I'm not sure about PHP 7.x since I've never tested it on that (I assume some features like error reporting won't work properly), but it won't run on anything earlier than PHP 5.5 as it uses functions like password_hash
  • The majority of the settings are stored in lib/config.php. While the installer creates this file, the "supported" way to edit this file is to... edit it yourself. I hope you like using text editors :v
  • Various default strings are stored at the beginning of lib/layout.php (ie: ""user groups"", post syndromes). Again, I hope you like using text editors.
  • To install this you launch install.php and follow the instructions. It's recommended to delete it after a successful install. You should do the same with sandbox.php, (which I use on my local test board for my own convenience - if you have a local test board you really do want to keep it in case of stuff accidentaly blowing up).
  • By default, the installer options are in "AB1.x Compatiblity" mode, which (lazily) recreates register_globals and tccell declarations for AB1.92 porting convenience under the Misc tab. I'm not going to change this as clicking on two radio boxes isn't hard.
  • While this is inspired and is meant to look like Jul, it's not an *exact* clone. There are some... various differences on the way it works.
  • Some of the features, such as the Log, Denied Requests, ipinfo flags and the news engine either do not work or have been removed from the distributable releases, depending on version.

This thread is mostly for feature suggestion and/or to help spot possible bugs in the codebase.

---Old post below, which referred to v0.15---
EDIT: I have removed the repository of BoardC from Github. I prefer to give distributable versions in the thread (so that people won't try to use prerelease versions that are buggy).

For some reason I thought it was a good idea to try creating an Acmlmboard clone as an exercise in PHP.

I tested this on the latest version of PHP 5.x (the one that comes with XAMPP), maybe on 7.x versions will work too but I haven't checked.

It goes without saying, but this is obviously not complete.
Xkeeper






Posted on 04-24-16 11:22:43 PM Link | Quote
Just curious, is this on GitHub somewhere? (And if not, why not? )

Reminds me that I should probably create an install script for this forum too at some point, not that anybody should use this system at the moment.
Kak

gg photobucket
Level: 67


Posts: 1540/1627
EXP: 2523399
For next: 69473

Since: 09-03-13
From: ???

Since last post: 33 days
Last activity: 11 days

Posted on 04-25-16 07:41:27 AM (last edited by Schezo at 09-22-16 05:11:33 PM) Link | Quote
I don't have a GitHub account yet - and until today I mostly kept this project more or less under wraps. (with an exception of an older build from some weeks ago which is even more incomplete)

Although now I could try the GitHub thing. (and update this post if I get to do it)
EDIT: editing this post is kinda pointless now, but as I said I was going to once I put it on GitHub...
StapleButter
Member
Level: 39


Posts: 221/459
EXP: 401748
For next: 3023

Since: 02-24-13
From: your dreams

Since last post: 15 days
Last activity: 7 days

Posted on 04-25-16 08:55:17 AM Link | Quote
Acmlmboard forks/clones/whatever are always interesting to see.


I'd give out mine (Acmlmboard 2.064), but considering what has happened before, well...
Kak

gg photobucket
Level: 67


Posts: 1541/1627
EXP: 2523399
For next: 69473

Since: 09-03-13
From: ???

Since last post: 33 days
Last activity: 11 days

Posted on 04-25-16 09:15:15 AM Link | Quote
Originally posted by StapleButter
I'd give out mine (Acmlmboard 2.064), but considering what has happened before, well...
For curiosity, what about the original 2.0a1? (which cannot be found online at all, for whatever reason)
StapleButter
Member
Level: 39


Posts: 222/459
EXP: 401748
For next: 3023

Since: 02-24-13
From: your dreams

Since last post: 15 days
Last activity: 7 days

Posted on 04-25-16 11:17:31 AM Link | Quote
I can hand that over for anyone who wants it, I guess. It should be the 2.0a1 leaked by Arbe, not sure if I still have it 100% clean though. I also had a DB script for it that was built from a 1.92 DB, but had a few issues.
Kak

gg photobucket
Level: 67


Posts: 1547/1627
EXP: 2523399
For next: 69473

Since: 09-03-13
From: ???

Since last post: 33 days
Last activity: 11 days

Posted on 04-26-16 05:57:49 PM (last edited by Schezo at 09-22-16 05:11:53 PM) Link | Quote
Originally posted by Xkeeper
Just curious, is this on GitHub somewhere? (And if not, why not? )
uh oh it happened it unhappened
MrRean
User
Level: 8


Posts: 6/12
EXP: 1663
For next: 524

Since: 05-02-13


Since last post: 269 days
Last activity: 214 days

Posted on 04-26-16 06:06:30 PM Link | Quote
why did I think that this could be ran by C scripts? lol...
Kak

gg photobucket
Level: 67


Posts: 1548/1627
EXP: 2523399
For next: 69473

Since: 09-03-13
From: ???

Since last post: 33 days
Last activity: 11 days

Posted on 04-26-16 06:11:29 PM (last edited by Schezo at 04-26-16 06:12:29 PM) Link | Quote
Originally posted by MrRean
why did I think that this could be ran by C scripts? lol...
BoardC++
StapleButter
Member
Level: 39


Posts: 224/459
EXP: 401748
For next: 3023

Since: 02-24-13
From: your dreams

Since last post: 15 days
Last activity: 7 days

Posted on 04-26-16 06:21:49 PM Link | Quote
I see you didn't keep the $tccell1/etc variables, which is a good thing. Those only really made sense back in the old days when CSS wasn't a thing, and background/color/etc attributes had to be hardcoded all over the place.
skyu

Level: 15


Posts: 5/83
EXP: 16321
For next: 63

Since: 06-11-16
From: a grave

Since last post: 312 days
Last activity: 329 days

Posted on 07-02-16 12:33:58 AM Link | Quote
Great job! I'm using the software right now.. works well, but when is the RPG system going to be finished?

(sorry for bump, also, but found this on google earlier)
Kak

gg photobucket
Level: 67


Posts: 1557/1627
EXP: 2523399
For next: 69473

Since: 09-03-13
From: ???

Since last post: 33 days
Last activity: 11 days

Posted on 07-05-16 03:21:38 PM Link | Quote
"Finishing" the code for the RPG is pretty much one of the last things, along with GDImage stuff.

The reason: I'm keeping for last everything that requires me to directly copy/paste between codebases.

Now that I've finished the school exams, what I'm doing is fixing some bugs and replacing the unread post system with one that wastes less space in the db.
skyu

Level: 15


Posts: 13/83
EXP: 16321
For next: 63

Since: 06-11-16
From: a grave

Since last post: 312 days
Last activity: 329 days

Posted on 07-23-16 11:57:47 AM Link | Quote
oh yeah, there's a bug where you apparently can't delete a post if it's not on the first page.

as well as the most recect PM never changes from the first user who PMed you.
Kak

gg photobucket
Level: 67


Posts: 1559/1627
EXP: 2523399
For next: 69473

Since: 09-03-13
From: ???

Since last post: 33 days
Last activity: 11 days

Posted on 07-23-16 04:28:18 PM (last edited by Schezo at 07-23-16 05:42:07 PM) Link | Quote
The first bug is caused by me putting the thread ID instead of the post ID in the delete link, as actions are only applied on the posts shown in the page (the correct page is determined by the post id, while the thread ID puts you at page 1). I should probably change the way post actions are applied anyway as "fun" stuff happens if you refresh the page (ie: if you can undelete posts it will do so).

The second one is due to a query I had problems with in the index page. I tried to avoid subqueries and it seems it didn't work. Oh well.

EDIT: And there's a third bug about replying to PMs not working properly. It mistakenly took the user id as pm id so it wouldn't always quote.

Anyway, both those three bugs have been fixed in my local copy.
StapleButter
Member
Level: 39


Posts: 297/459
EXP: 401748
For next: 3023

Since: 02-24-13
From: your dreams

Since last post: 15 days
Last activity: 7 days

Posted on 07-27-16 06:47:43 AM Link | Quote
An idea to prevent the "refreshing does action again" is to redirect to a non-action URL after the action is done.

Also, if you're going to have GET-triggered actions, look into protecting them from CSRF.
Kak

gg photobucket
Level: 67


Posts: 1561/1627
EXP: 2523399
For next: 69473

Since: 09-03-13
From: ???

Since last post: 33 days
Last activity: 11 days

Posted on 07-27-16 02:48:20 PM Link | Quote
The first one was already fixed by moving around the post actions.

As for the second part... oh dear, I have forgotted about that.
In any case I'm experimenting with a token system using password_hash (currently only used when logging out for testing).
StapleButter
Member
Level: 39


Posts: 300/459
EXP: 401748
For next: 3023

Since: 02-24-13
From: your dreams

Since last post: 15 days
Last activity: 7 days

Posted on 07-27-16 02:52:51 PM Link | Quote
I just SHA256-hash a bunch of data that contains secrets and user-specific parts, and use it as a token.

Using password_hash can work too, but doesn't that take a 'long' time to generate hashes, by design?
Kak

gg photobucket
Level: 67


Posts: 1562/1627
EXP: 2523399
For next: 69473

Since: 09-03-13
From: ???

Since last post: 33 days
Last activity: 11 days

Posted on 07-27-16 03:04:12 PM (last edited by Schezo at 07-27-16 03:06:04 PM) Link | Quote
Well, yeah that would also be a way to get around the 72 character limit from password_hash in blowfish.

Coming from someone who has 100 posts/page, using a slow algorithm probably wouldn't be a great idea.
StapleButter
Member
Level: 39


Posts: 301/459
EXP: 401748
For next: 3023

Since: 02-24-13
From: your dreams

Since last post: 15 days
Last activity: 7 days

Posted on 07-27-16 03:08:16 PM Link | Quote
generating the token once per page load only (or storing it with user data, provided it can be regenerated) is enough, unless you want it to be specific to each action link
skyu

Level: 15


Posts: 29/83
EXP: 16321
For next: 63

Since: 06-11-16
From: a grave

Since last post: 312 days
Last activity: 329 days

Posted on 08-11-16 01:43:47 PM Link | Quote
a few other bugs I've come across;

-if you use The (Ban) Button™, it deletes all that user's posts, but the thread listing is still there and I haven't found a way to get rid of it, since if you click on it the page simply says it doesn't exist.

more bugs involving that function; it does delete the posts out of existence, but page numbers don't automatically update; meaning the last page may not contain any posts. it's fixable, but annoying.
Pages: 1 2Next newer thread | Next older thread
Jul - Projects and Creations - BoardC New poll - New thread - New reply




Rusted Logic

Acmlmboard - commit 2f1bc75 [2017-08-27]
©2000-2017 Acmlm, Xkeeper, Inuyasha, et al.

29 database queries, 15 query cache hits.
Query execution time: 0.181611 seconds
Script execution time: 0.016148 seconds
Total render time: 0.197759 seconds