This website requires JavaScript.
277ea4470c
Fix favicon links
main
tim
2026-09-26 15:01:58 +02:00
b68c2eb568
Give the feed of an empty site the current date.
tim
2026-09-26 14:28:32 +02:00
8d6282348c
Show no date for a story without one.
tim
2026-09-26 14:27:45 +02:00
71f768bff2
Log out with a POST form.
tim
2026-09-26 14:26:03 +02:00
061f9c1a37
Hash the password for an unknown username at login.
tim
2026-09-26 14:24:52 +02:00
c8030b759d
Leave the image data out of the story lists.
tim
2026-09-26 14:22:44 +02:00
ed8918e7fd
Refuse session ids that PHP did not make.
tim
2026-09-26 14:20:56 +02:00
30b275b902
Send HSTS on HTTPS pages.
tim
2026-09-26 14:20:01 +02:00
b6a1eff3e6
Stop other sites from framing the pages.
tim
2026-09-26 14:19:19 +02:00
ed6f98e0ac
Limit a story to 64 KB before HTML Purifier runs.
tim
2026-09-26 14:18:28 +02:00
bf36ec25fd
Load a saved story into the form for editors only.
tim
2026-09-26 14:17:14 +02:00
8f4851e576
Reject invalid uploads and expand flow tests.
tim
2026-09-26 14:02:41 +02:00
716a609f4e
Hide form parts with the hidden attribute.
tim
2026-09-26 12:43:20 +02:00
65426a327d
Remove Google Analytics.
tim
2026-09-26 14:27:01 +02:00
77800174c9
Use the reCAPTCHA Enterprise API.
tim
2026-09-26 12:42:19 +02:00
cc47d0ee51
Hide the word Menu on phones.
tim
2026-09-26 11:19:49 +02:00
45bca9e76a
Use the default for an empty UPLOAD_DIR_LIMIT_MB.
tim
2026-09-26 11:15:55 +02:00
ae85b23ab0
Keep page titles clear of the mobile menu.
tim
2026-09-26 11:15:01 +02:00
504d363642
Limit each image to 1 MB.
tim
2026-09-26 10:29:39 +02:00
c4fcef21aa
Limit the images that previews keep.
tim
2026-09-26 10:04:55 +02:00
fe30a0aaa1
Do not let caches keep queued or hidden images.
tim
2026-09-26 10:04:41 +02:00
3df88e0b4c
Check editor accounts.
tim
2026-09-26 10:04:27 +02:00
5d657d7e45
Take the site address from SITE_URL.
tim
2026-09-26 10:04:13 +02:00
52f4855850
Ignore request values that are not strings.
tim
2026-09-26 10:03:59 +02:00
be814a3ba5
Take redirects off the Host header.
tim
2026-09-26 09:32:49 +02:00
4657088d23
Keep the space of the line-break note under the image box.
tim
2026-09-26 09:22:53 +02:00
f5b41a09d6
Give the image box the size of the story editor.
tim
2026-09-26 09:15:48 +02:00
2214a6ae38
Mark the active Text or Image tab.
tim
2026-09-26 09:05:48 +02:00
ea5732ff83
Style the story search on the edit page.
tim
2026-09-26 08:51:48 +02:00
20d0610200
Lay out the publishing forms in one column on phones.
tim
2026-09-26 08:06:06 +02:00
5593341b04
Add a README for the tests, and block the development files.
tim
2026-09-26 03:48:09 +02:00
b7022ab486
Add JavaScript tests.
tim
2026-09-26 03:48:09 +02:00
ed959888b4
Add PHP unit tests and page tests.
tim
2026-09-26 03:48:09 +02:00
848c447c5b
Put a line break after a rule, and show a link as it was typed.
tim
2026-09-26 03:48:09 +02:00
7d8cd8a89d
Refuse an upload name that ends in a new line.
tim
2026-09-26 03:48:09 +02:00
a23f07cc48
Let the tests replace the database connection class.
tim
2026-09-26 03:48:09 +02:00
2c3a744e2e
Turn the captcha off when RECAPTCHA_SITE_KEY is empty.
tim
2026-09-26 00:19:21 +02:00
babe5361e7
Edit the story source in the textarea.
tim
2026-09-26 00:10:14 +02:00
6c745ed6a9
Use solid borders and quieter colors in the forms and the editor.
tim
2026-09-26 00:10:06 +02:00
a9daa6a792
Replace TinyMCE 4.2.8 with a small local editor.
tim
2026-09-25 22:58:05 +02:00
aee8a830d7
Write the pager page size in words without PEAR.
tim
2026-09-25 22:32:11 +02:00
589ae4c1fa
Give the Post button its own id.
tim
2026-09-25 22:12:35 +02:00
1c76245808
Mark the Comments label when it fails validation.
tim
2026-09-25 22:12:27 +02:00
94db52e20d
Keep line breaks in the new-submission email.
tim
2026-09-25 22:12:00 +02:00
601df8a9be
Apply the en dash to number ranges in stories.
tim
2026-09-25 22:11:31 +02:00
f78fd09710
Accept only whole numbers for start and show, and cap show at 50.
tim
2026-09-25 22:11:03 +02:00
f97bdecbc1
Log database errors instead of showing them.
tim
2026-09-25 21:57:11 +02:00
bcba2e1ca3
Remove unused old libraries and archives.
tim
2026-09-25 21:55:53 +02:00
720bf91ff2
Escape RSS feed fields so the feed is valid XML.
tim
2026-09-25 21:55:02 +02:00
1468cf7138
Require a captcha for visitor submissions and for login.
tim
2026-09-25 21:54:14 +02:00
1698680e24
Serve stored images safely and drop committed uploads.
tim
2026-09-25 21:48:17 +02:00
c5ce7661f5
Limit failed logins.
tim
2026-09-25 21:46:38 +02:00
0f00cf8f49
Stop the page after each HTTPS redirect.
tim
2026-09-25 21:45:19 +02:00
1541ab8411
Clear the session cookie with the same domain on logout.
tim
2026-09-25 21:44:42 +02:00
d8c05e82b1
Make the session cookie last until the browser closes.
tim
2026-09-25 21:42:56 +02:00
ee20dc6eda
Store persistent-login keys as SHA-256 hashes.
tim
2026-09-25 21:42:34 +02:00
dfa6d71198
Hash editor passwords with Argon2id and upgrade old hashes.
tim
2026-09-25 21:41:36 +02:00
15ad07423a
Match usernames and session keys with = instead of LIKE.
tim
2026-09-25 21:39:25 +02:00
36c7fe97c5
Give editors a new session id when they log in.
tim
2026-09-25 21:39:06 +02:00
41c46a43c6
Add CSRF protection to every form that changes data.
tim
2026-09-25 21:38:22 +02:00
f6bdf10228
Escape request and database values in forms and links.
tim
2026-09-25 21:36:27 +02:00
00e1829f8b
Escape story fields and clean story HTML with HTML Purifier.
tim
2026-09-25 21:34:10 +02:00
e881ddb458
Keep uploads outside the web root.
tim
2026-09-25 21:31:47 +02:00
c85f54116c
Use bound parameters for every query that takes user data.
tim
2026-09-25 21:29:09 +02:00
cda0602c95
Show the queue and hidden stories to editors only.
tim
2026-09-25 21:26:32 +02:00
0e5e742210
Stop visitors from writing to the live table.
tim
2026-09-25 21:25:43 +02:00
00829a0c0d
Port the code to PHP 8.5.
tim
2026-09-25 21:18:58 +02:00
15e81e17cc
Lay out the forms on a grid.
tim
2026-09-25 23:32:08 +02:00
dd43940366
Rework the layout for small screens.
tim
2026-09-25 23:32:08 +02:00
b94dd648ec
Ensure scripts work without PHP short tags.
master-backup
tim
2018-11-14 00:20:05 +02:00
14ce02fcfc
Fix for fluid width.
tim
2015-11-22 12:18:15 +02:00
2cf83531bd
Add the actual font (mostly for historical record)
tim
2015-11-22 02:26:16 +02:00
3b8f5e6599
Fix some layout problems, and caching issues.
tim
2015-11-22 01:43:29 +02:00
925a8572d0
Fix captchas
tim
2015-11-22 00:22:34 +02:00
602d644181
Fix responsive layout.
tim
2015-11-21 23:27:53 +02:00
f3fd6fd3f1
A number of changes to the CSS, page layout (moved to HTML5), and updated the editor.
tim
2015-11-21 21:54:02 +02:00
a00c1b4c9d
Fix some issues with secure cookies being overwritten by insecure site. Now, /publish/{edit,addeditor,login,logout} must be accessed via https://; other pages should not be (but can be).
tim
2014-04-24 09:56:25 +02:00
7fc40728f5
Initial commit.
tim
2013-05-17 23:38:44 +02:00