1
0
Fork 0
mirror of https://github.com/sbrl/Pepperminty-Wiki.git synced 2024-11-22 04:23:01 +00:00

bugfixed edit action

prevented redirect when attempting to edit while editing is disabled
This commit is contained in:
Starbeamrainbowlabs 2015-01-21 20:50:38 +00:00
parent 00e11ce6a4
commit dbe9155367

242
index.php
View file

@ -1,124 +1,124 @@
<?php <?php
$start_time = time(true); $start_time = time(true);
/* /*
* Pepperminty Wiki * Pepperminty Wiki
* ================ * ================
* Inspired by Minty Wiki by am2064: * Inspired by Minty Wiki by am2064:
* Link: https://github.com/am2064/Minty-Wiki * Link: https://github.com/am2064/Minty-Wiki
* *
* Credits: * Credits:
* Code by @Starbeamrainbowlabs * Code by @Starbeamrainbowlabs
* Slimdown - by Johnny Broadway from https://gist.github.com/jbroadway/2836900 * Slimdown - by Johnny Broadway from https://gist.github.com/jbroadway/2836900
* Bug reports: * Bug reports:
* #1 - Incorrect closing tag - nibreh <https://github.com/nibreh/> * #1 - Incorrect closing tag - nibreh <https://github.com/nibreh/>
*/ */
//the site's name //the site's name
$sitename = "Pepperminty Wiki"; $sitename = "Pepperminty Wiki";
//the url from which to fetch updates. Defaults to the master (development) branch If there is sufficient demand, a separate stable branch will be created. //the url from which to fetch updates. Defaults to the master (development) branch If there is sufficient demand, a separate stable branch will be created.
//currently not implemented (yet). //currently not implemented (yet).
$updateurl = "https://raw.githubusercontent.com/sbrl/pepperminty-wiki/master/index.php"; $updateurl = "https://raw.githubusercontent.com/sbrl/pepperminty-wiki/master/index.php";
//the secret key used to perform 'dangerous' actions, like updating the wiki, and deleting pages. It is strongly advised that you change this! //the secret key used to perform 'dangerous' actions, like updating the wiki, and deleting pages. It is strongly advised that you change this!
//note that neither of these features have been added yet. //note that neither of these features have been added yet.
$sitesecret = "ed420502615bac9037f8f12abd4c9f02"; $sitesecret = "ed420502615bac9037f8f12abd4c9f02";
//whether people can edit the site //whether people can edit the site
$editing = true; $editing = true;
//the maximum number of characters allowed in a single page //the maximum number of characters allowed in a single page
$maxpagesize = 135000; //135,000 characters, or 50 pages $maxpagesize = 135000; //135,000 characters, or 50 pages
//whether users who aren't logged in are allowed to edit //whether users who aren't logged in are allowed to edit
$anonedits = false; $anonedits = false;
//the name of the page that will act as the home page for the wiki. This page will be served if the user didn't specify a page. //the name of the page that will act as the home page for the wiki. This page will be served if the user didn't specify a page.
$defaultpage = "Main Page"; $defaultpage = "Main Page";
//usernames and passwords - passwords should be hashed with sha256 //usernames and passwords - passwords should be hashed with sha256
$users = [ $users = [
"admin" => "5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8", //password "admin" => "5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8", //password
"user" => "873ac9ffea4dd04fa719e8920cd6938f0c23cd678af330939cff53c3d2855f34" //cheese "user" => "873ac9ffea4dd04fa719e8920cd6938f0c23cd678af330939cff53c3d2855f34" //cheese
]; ];
//array of usernames that are administrators. //array of usernames that are administrators.
//administrators can delete and move pages, though this functionality hasn't been added yet. //administrators can delete and move pages, though this functionality hasn't been added yet.
$admins = [ "admin" ]; $admins = [ "admin" ];
//The string that is prepended before an admin's name on the nav bar. defaults to a diamond shape (&#9670;). //The string that is prepended before an admin's name on the nav bar. defaults to a diamond shape (&#9670;).
$admindisplaychar = "&#9670;"; $admindisplaychar = "&#9670;";
//contact details for the site administrator. Since user can only be added by editing this file, people will need a contact address to use to ask for an account. Displayed at the bottom of the page, and will be appropriatly obfusticateed to deter spammers. //contact details for the site administrator. Since user can only be added by editing this file, people will need a contact address to use to ask for an account. Displayed at the bottom of the page, and will be appropriatly obfusticateed to deter spammers.
$admindetails = [ $admindetails = [
"name" => "Administrator", "name" => "Administrator",
"email" => "admin@localhost" "email" => "admin@localhost"
]; ];
//array of links and display text to display at the top of the site //array of links and display text to display at the top of the site
$navlinks = [ $navlinks = [
[ "Home", "index.php" ], [ "Home", "index.php" ],
[ "Login", "index.php?action=login" ], [ "Login", "index.php?action=login" ],
" | ", " | ",
"search", "search",
" | ", " | ",
[ "Read", "index.php?page={page}" ], [ "Read", "index.php?page={page}" ],
[ "Edit", "index.php?action=edit&page={page}" ], [ "Edit", "index.php?action=edit&page={page}" ],
[ "Printable", "index.php?action=view&printable=yes&page={page}" ], [ "Printable", "index.php?action=view&printable=yes&page={page}" ],
" | ", " | ",
[ $admindisplaychar . "Delete", "index.php?action=delete&page={page}" ], [ $admindisplaychar . "Delete", "index.php?action=delete&page={page}" ],
[ $admindisplaychar . "Move", "index.php?action=move&page={page}" ], [ $admindisplaychar . "Move", "index.php?action=move&page={page}" ],
" | ", " | ",
[ "All Pages", "index.php?action=list" ], [ "All Pages", "index.php?action=list" ],
" | ", " | ",
[ "Credits", "index.php?action=credits" ], [ "Credits", "index.php?action=credits" ],
[ "Help", "index.php?action=help" ] [ "Help", "index.php?action=help" ]
]; ];
//string of css to include //string of css to include
//may be a url - urls will be referenced via a <link rel='stylesheet' /> tag //may be a url - urls will be referenced via a <link rel='stylesheet' /> tag
$css = "body { font-family: sans-serif; color: #333333; background: #f3f3f3; } $css = "body { font-family: sans-serif; color: #333333; background: #f3f3f3; }
label { display: inline-block; min-width: 10rem; } label { display: inline-block; min-width: 10rem; }
textarea[name=content] { display: block; width: 100%; height: 35rem; } textarea[name=content] { display: block; width: 100%; height: 35rem; }
/*input[name=page] { width: 16rem; }*/ /*input[name=page] { width: 16rem; }*/
nav { position: absolute; top: 5px; right: 5px; } nav { position: absolute; top: 5px; right: 5px; }
th { text-align: left; } th { text-align: left; }
.sitename { text-align: center; font-size: 2.5rem; color: #222222; } .sitename { text-align: center; font-size: 2.5rem; color: #222222; }
.footerdivider { margin-top: 4rem; }"; .footerdivider { margin-top: 4rem; }";
//the favicon //the favicon
//default: peppermint from https://openclipart.org/detail/19571/peppermint-candy-by-bluefrog23 //default: peppermint from https://openclipart.org/detail/19571/peppermint-candy-by-bluefrog23
$favicon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAB3VBMVEXhERHbKCjeVVXjb2/kR0fhKirdHBziDg6qAADaHh7qLy/pdXXUNzfMAADYPj7ZPDzUNzfbHx/fERHpamrqMTHgExPdHx/bLCzhLS3fVFTjT0/ibm7kRkbiLi7aKirdISHeFBTqNDTpeHjgERHYJCTVODjYQkLaPj6/AADVOTnpbW3cIyPdFRXcJCThMjLiTU3ibW3fVVXaKyvcERH4ODj+8fH/////fHz+Fxf4KSn0UFD/CAj/AAD/Xl7/wMD/EhL//v70xMT/+Pj/iYn/HBz/g4P/IyP/Kyv/7Oz0QUH/9PT/+vr/ior/Dg7/vr7/aGj/QED/bGz/AQH/ERH/Jib/R0f/goL/0dH/qan/YWH/7e3/Cwv4R0f/MTH/enr/vLz/u7v/cHD/oKD/n5//aWn+9/f/k5P/0tL/trb/QUH/cXH/dHT/wsL/DQ3/p6f/DAz/1dX/XV3/kpL/i4v/Vlb/2Nj/9/f/pKT+7Oz/V1f/iIj/jIz/r6//Zmb/lZX/j4//T0//Dw/4MzP/GBj/+fn/o6P/TEz/xMT/b2//Tk7/OTn/HR3/hIT/ODj/Y2P/CQn/ZGT/6Oj0UlL/Gxv//f3/Bwf/YmL/6+v0w8P/Cgr/tbX0QkL+9fX4Pz/qNzd0dFHLAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfeCxINNSdmw510AAAA5ElEQVQYGQXBzSuDAQCA8eexKXOwmSZepa1JiPJxsJOrCwcnuchBjg4O/gr7D9zk4uAgJzvuMgcTpYxaUZvSm5mUj7TX7ycAqvoLIJBwStVbP0Hom1Z/ejoxrbaR1Jz6nWinbKWttGRgMSSjanPktRY6mB9WtRNTn7Ilh7LxnNpKq2/x5LnBitfz+hx0qxUaxhZ6vwqq9bx6f2XXvuUl9SVQS38NR7cvln3v15tZ9bQpuWDtZN3Lgh5DWJex3Y+z1KrVhw21+CiM74WZo83DiXq0dVBDYNJkFEU7WrwDAZhRtQrwDzwKQbT6GboLAAAAAElFTkSuQmCC"; $favicon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAB3VBMVEXhERHbKCjeVVXjb2/kR0fhKirdHBziDg6qAADaHh7qLy/pdXXUNzfMAADYPj7ZPDzUNzfbHx/fERHpamrqMTHgExPdHx/bLCzhLS3fVFTjT0/ibm7kRkbiLi7aKirdISHeFBTqNDTpeHjgERHYJCTVODjYQkLaPj6/AADVOTnpbW3cIyPdFRXcJCThMjLiTU3ibW3fVVXaKyvcERH4ODj+8fH/////fHz+Fxf4KSn0UFD/CAj/AAD/Xl7/wMD/EhL//v70xMT/+Pj/iYn/HBz/g4P/IyP/Kyv/7Oz0QUH/9PT/+vr/ior/Dg7/vr7/aGj/QED/bGz/AQH/ERH/Jib/R0f/goL/0dH/qan/YWH/7e3/Cwv4R0f/MTH/enr/vLz/u7v/cHD/oKD/n5//aWn+9/f/k5P/0tL/trb/QUH/cXH/dHT/wsL/DQ3/p6f/DAz/1dX/XV3/kpL/i4v/Vlb/2Nj/9/f/pKT+7Oz/V1f/iIj/jIz/r6//Zmb/lZX/j4//T0//Dw/4MzP/GBj/+fn/o6P/TEz/xMT/b2//Tk7/OTn/HR3/hIT/ODj/Y2P/CQn/ZGT/6Oj0UlL/Gxv//f3/Bwf/YmL/6+v0w8P/Cgr/tbX0QkL+9fX4Pz/qNzd0dFHLAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfeCxINNSdmw510AAAA5ElEQVQYGQXBzSuDAQCA8eexKXOwmSZepa1JiPJxsJOrCwcnuchBjg4O/gr7D9zk4uAgJzvuMgcTpYxaUZvSm5mUj7TX7ycAqvoLIJBwStVbP0Hom1Z/ejoxrbaR1Jz6nWinbKWttGRgMSSjanPktRY6mB9WtRNTn7Ilh7LxnNpKq2/x5LnBitfz+hx0qxUaxhZ6vwqq9bx6f2XXvuUl9SVQS38NR7cvln3v15tZ9bQpuWDtZN3Lgh5DWJex3Y+z1KrVhw21+CiM74WZo83DiXq0dVBDYNJkFEU7WrwDAZhRtQrwDzwKQbT6GboLAAAAAElFTkSuQmCC";
//the prefix that should be used in the names of the session variables. //the prefix that should be used in the names of the session variables.
//defaults to an all lower case version of the site name with all non alphanumeric characters removed //defaults to an all lower case version of the site name with all non alphanumeric characters removed
//remember that changing this will log everyone out since the session varibles' name will have changed //remember that changing this will log everyone out since the session varibles' name will have changed
//normally you wouldn't have to change this - this setting is left over from when we used a cookie to store login details //normally you wouldn't have to change this - this setting is left over from when we used a cookie to store login details
$sessionprefix = preg_replace("/[^0-9a-z]/i", "", strtolower($sitename)); $sessionprefix = preg_replace("/[^0-9a-z]/i", "", strtolower($sitename));
/* /*
Actions: Actions:
view - view a page view - view a page
page - page name page - page name
printable=[yes/no] - make output printable printable=[yes/no] - make output printable
edit - open editor for page edit - open editor for page
page - page name page - page name
save - save edits to page save - save edits to page
page - page name page - page name
list - list pages list - list pages
category - the category to list [optional] category - the category to list [optional]
login - login to the site login - login to the site
logout - logout logout - logout
checklogin - check login credentials and set cookie checklogin - check login credentials and set cookie
hash - hash a string with sha256 hash - hash a string with sha256
string - string to hash string - string to hash
help - get help help - get help
credits - view the credits credits - view the credits
delete - delete a page delete - delete a page
page - page name page - page name
delete=yes - actually do the deletion (otherwise we display a prompt) delete=yes - actually do the deletion (otherwise we display a prompt)
*/ */
/////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////
@ -504,12 +504,6 @@ switch($_GET["action"])
* %edit% * %edit%
*/ */
case "edit": case "edit":
if(!$editing)
{
http_response_code(203);
header("location: index.php?page=$page");
}
$filename = "$page.md"; $filename = "$page.md";
$creatingpage = !isset($pageindex->$page); $creatingpage = !isset($pageindex->$page);
if((isset($_GET["newpage"]) and $_GET["newpage"] == "true") or $creatingpage) if((isset($_GET["newpage"]) and $_GET["newpage"] == "true") or $creatingpage)