Profile
MAJ is an Open Source, PHP-based content management system (CMS) that can be deployed as a blog, bulletin or message board, Internet forum, and wiki. It is extensible via PHP panels and is HTML5 and CSS3 ready.
Git
This blob has been accessed 705 times via Git panel.

  1. <?php
  2.  
  3.  
  4. header("Cache-control: private");
  5.  
  6. error_reporting(E_ERROR);
  7.  
  8. if (isset($_SESSION['logged_in']) and ($_SESSION['user_agent'] != $_SERVER['HTTP_USER_AGENT'])) {
  9.         header("Location: login.php");
  10. }
  11.  
  12.         function stripslashes_array($data) {
  13.                 if (is_array($data)) {
  14.                         foreach ($data as $key => $value) {
  15.                                 $data[$key] = stripslashes_array($value);
  16.                         }
  17.                         return $data;
  18.                 }
  19.                 else {
  20.                         return stripslashes($data);
  21.                 }
  22.         }
  23.         $_REQUEST = stripslashes_array($_REQUEST);
  24. }
  25.  
  26. $login_username = file_get_contents("data/username.txt");
  27.  
  28. if (isset($_POST['title_input']) and isset($_POST['body_input'])) {
  29.         header("Location: edit.php?entry={$_REQUEST['entry']}");
  30. }
  31.  
  32. if (!isset($_REQUEST['entry'])) {
  33.         exit();
  34. }
  35.  
  36. if (!file_exists("data/items/{$_REQUEST['entry']}")) {
  37.         exit();
  38. }
  39.  
  40. if (!isset($_SESSION['logged_in'])) {
  41.         exit();
  42. }
  43.  
  44. $do = 0;
  45.  
  46. if ($_SESSION['logged_in'] == $login_username) {
  47.         $do = 1;
  48. }
  49.  
  50.  
  51. if (file_exists("data/members/active/{$_SESSION['logged_in']}/rw.txt") and file_exists("data/wiki.txt") and (file_exists("data/items/{$_REQUEST['entry']}/edit.txt") or (file_get_contents("data/items/{$_REQUEST['entry']}/author.txt") == $_SESSION['logged_in']))) {
  52.         $do = 1;
  53. }
  54.  
  55. if ($do == 0) {
  56.         exit();
  57. }
  58.  
  59. function rmdirr($recurse_dirname) {
  60.  
  61.     if (!file_exists($recurse_dirname)) {
  62.         return false;
  63.     }
  64.  
  65.     if (is_file($recurse_dirname)) {
  66.         return unlink($recurse_dirname);
  67.     }
  68.  
  69.     $recurse_dir = dir($recurse_dirname);
  70.     while (false !== $recurse_entry = $recurse_dir->read()) {
  71.  
  72.         if ($recurse_entry == '.' || $recurse_entry == '..') {
  73.             continue;
  74.         }
  75.  
  76.         rmdirr("$recurse_dirname/$recurse_entry");
  77.     }
  78.  
  79.     $recurse_dir->close();
  80.     return rmdir($recurse_dirname);
  81. }
  82.  
  83. function entry2date($f_entry) {
  84.  
  85.         $f_entry_year = substr($f_entry,0,4);
  86.         $f_entry_month = substr($f_entry,4,2);
  87.         $f_entry_day = substr($f_entry,6,2);
  88.         $f_entry_hour = substr($f_entry,8,2);
  89.         $f_entry_min = substr($f_entry,10,2);
  90.         $f_entry_sec = substr($f_entry,12,2);
  91.  
  92.         echo date("l, M j, Y, g:i A",mktime($f_entry_hour,$f_entry_min,$f_entry_sec,$f_entry_month,$f_entry_day,$f_entry_year));
  93. }
  94.  
  95. $title_file = "data/items/{$_REQUEST['entry']}/title.txt";
  96. $body_file = "data/items/{$_REQUEST['entry']}/body.txt";
  97. $date_file = "data/items/{$_REQUEST['entry']}/date.txt";
  98. $img_file = "data/items/{$_REQUEST['entry']}/image.txt";
  99. $revisions_file = "data/items/{$_REQUEST['entry']}/revisions.txt";
  100.  
  101. $max_image_size = 8000000;
  102. $max_file_size = 8000000;
  103.  
  104. ?>
  105.  
  106. <title>Edit</title>
  107.  
  108. <style>
  109.  
  110. body {
  111.         color: #666666;
  112.         margin: 10px;
  113.         padding: 0px;
  114.         text-align: left;
  115.         font-family: <?php
  116.                                 if (file_exists("data/fonts/body.txt")) {
  117.                                         $font_body = file_get_contents("data/fonts/body.txt");
  118.                                         echo "{$font_body},";
  119.                                 }
  120.         ?> arial, helvetica, sans-serif;
  121.         background-color: #ffffff;
  122. }
  123.  
  124. p, td {
  125.         font-size: 11px;
  126. }
  127.  
  128. a {
  129.         font-weight: bold;
  130.         text-decoration: none;
  131. }
  132.  
  133. a:link, a:visited {
  134.         color: #666666;
  135. }
  136.  
  137. a:hover {
  138.         color: #336699;
  139. }
  140.  
  141. a:active {
  142.         color: #336699;
  143. }
  144.  
  145. .input_title {  
  146.         color: #666666;
  147.         background: #ffffff;
  148.         border: #999999 solid 1px;
  149.         width: 525px;
  150.         font-family: <?php
  151.                                 if (file_exists("data/fonts/panel-title.txt")) {
  152.                                         $font_panel_title = file_get_contents("data/fonts/panel-title.txt");
  153.                                         echo "{$font_panel_title},";
  154.                                 }
  155.         ?> arial, helvetica, sans-serif;
  156.         font-size: 11px;
  157.         font-weight: bold
  158. }
  159.  
  160. .input_body {  
  161.         color: #666666;
  162.         background: #ffffff;
  163.         border: #999999 solid 1px;
  164.         width: 525px;
  165.         font-family: <?php
  166.                                 if (file_exists("data/fonts/panel-body.txt")) {
  167.                                         $font_panel_body = file_get_contents("data/fonts/panel-body.txt");
  168.                                         echo "{$font_panel_body},";
  169.                                 }
  170.         ?> arial, helvetica, sans-serif;
  171.         font-size: 11px
  172. }
  173.  
  174. #panel_title {
  175.         font-family: <?php
  176.                                 if (file_exists("data/fonts/panel-title.txt")) {
  177.                                         $font_panel_title = file_get_contents("data/fonts/panel-title.txt");
  178.                                         echo "{$font_panel_title},";
  179.                                 }
  180.         ?> arial, helvetica, sans-serif;
  181.         font-size: 12px;
  182.         font-weight: bold;
  183.         color: #666666;
  184.         padding: 5px 5px 5px 5px;
  185.         background-color: #ffffff;
  186.         margin: 0px;
  187.         border-color: #cccccc;
  188.         border-width: 1px 1px 0px 1px;
  189.         border-style: solid solid none solid;
  190. }
  191.  
  192. #panel_body {
  193.         font-family: <?php
  194.                                 if (file_exists("data/fonts/panel-body.txt")) {
  195.                                         $font_panel_body = file_get_contents("data/fonts/panel-body.txt");
  196.                                         echo "{$font_panel_body},";
  197.                                 }
  198.         ?> arial, helvetica, sans-serif;
  199.         font-size: 11px;
  200.         color: #666666;
  201.         padding: 5px 5px 5px 5px;
  202.         background-color: #ffffff;
  203.         margin: 0px;
  204.         border-color: #cccccc;
  205.         border-width: 1px 1px 1px 1px;
  206.         border-style: solid solid solid solid;
  207. }
  208.  
  209. #panel_footer {
  210.         font-family: <?php
  211.                                 if (file_exists("data/fonts/panel-footer.txt")) {
  212.                                         $font_panel_footer = file_get_contents("data/fonts/panel-footer.txt");
  213.                                         echo "{$font_panel_footer},";
  214.                                 }
  215.         ?> arial, helvetica, sans-serif;
  216.         font-size: 11px;
  217.         color: #666666;
  218.         padding: 5px 5px 5px 5px;
  219.         background-color: #ffffff;
  220.         margin: 0px;
  221.         border-color: #cccccc;
  222.         border-width: 0px 1px 1px 1px;
  223.         border-style: none solid solid solid;
  224. }
  225.  
  226. .input_cat {    
  227.         color: #666666;
  228.         background: #ffffff;
  229.         border: #999999 solid 1px;
  230.         width: 40px;
  231.         font-family: <?php
  232.                                 if (file_exists("data/fonts/panel-body.txt")) {
  233.                                         $font_panel_body = file_get_contents("data/fonts/panel-body.txt");
  234.                                         echo "{$font_panel_body},";
  235.                                 }
  236.         ?> arial, helvetica, sans-serif;
  237.         font-size: 11px
  238. }
  239.  
  240. <?php if (file_exists("data/css.txt")) { readfile("data/css.txt"); } ?>
  241.  
  242. </style>
  243.  
  244. <?php
  245.  
  246. if (isset($_POST['category']) and !empty($_POST['category'])) {
  247.  
  248.         if (($_POST['do'] == "unfile") and file_exists("data/items/{$_REQUEST['entry']}/categories/{$_REQUEST['category']}")) {
  249.                 rmdirr("data/items/{$_REQUEST['entry']}/categories/{$_REQUEST['category']}");
  250.  
  251.                 if (count(glob("data/items/{$_REQUEST['entry']}/categories/*")) < 1) {
  252.                         rmdirr("data/items/{$_REQUEST['entry']}/categories");
  253.                 }
  254.         }
  255.  
  256.         if (($_POST['do'] == "file") and !file_exists("data/items/{$_REQUEST['entry']}/categories/{$_REQUEST['category']}")) {
  257.  
  258.                 if (!file_exists("data/items/{$_REQUEST['entry']}/categories")) {
  259.                         mkdir("data/items/{$_REQUEST['entry']}/categories");
  260.                 }
  261.  
  262.                 mkdir("data/items/{$_REQUEST['entry']}/categories/{$_REQUEST['category']}");
  263.         }
  264. }
  265.  
  266. if (isset($_REQUEST['comment']) and !empty($_REQUEST['comment']) and isset($_POST['comment_txt']) and !empty($_POST['comment_txt']) and isset($_REQUEST['type']) and !empty($_REQUEST['type']) and (($_REQUEST['type'] == "live") or ($_REQUEST['type'] == "pending"))) {
  267.         $comment_txt = ucfirst($_POST['comment_txt']);
  268.         $comment_txt = str_replace("\n", '<br />', $comment_txt);
  269.         $comment_txt = str_replace(':((', '<img src="images/smileys/crying.png" border="0">', $comment_txt);
  270.         $comment_txt = str_replace(':(', '<img src="images/smileys/frown.png" border="0">', $comment_txt);
  271.         $comment_txt = str_replace(':|', '<img src="images/smileys/indifferent.png" border="0">', $comment_txt);
  272.         $comment_txt = str_replace(':D', '<img src="images/smileys/laughing.png" border="0">', $comment_txt);
  273.         $comment_txt = str_replace(':P', '<img src="images/smileys/lick.png" border="0">', $comment_txt);
  274.         $comment_txt = str_replace(':O', '<img src="images/smileys/ohno.png" border="0">', $comment_txt);
  275.         $comment_txt = str_replace(':)', '<img src="images/smileys/smile.png" border="0">', $comment_txt);
  276.         $comment_txt = str_replace('=)', '<img src="images/smileys/surprised.png" border="0">', $comment_txt);
  277.         $comment_txt = str_replace(':\\', '<img src="images/smileys/undecided.png" border="0">', $comment_txt);
  278.         $comment_txt = str_replace(';)', '<img src="images/smileys/wink.png" border="0">', $comment_txt);
  279.         $comment_txt_file = "data/items/{$_REQUEST['entry']}/comments/{$_REQUEST['type']}/{$_REQUEST['comment']}/comment.txt";
  280.         $open_comment_txt_file = fopen($comment_txt_file,"w");
  281.         fwrite($open_comment_txt_file,$comment_txt);
  282.         fclose($open_comment_txt_file);
  283.  
  284.         $comment_revisions_file = "data/items/{$_REQUEST['entry']}/comments/{$_REQUEST['type']}/{$_REQUEST['comment']}/revisions.txt";
  285.         $fp_comment_revisions_file = fopen($comment_revisions_file, "r");
  286.         $comment_revisions_count = fread($fp_comment_revisions_file, filesize($comment_revisions_file));
  287.         fclose($fp_comment_revisions_file);
  288.  
  289.         $comment_revisions_count = $comment_revisions_count + 1;
  290.         $fp_comment_revisions_file = fopen($comment_revisions_file, "w");
  291.         fwrite($fp_comment_revisions_file, $comment_revisions_count);
  292.         fclose($fp_comment_revisions_file);
  293. }
  294.  
  295. if (isset($_REQUEST['comment']) and !empty($_REQUEST['comment']) and isset($_REQUEST['type']) and !empty($_REQUEST['type']) and (($_REQUEST['type'] == "live") or ($_REQUEST['type'] == "pending"))) {
  296.  
  297.         if (!file_exists("data/items/{$_REQUEST['entry']}/comments/{$_REQUEST['type']}/{$_REQUEST['comment']}")) {
  298.                 exit();
  299.         }
  300.  
  301. ?>
  302.         <table border="0" cellspacing="0" cellpadding="0" bgcolor="#cccccc"><tr><td width="525">
  303.         <div id="panel_title"><?php readfile("data/items/{$_REQUEST['entry']}/comments/{$_REQUEST['type']}/{$_REQUEST['comment']}/firstname.txt"); ?>&nbsp;<?php readfile("data/items/{$_REQUEST['entry']}/comments/{$_REQUEST['type']}/{$_REQUEST['comment']}/lastname.txt"); ?>&nbsp;&lt;<?php readfile("data/items/{$_REQUEST['entry']}/comments/{$_REQUEST['type']}/{$_REQUEST['comment']}/email.txt"); ?>&gt;</div>
  304.         <div id="panel_body"><?php readfile("data/items/{$_REQUEST['entry']}/comments/{$_REQUEST['type']}/{$_REQUEST['comment']}/comment.txt"); ?></div>
  305.         <div id="panel_footer"><font style="font-size: 10px; color: #999999;">
  306.         <?php
  307.                 entry2date($_REQUEST['comment']);
  308.  
  309.                 if (file_exists("data/items/{$_REQUEST['entry']}/comments/{$_REQUEST['type']}/{$_REQUEST['comment']}/revisions.txt")) {
  310.                         echo " (Revision ";
  311.                         readfile("data/items/{$_REQUEST['entry']}/comments/{$_REQUEST['type']}/{$_REQUEST['comment']}/revisions.txt");
  312.                         echo ")";
  313.                 }
  314.         ?>
  315.         </font></div>
  316.         </td></tr></table>
  317.  
  318.         <table border="0" cellspacing="2" cellpadding="0">
  319.         <form enctype="multipart/form-data" action="edit.php" method="post">
  320.         <tr><td><textarea class="input_body" name="comment_txt" rows="10"><?php
  321.  
  322.         $comment_txt_file = "data/items/{$_REQUEST['entry']}/comments/{$_REQUEST['type']}/{$_REQUEST['comment']}/comment.txt";
  323.         $open_comment_txt_file = fopen($comment_txt_file,"r");
  324.         $read_comment_txt_file = fread($open_comment_txt_file,filesize($comment_txt_file));
  325.         fclose($open_comment_txt_file);
  326.  
  327.         $comment_smiley2emoticon = str_replace('<br />', "\n", $read_comment_txt_file);
  328.         $comment_smiley2emoticon = str_replace('<img src="images/smileys/crying.png" border="0">', ':((', $comment_smiley2emoticon);
  329.         $comment_smiley2emoticon = str_replace('<img src="images/smileys/frown.png" border="0">', ':(', $comment_smiley2emoticon);
  330.         $comment_smiley2emoticon = str_replace('<img src="images/smileys/indifferent.png" border="0">', ':|', $comment_smiley2emoticon);
  331.         $comment_smiley2emoticon = str_replace('<img src="images/smileys/laughing.png" border="0">', ':D', $comment_smiley2emoticon);
  332.         $comment_smiley2emoticon = str_replace('<img src="images/smileys/lick.png" border="0">', ':P', $comment_smiley2emoticon);
  333.         $comment_smiley2emoticon = str_replace('<img src="images/smileys/ohno.png" border="0">', ':O', $comment_smiley2emoticon);
  334.         $comment_smiley2emoticon = str_replace('<img src="images/smileys/smile.png" border="0">', ':)', $comment_smiley2emoticon);
  335.         $comment_smiley2emoticon = str_replace('<img src="images/smileys/surprised.png" border="0">', '=)', $comment_smiley2emoticon);
  336.         $comment_smiley2emoticon = str_replace('<img src="images/smileys/undecided.png" border="0">', ':\\', $comment_smiley2emoticon);
  337.         $comment_smiley2emoticon = str_replace('<img src="images/smileys/wink.png" border="0">', ';)', $comment_smiley2emoticon);
  338.  
  339.         echo $comment_smiley2emoticon;
  340.  
  341.         ?></textarea></td></tr>
  342.         <tr><td><input type="hidden" name="entry" value="<?php echo $_REQUEST['entry']; ?>"></td></tr>
  343.         <tr><td><input type="hidden" name="comment" value="<?php echo $_REQUEST['comment']; ?>"></td></tr>
  344.         <tr><td><input type="hidden" name="type" value="<?php echo $_REQUEST['type']; ?>"></td></tr>
  345.         <tr><td><input class="input_body" type="submit" value="click here to update this comment"></td></tr>
  346.         </form>
  347.  
  348.         <form enctype="multipart/form-data" action="index.php?entry=<?php echo $_REQUEST['entry']; ?>&show=comments" method="post">
  349.         <tr><td><input class="input_body" type="submit" value="click here to view posted entry"></td></tr>
  350.         </form>
  351.  
  352.         <form enctype="multipart/form-data" action="index.php" method="post">
  353.         <tr><td><input class="input_body" type="submit" value="click here to go to the index page"></td></tr>
  354.         </form>
  355.         </table>
  356.  
  357. <?php
  358.         exit();
  359. }
  360.  
  361. ?>
  362.  
  363. <table border="0" cellspacing="0" cellpadding="0"><tr><td>
  364.  
  365. <table border="0" cellspacing="0" cellpadding="0" bgcolor="#cccccc"><tr><td width="525">
  366.  
  367. <div id="panel_title"><?php readfile($title_file); ?></div>
  368. <div id="panel_body"><table border="0" cellspacing="0" cellpadding="0"><tr><td><?php readfile($body_file); ?></td></tr></table></div>
  369. <div id="panel_footer"><font style="font-size: 10px; color: #999999;"><?php
  370.  
  371. if (file_exists("data/items/{$_REQUEST['entry']}/author.txt")) {
  372.         readfile("data/items/{$_REQUEST['entry']}/author.txt");
  373.         echo " - ";
  374. }
  375.  
  376. entry2date($_REQUEST['entry']);
  377.  
  378. if (file_exists($revisions_file)) {
  379.                 echo ' (Revision ';
  380.                 readfile($revisions_file);
  381.                 echo " - ";
  382.                 echo date("l, M j, Y, g:i A", filemtime("data/items/{$_REQUEST['entry']}/body.txt"));
  383.                 echo ')';
  384. }
  385.  
  386. ?>
  387.  
  388. </font></div>
  389. </td></tr></table>
  390.  
  391. <form enctype="multipart/form-data" action="edit.php" method="post">
  392.  
  393. <?php if (($_SESSION['logged_in'] == $login_username) or (file_exists("data/members/active/{$_SESSION['logged_in']}/ul.txt") and file_exists("data/members/active/{$_SESSION['logged_in']}/rw.txt"))) { ?>
  394.  
  395. <input type="hidden" name="max_file_size" value="<?php echo $max_image_size; ?>">
  396.  
  397. <p><table border="0" cellspacing="2" cellpadding="0" bgcolor="#ffffff">
  398.  
  399. <tr><td><input autocomplete="off" type="file" name="album_image_input"> Upload optional album image. Enter optional caption below.</td></tr>
  400. <tr><td><input autocomplete="off" type="text" name="caption" class="input_body"></td></tr>
  401. <tr><td><input type="hidden" name="max_file_size" value="<?php echo $max_file_size; ?>"></td></tr>
  402. <tr><td><input autocomplete="off" type="file" name="entry_image_input"> Upload optional entry image.</td></tr>
  403. <tr><td><input type="hidden" name="max_file_size" value="<?php echo $max_file_size; ?>"></td></tr>
  404. <tr><td><input autocomplete="off" type="file" name="file_input"> Upload optional file.</td></tr>
  405.  
  406. <?php
  407.  
  408. }
  409.  
  410. if ($_SESSION['logged_in'] == $login_username) {
  411.  
  412. ?>
  413.  
  414.         <tr><td><input autocomplete="off" type="password" name="passwd" <?php
  415.  
  416.         if (file_exists("data/items/{$_REQUEST['entry']}/passwd.txt")) {
  417.                 echo "value=\"password\"";
  418.         }
  419.         ?>
  420.  
  421.         > <?php
  422.  
  423.         if (file_exists("data/items/{$_REQUEST['entry']}/passwd.txt")) {
  424.                 echo "Enter new password or clear field to disable password protection.";
  425.         }
  426.         else {
  427.                 echo "Enter optional password.";
  428.         }
  429.         ?></td></tr>
  430.  
  431.         <tr><td><input type="checkbox" name="sticky" <?php $sticky_sem = 'data/sticky/' . $_REQUEST['entry']; if (file_exists($sticky_sem)) { echo checked; } ?>>Put entry title in Quick Links box.</td></tr>
  432.         <tr><td><input type="checkbox" name="pdf" <?php if (file_exists("data/items/{$_REQUEST['entry']}/pdf/file")) { echo checked; } ?>>Allow PDF generation for this entry.</td></tr>
  433.         <tr><td><input type="checkbox" name="display" <?php $display_sem = "data/items/{$_REQUEST['entry']}/cat.txt"; if (file_exists($display_sem)) { echo checked; } ?>>Always display. If this is not a private entry, it will be displayed even if its category is hidden or isolated.</td></tr>
  434.         <tr><td><input type="checkbox" name="private" <?php $private_sem = "data/items/{$_REQUEST['entry']}/private.txt"; if (file_exists($private_sem)) { echo checked; } ?>>Private entry. This entry will unconditionally be invisible to visitors<?php if (file_exists("data/ml.txt")) { echo " and to the mailing list"; } ?>, even if always display is set.</td></tr>
  435.  
  436.         <?php if (file_exists("data/bb.txt")) { ?>
  437.  
  438.         <tr><td><input type="checkbox" name="member" <?php $member_sem = "data/items/{$_REQUEST['entry']}/member.txt"; if (file_exists($member_sem)) { echo checked; } ?>>Only registered members can view this entry.</td></tr>
  439.  
  440.         <?php } ?>
  441.  
  442.         <?php
  443.  
  444.         if (file_exists("data/bb.txt") and file_exists("data/wiki.txt")) { ?>
  445.  
  446.         <tr><td><input type="checkbox" name="edit" <?php $edit_sem = "data/items/{$_REQUEST['entry']}/edit.txt"; if (file_exists($edit_sem)) { echo checked; } ?>>Registered members can edit this entry.</td></tr>
  447.  
  448.         <?php
  449.  
  450.         }
  451.  
  452.         ?>
  453.  
  454.         <tr><td><input type="checkbox" name="lastmod" <?php $lastmod_sem = "data/items/{$_REQUEST['entry']}/lastmod.txt"; if (file_exists($lastmod_sem)) { echo checked; } ?>>Display last modification date and time.</td></tr>
  455.  
  456. <?php } ?>
  457.  
  458. </table></p>
  459.  
  460. <input type="hidden" name="entry" value="<?php echo $_REQUEST['entry']; ?>">
  461.  
  462. <table border="0" cellspacing="0" cellpadding="0"><tr><td>
  463.  
  464. <table border="0" cellspacing="2" cellpadding="0">
  465. <tr><td><input autocomplete="off" class="input_title" type="text" name="title_input" value="<?php readfile($title_file); ?>"></td></tr>
  466. <tr><td><textarea class="input_body" name="body_input" rows="15">
  467. <?php
  468.  
  469. $open_body_file = fopen($body_file,"r");
  470. $read_body_file = fread($open_body_file,filesize($body_file));
  471. fclose($open_body_file);
  472.  
  473. $body_read_content = str_replace('<br />', "\n", $read_body_file);
  474. $body_read_content = str_replace('<img src="images/smileys/crying.png" border="0">', ':((', $body_read_content);
  475. $body_read_content = str_replace('<img src="images/smileys/frown.png" border="0">', ':(', $body_read_content);
  476. $body_read_content = str_replace('<img src="images/smileys/indifferent.png" border="0">', ':|', $body_read_content);
  477. $body_read_content = str_replace('<img src="images/smileys/laughing.png" border="0">', ':D', $body_read_content);
  478. $body_read_content = str_replace('<img src="images/smileys/lick.png" border="0">', ':P', $body_read_content);
  479. $body_read_content = str_replace('<img src="images/smileys/ohno.png" border="0">', ':O', $body_read_content);
  480. $body_read_content = str_replace('<img src="images/smileys/smile.png" border="0">', ':)', $body_read_content);
  481. $body_read_content = str_replace('<img src="images/smileys/surprised.png" border="0">', '=)', $body_read_content);
  482. $body_read_content = str_replace('<img src="images/smileys/undecided.png" border="0">', ':\\', $body_read_content);
  483. $body_read_content = str_replace('<img src="images/smileys/wink.png" border="0">', ';)', $body_read_content);
  484. $body_read_content = str_replace('<!-- html -->', '<html>', $body_read_content);
  485. $body_read_content = str_replace('<!-- /html -->', '</html>', $body_read_content);
  486. $body_read_content = str_replace('<span style="background-color: #ffff00;">', '<highlight>', $body_read_content);
  487. $body_read_content = str_replace('</span>', '</highlight>', $body_read_content);
  488.  
  489. echo $body_read_content;
  490.  
  491. ?>
  492. </textarea></td></tr>
  493. <tr><td><input class="input_body" type="submit" value="click here to update this entry"></td></tr>
  494. </form>
  495.  
  496. <form enctype="multipart/form-data" action="index.php?entry=<?php echo $_REQUEST['entry']; ?>" method="post">
  497. <tr><td><input class=input_body type=submit value="click here to view posted entry"></td></tr>
  498. </form>
  499.  
  500. <form enctype="multipart/form-data" action="index.php" method="post">
  501. <tr><td><input class="input_body" type="submit" value="click here to go to the index page"></td></tr>
  502. </form>
  503.  
  504. </table>
  505.  
  506. </td><td width="10"></td><td>
  507.  
  508. <table border="0" cellspacing="1" cellpadding="2">
  509. <tr><td><img src="images/smileys/crying.png" border="0"></td><td>:((</td><td >crying</td></tr>
  510. <tr><td><img src="images/smileys/frown.png" border="0"></td><td>:(</td><td>frown</td></tr>
  511. <tr><td><img src="images/smileys/indifferent.png" border="0"></td><td>:|</td><td>indifferent</td></tr>
  512. <tr><td><img src="images/smileys/laughing.png" border="0"></td><td>:D</td><td>laughing</td></tr>
  513. <tr><td><img src="images/smileys/lick.png" border="0"></td><td>:P</td><td>lick</td></tr>
  514. <tr><td><img src="images/smileys/ohno.png" border="0"></td><td>:O</td><td>oh no!</td></tr>
  515. <tr><td><img src="images/smileys/smile.png" border="0"></td><td>:)</td><td>smile</td></tr>
  516. <tr><td><img src="images/smileys/surprised.png" border="0"></td><td>=)</td><td>surprised</td></tr>
  517. <tr><td><img src="images/smileys/undecided.png" border="0"></td><td>:\</td><td>undecided</td></tr>
  518. <tr><td><img src="images/smileys/wink.png" border="0"></td><td>;)</td><td>wink</td></tr>
  519. </table>
  520.  
  521. </td></tr></table>
  522.  
  523. </td><td width="25"></td><td valign="top" width="150">
  524.  
  525. <?php
  526.         if (file_exists("data/categories")) {
  527.  
  528.                 if ($dh_cat = opendir("data/categories")) {
  529.  
  530.                         while (($entry_cat = readdir($dh_cat)) !== false) {
  531.        
  532.                                 if ($entry_cat != "." && $entry_cat != ".." && fnmatch("*", $entry_cat)) {
  533.  
  534.                                         if (file_exists("data/items/{$_REQUEST['entry']}/categories/$entry_cat")) {
  535.                                                 $filed_cat[] = $entry_cat;
  536.                                         }
  537.  
  538.                                         if (!file_exists("data/items/{$_REQUEST['entry']}/categories/$entry_cat")) {
  539.                                                 $unfiled_cat[] = $entry_cat;
  540.                                         }
  541.                                 }
  542.                         }
  543.                         closedir($dh_cat);
  544.                 }
  545.        
  546.                 sort($filed_cat);
  547.                 sort($unfiled_cat);
  548.  
  549.                 reset($filed_cat);
  550.                 reset($unfiled_cat);
  551.  
  552.                 $count_filed_cat = count($filed_cat);
  553.                 $count_unfiled_cat = count($unfiled_cat);
  554.        
  555.                 if ($count_filed_cat > 0) {
  556.  
  557.                         echo "<p><b>Filed Under</b></p>";
  558.  
  559.                         echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"2\" bgcolor=\"#cccccc\" width=\"150\">";
  560.  
  561.                         foreach ($filed_cat as $filed_category) {
  562.                                 echo "<form enctype=\"multipart/form-data\" action=\"edit.php\" method=\"post\">";
  563.                                 echo "<input type=\"hidden\" name=\"entry\" value=\"{$_REQUEST['entry']}\">";
  564.                                 echo "<input type=\"hidden\" name=\"category\" value=\"$filed_category\">";
  565.                                 echo "<input type=\"hidden\" name=\"do\" value=\"unfile\">";
  566.                                 echo "<tr bgcolor=\"#ffffff\"><td><a href=\"index.php?category=$filed_category\">$filed_category</a></td>";
  567.                                 echo "<td width=\"14\"><input type=\"image\" src=\"images/widget.x.png\"></td></tr>";
  568.                                 echo "</form>";
  569.                         }
  570.  
  571.                         echo "</table>";
  572.                 }
  573.         }
  574. ?>     
  575.  
  576. </td><td width="25"></td><td valign="top" width="150">
  577.  
  578. <?php
  579.  
  580. if ($count_unfiled_cat > 0) {
  581.  
  582.         echo "<p><b>Available Categories</b></p>";
  583.  
  584.         echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"2\" bgcolor=\"#cccccc\" width=\"150\">";
  585.  
  586.         foreach ($unfiled_cat as $unfiled_category) {
  587.  
  588.                 echo "<form enctype=\"multipart/form-data\" action=\"edit.php\" method=\"post\">";
  589.                 echo "<input type=\"hidden\" name=\"entry\" value=\"{$_REQUEST['entry']}\">";
  590.                 echo "<input type=\"hidden\" name=\"category\" value=\"$unfiled_category\">";
  591.                 echo "<input type=\"hidden\" name=\"do\" value=\"file\">";
  592.                 echo "<tr bgcolor=\"#ffffff\"><td width=\"14\"><input type=\"image\" src=\"images/widget.ok.png\"></td>";
  593.                 echo "<td align=\"right\"><a href=\"index.php?category=$unfiled_category\">$unfiled_category</a></td></tr>";
  594.                 echo "</form>";
  595.         }
  596.  
  597.         echo "</table>";
  598. }
  599.  
  600. ?>
  601.  
  602. </td></tr></table>
  603.  
  604. <?php
  605.  
  606. if (!isset($_POST['title_input']) or !isset($_POST['body_input']) or empty($_POST['title_input']) or empty($_POST['body_input'])) {
  607.         exit();
  608. }
  609.  
  610. if (file_exists("data/items/{$_REQUEST['entry']}/title.old")) {
  611.         unlink("data/items/{$_REQUEST['entry']}/title.old");
  612. }
  613.  
  614. if (file_exists("data/items/{$_REQUEST['entry']}/body.old")) {
  615.         unlink("data/items/{$_REQUEST['entry']}/body.old");
  616. }
  617.  
  618. copy("data/items/{$_REQUEST['entry']}/title.txt","data/items/{$_REQUEST['entry']}/title.old");
  619. copy("data/items/{$_REQUEST['entry']}/body.txt","data/items/{$_REQUEST['entry']}/body.old");
  620.  
  621. $title_write_content = ucfirst($_POST['title_input']);
  622. $title_write_content = str_replace('<','&lt;',$title_write_content);
  623. $title_write_content = str_replace('>','&gt;',$title_write_content);
  624. $open_title_file = fopen($title_file,"w");
  625. fwrite($open_title_file,$title_write_content);
  626. fclose($open_title_file);
  627.  
  628. function reformat_html($defang_html) {
  629.         $store_html=split("<html>",$defang_html);
  630.         $defang_html="";
  631.         $defang_html.=$store_html[0];
  632.         foreach($store_html as $itm_html=>$refh_html) {
  633.                 if(eregi("</html>",$refh_html)) {
  634.                         $store_html1=split("</html>",$refh_html);
  635.                         $store_html1[0]=eregi_replace("\n","",$store_html1[0]);
  636.                         foreach($store_html1 as $itm_html1=>$refh_html1) {
  637.                                 if($itm_html1==0)
  638.                                         $refh_html1="<!-- html -->$refh_html1<!-- /html -->";
  639.                                         $defang_html.=$refh_html1;
  640.                                 }
  641.                         }
  642.                 }
  643.         return $defang_html;
  644. }
  645.  
  646. function reformat_code($defang_code) {
  647.         $store_code=split("<code>",$defang_code);
  648.         $defang_code="";
  649.         $defang_code.=$store_code[0];
  650.         foreach($store_code as $itm_code=>$refh_code) {
  651.                 if(eregi("</code>",$refh_code)) {
  652.                         $store_code1=split("</code>",$refh_code);
  653.                         $store_code1[0] = eregi_replace('<img src="images/smileys/crying.png" border="0">',':((',$store_code1[0]);
  654.                         $store_code1[0] = eregi_replace('<img src="images/smileys/frown.png" border="0">',':(',$store_code1[0]);
  655.                         $store_code1[0] = eregi_replace('<img src="images/smileys/indifferent.png" border="0">',':|',$store_code1[0]);
  656.                         $store_code1[0] = eregi_replace('<img src="images/smileys/laughing.png" border="0">',':D',$store_code1[0]);
  657.                         $store_code1[0] = eregi_replace('<img src="images/smileys/lick.png" border="0">',':P',$store_code1[0]);
  658.                         $store_code1[0] = eregi_replace('<img src="images/smileys/ohno.png" border="0">',':O',$store_code1[0]);
  659.                         $store_code1[0] = eregi_replace('<img src="images/smileys/smile.png" border="0">',':)',$store_code1[0]);
  660.                         $store_code1[0] = eregi_replace('<img src="images/smileys/surprised.png" border="0">','=)',$store_code1[0]);
  661.                         $store_code1[0] = eregi_replace('<img src="images/smileys/undecided.png" border="0">',':\\',$store_code1[0]);
  662.                         $store_code1[0] = eregi_replace('<img src="images/smileys/wink.png" border="0">',';)',$store_code1[0]);
  663.                         $store_code1[0]=htmlentities($store_code1[0],ENT_NOQUOTES);
  664.                         foreach($store_code1 as $itm_code1=>$refh_code1) {
  665.                                 if($itm_code1==0)
  666.                                         $refh_code1="<code>$refh_code1</code>";
  667.                                         $defang_code.=$refh_code1;
  668.                                 }
  669.                         }
  670.                 }
  671.         return $defang_code;
  672. }
  673.  
  674. $body_write_content = ucfirst($_POST['body_input']);
  675. $body_write_content = str_replace("[html]", '<html>', $body_write_content);
  676. $body_write_content = str_replace("[/html]", '</html>', $body_write_content);
  677. $body_write_content = reformat_html($body_write_content);
  678. $body_write_content = str_replace(':((', '<img src="images/smileys/crying.png" border="0">', $body_write_content);
  679. $body_write_content = str_replace(':(', '<img src="images/smileys/frown.png" border="0">', $body_write_content);
  680. $body_write_content = str_replace(':|', '<img src="images/smileys/indifferent.png" border="0">', $body_write_content);
  681. $body_write_content = str_replace(':D', '<img src="images/smileys/laughing.png" border="0">', $body_write_content);
  682. $body_write_content = str_replace(':P', '<img src="images/smileys/lick.png" border="0">', $body_write_content);
  683. $body_write_content = str_replace(':O', '<img src="images/smileys/ohno.png" border="0">', $body_write_content);
  684. $body_write_content = str_replace(':)', '<img src="images/smileys/smile.png" border="0">', $body_write_content);
  685. $body_write_content = str_replace('=)', '<img src="images/smileys/surprised.png" border="0">', $body_write_content);
  686. $body_write_content = str_replace(':\\', '<img src="images/smileys/undecided.png" border="0">', $body_write_content);
  687. $body_write_content = str_replace(';)', '<img src="images/smileys/wink.png" border="0">', $body_write_content);
  688. $body_write_content = str_replace('[code]', '<code>', $body_write_content);
  689. $body_write_content = str_replace('[/code]', '</code>', $body_write_content);
  690. $body_write_content = reformat_code($body_write_content);
  691. $body_write_content = str_replace("\n", '<br />', $body_write_content);
  692. $body_write_content = str_replace('[b]', '<b>', $body_write_content);
  693. $body_write_content = str_replace('[/b]', '</b>', $body_write_content);
  694. $body_write_content = str_replace('[i]', '<i>', $body_write_content);
  695. $body_write_content = str_replace('[/i]', '</i>', $body_write_content);
  696. $body_write_content = str_replace('[u]', '<u>', $body_write_content);
  697. $body_write_content = str_replace('[/u]', '</u>', $body_write_content);
  698. $body_write_content = str_replace('[strike]', '<strike>', $body_write_content);
  699. $body_write_content = str_replace('[/strike]', '</strike>', $body_write_content);
  700. $body_write_content = str_replace('[sup]', '<sup>', $body_write_content);
  701. $body_write_content = str_replace('[/sup]', '</sup>', $body_write_content);
  702. $body_write_content = str_replace('[sub]', '<sub>', $body_write_content);
  703. $body_write_content = str_replace('[/sub]', '</sub>', $body_write_content);
  704. $body_write_content = str_replace('[highlight]', '<highlight>', $body_write_content);
  705. $body_write_content = str_replace('[/highlight]', '</highlight>', $body_write_content);
  706. $body_write_content = str_replace('<highlight>', '<span style="background-color: #ffff00;">', $body_write_content);
  707. $body_write_content = str_replace('</highlight>', '</span>', $body_write_content);
  708. $body_write_content =  preg_replace("/<([_\.0-9a-z-]+)@([0-9a-z][0-9a-z-]+)\.([_\.0-9a-z-]+)>/", '&lt;$1@$2.$3&gt;',$body_write_content);
  709.  
  710. $fp_revisions_file = fopen($revisions_file, "r");
  711. $revisions_count = fread($fp_revisions_file, filesize($revisions_file));
  712. fclose($fp_revisions_file);
  713.  
  714. $revisions_count = $revisions_count + 1;
  715.  
  716. $fp_revisions_file = fopen($revisions_file, "w");
  717. fwrite($fp_revisions_file, $revisions_count);
  718. fclose($fp_revisions_file);
  719.  
  720. if (isset($_FILES['album_image_input']) and !empty($_FILES['album_image_input'])) {
  721.  
  722.         if (is_uploaded_file($_FILES['album_image_input']['tmp_name'])) {
  723.  
  724.                 if ($_FILES['album_image_input']['size']<=$max_image_size) {
  725.  
  726.                         if (($_FILES['album_image_input']['type']=="image/gif") || ($_FILES['album_image_input']['type']=="image/pjpeg") || ($_FILES['album_image_input']['type']=="image/jpeg") || ($_FILES['album_image_input']['type']=="image/png")) {
  727.  
  728.                                 $album_image_input_name = str_replace(" ","_",$_FILES['album_image_input']['name']);
  729.  
  730.                                 if (!file_exists("images/{$_REQUEST['entry']}/album/$album_image_input_name")) {
  731.  
  732.                                         if (!file_exists("images/{$_REQUEST['entry']}")) {
  733.                                                 mkdir("images/{$_REQUEST['entry']}");
  734.                                         }
  735.  
  736.                                         if (!file_exists("images/{$_REQUEST['entry']}/album")) {
  737.                                                 mkdir("images/{$_REQUEST['entry']}/album");
  738.                                         }
  739.  
  740.                                         if (!file_exists("data/albums")) {
  741.                                                 mkdir("data/albums");
  742.                                         }
  743.  
  744.                                         if (!file_exists("data/albums/{$_REQUEST['entry']}")) {
  745.                                                 mkdir("data/albums/{$_REQUEST['entry']}");
  746.                                         }
  747.  
  748.                                         if (isset($_POST['caption']) and !empty($_POST['caption'])) {
  749.  
  750.                                                 if (!file_exists("data/items/{$_REQUEST['entry']}/album")) {
  751.                                                         mkdir("data/items/{$_REQUEST['entry']}/album");
  752.                                                 }
  753.  
  754.                                                 if (!file_exists("data/items/{$_REQUEST['entry']}/album/captions")) {
  755.                                                         mkdir("data/items/{$_REQUEST['entry']}/album/captions");
  756.                                                 }
  757.  
  758.                                                 if (!file_exists("data/items/{$_REQUEST['entry']}/album/captions/{$album_image_input_name}.txt")) {
  759.                                                         $caption_txt = ucfirst($_POST['caption']);
  760.                                                         $caption_txt = str_replace(':((', '<img src="images/smileys/crying.png" border="0">', $caption_txt);
  761.                                                         $caption_txt = str_replace(':(', '<img src="images/smileys/frown.png" border="0">', $caption_txt);
  762.                                                         $caption_txt = str_replace(':|', '<img src="images/smileys/indifferent.png" border="0">', $caption_txt);
  763.                                                         $caption_txt = str_replace(':D', '<img src="images/smileys/laughing.png" border="0">', $caption_txt);
  764.                                                         $caption_txt = str_replace(':P', '<img src="images/smileys/lick.png" border="0">', $caption_txt);
  765.                                                         $caption_txt = str_replace(':O', '<img src="images/smileys/ohno.png" border="0">', $caption_txt);
  766.                                                         $caption_txt = str_replace(':)', '<img src="images/smileys/smile.png" border="0">', $caption_txt);
  767.                                                         $caption_txt = str_replace('=)', '<img src="images/smileys/surprised.png" border="0">', $caption_txt);
  768.                                                         $caption_txt = str_replace(':\\', '<img src="images/smileys/undecided.png" border="0">', $caption_txt);
  769.                                                         $caption_txt = str_replace(';)', '<img src="images/smileys/wink.png" border="0">', $caption_txt);
  770.                                                         $caption_txt = str_replace('[code]', '<code>', $caption_txt);
  771.                                                         $caption_txt = str_replace('[/code]', '</code>', $caption_txt);
  772.                                                         $caption_txt = str_replace("\n", '<br />', $caption_txt);
  773.                                                         $caption_txt = str_replace('[b]', '<b>', $caption_txt);
  774.                                                         $caption_txt = str_replace('[/b]', '</b>', $caption_txt);
  775.                                                         $caption_txt = str_replace('[i]', '<i>', $caption_txt);
  776.                                                         $caption_txt = str_replace('[/i]', '</i>', $caption_txt);
  777.                                                         $caption_txt = str_replace('[u]', '<u>', $caption_txt);
  778.                                                         $caption_txt = str_replace('[/u]', '</u>', $caption_txt);
  779.                                                         $caption_txt = str_replace('[strike]', '<strike>', $caption_txt);
  780.                                                         $caption_txt = str_replace('[/strike]', '</strike>', $caption_txt);
  781.                                                         $caption_txt = str_replace('[sup]', '<sup>', $caption_txt);
  782.                                                         $caption_txt = str_replace('[/sup]', '</sup>', $caption_txt);
  783.                                                         $caption_txt = str_replace('[sub]', '<sub>', $caption_txt);
  784.                                                         $caption_txt = str_replace('[/sub]', '</sub>', $caption_txt);
  785.                                                         $caption_txt = str_replace('[highlight]', '<highlight>', $caption_txt);
  786.                                                         $caption_txt = str_replace('[/highlight]', '</highlight>', $caption_txt);
  787.                                                         $caption_txt = str_replace('<highlight>', '<span style="background-color: #ffff00;">', $caption_txt);
  788.                                                         $caption_txt = str_replace('</highlight>', '</span>', $caption_txt);
  789.  
  790.                                                         $fp_caption_txt = fopen("data/items/{$_REQUEST['entry']}/album/captions/{$album_image_input_name}.txt","w");
  791.                                                         fwrite($fp_caption_txt,$caption_txt);
  792.                                                         fclose($fp_caption_txt);
  793.                                                 }
  794.                                         }
  795.  
  796.                                         $res = copy($_FILES['album_image_input']['tmp_name'],"images/{$_REQUEST['entry']}/album/$album_image_input_name");
  797.                                         unlink($_FILES['album_image_input']['tmp_name']);
  798.                                 }
  799.                                 else {
  800.                                         unlink($_FILES['album_image_input']['tmp_name']);
  801.                                 }
  802.                         }
  803.                         else {
  804.                                 unlink($_FILES['album_image_input']['tmp_name']);
  805.                         }
  806.                 }
  807.                 else {
  808.                         unlink($_FILES['album_image_input']['tmp_name']);
  809.                 }
  810.         }
  811.         else {
  812.                 unlink($_FILES['album_image_input']['tmp_name']);
  813.         }
  814. }
  815.  
  816. if (isset($_FILES['entry_image_input']) and !empty($_FILES['entry_image_input'])) {
  817.  
  818.         if (is_uploaded_file($_FILES['entry_image_input']['tmp_name'])) {
  819.  
  820.                 if ($_FILES['entry_image_input']['size']<=$max_image_size) {
  821.  
  822.                         if (($_FILES['entry_image_input']['type']=="image/gif") || ($_FILES['entry_image_input']['type']=="image/pjpeg") || ($_FILES['entry_image_input']['type']=="image/jpeg") || ($_FILES['entry_image_input']['type']=="image/png")) {
  823.  
  824.                                 $entry_image_input_name = str_replace(" ","_",$_FILES['entry_image_input']['name']);
  825.  
  826.                                 if (!file_exists("images/{$_REQUEST['entry']}/$entry_image_input_name")) {
  827.  
  828.                                         if (!file_exists("images/{$_REQUEST['entry']}")) {
  829.                                                 mkdir("images/{$_REQUEST['entry']}");
  830.                                         }
  831.  
  832.                                         $res = copy($_FILES['entry_image_input']['tmp_name'], "images/{$_REQUEST['entry']}/$entry_image_input_name");
  833.                                         unlink($_FILES['entry_image_input']['tmp_name']);
  834.  
  835.                                         $entry_image_size = getimagesize("images/{$_REQUEST['entry']}/$entry_image_input_name");
  836.                                         $entry_image_width = $entry_image_size[0];
  837.                                         $entry_image_height = $entry_image_size[1];
  838.  
  839.                                         $max_entry_image_width = 513;
  840.  
  841.                                         if ($entry_image_width > $max_entry_image_width) {  
  842.                                                 $sizefactor = (double) ($max_entry_image_width / $entry_image_width) ;
  843.                                                 $entry_image_width = (int) ($entry_image_width * $sizefactor);
  844.                                                 $entry_image_height = (int) ($entry_image_height * $sizefactor);
  845.                                         }
  846.  
  847.                                         $body_write_content = "<img src=\"images/{$_REQUEST['entry']}/$entry_image_input_name\" border=\"0\" width=\"$entry_image_width\" height=\"$entry_image_height\">\n\r$body_write_content";
  848.                                 }
  849.                                 else {
  850.                                         unlink($_FILES['entry_image_input']['tmp_name']);
  851.                                 }
  852.                         }
  853.                         else {
  854.                                 unlink($_FILES['entry_image_input']['tmp_name']);
  855.                         }
  856.                 }
  857.                 else {
  858.                         unlink($_FILES['entry_image_input']['tmp_name']);
  859.                 }
  860.         }
  861.         else {
  862.                 unlink($_FILES['entry_image_input']['tmp_name']);
  863.         }
  864. }
  865.  
  866. if (isset($_FILES['file_input']) and !empty($_FILES['file_input'])) {
  867.  
  868.         if (is_uploaded_file($_FILES['file_input']['tmp_name'])) {
  869.  
  870.                 if ($_FILES['file_input']['size']<=$max_file_size) {
  871.  
  872.                         if (!file_exists("data/items/{$_REQUEST['entry']}/filedrop")) {
  873.                                 mkdir("data/items/{$_REQUEST['entry']}/filedrop");
  874.                         }
  875.  
  876.                         if (!file_exists("data/items/{$_REQUEST['entry']}/filedrop/files")) {
  877.                                 mkdir("data/items/{$_REQUEST['entry']}/filedrop/files");
  878.                         }
  879.  
  880.                         $file_input_name = str_replace(" ","_",$_FILES['file_input']['name']);
  881.  
  882.                         if (!file_exists("data/items/{$_REQUEST['entry']}/filedrop/files/$file_input_name")) {
  883.                                 $res = copy($_FILES['file_input']['tmp_name'], "data/items/{$_REQUEST['entry']}/filedrop/files/$file_input_name");
  884.                                 unlink($_FILES['file_input']['tmp_name']);
  885.  
  886.                                 $fp_file_txt = fopen("data/items/{$_REQUEST['entry']}/filedrop/{$file_input_name}.txt","w");
  887.                                 fwrite($fp_file_txt,"data/items/{$_REQUEST['entry']}/filedrop/files/$file_input_name");
  888.                                 fclose($fp_file_txt);
  889.                         }
  890.                         else {
  891.                                 unlink($_FILES['file_input']['tmp_name']);
  892.                         }
  893.                 }
  894.                 else {
  895.                         unlink($_FILES['file_input']['tmp_name']);
  896.                 }
  897.         }
  898.         else {
  899.                 unlink($_FILES['file_input']['tmp_name']);
  900.         }
  901. }
  902.  
  903. if (file_exists("data/wiki.txt")) {
  904.  
  905.         $old_title = file_get_contents("data/items/{$_REQUEST['entry']}/title.old");
  906.         $old_body = file_get_contents("data/items/{$_REQUEST['entry']}/body.old");
  907.  
  908.         if (($old_title != $title_write_content) or ($old_body != $body_write_content)) {
  909.  
  910.                 if (!file_exists("data/items/{$_REQUEST['entry']}/wiki")) {
  911.                         mkdir("data/items/{$_REQUEST['entry']}/wiki");
  912.                 }
  913.  
  914.                 if (!file_exists("data/items/{$_REQUEST['entry']}/wiki/delta")) {
  915.                         mkdir("data/items/{$_REQUEST['entry']}/wiki/delta");
  916.                 }
  917.  
  918.                 if (file_exists("data/offset.txt")) {
  919.                         $offset = file_get_contents("data/offset.txt");
  920.                 }
  921.                 else {
  922.                         $offset = 0;
  923.                 }
  924.  
  925.                 $ddate = date("YmdHis", time() + $offset);
  926.  
  927.                 if (!file_exists("data/items/{$_REQUEST['entry']}/wiki/delta/$ddate")) {
  928.                         mkdir("data/items/{$_REQUEST['entry']}/wiki/delta/$ddate");
  929.                 }
  930.  
  931.                 $new_body = fopen("data/items/{$_REQUEST['entry']}/wiki/delta/$ddate/body.txt","w");
  932.                 fwrite($new_body,$body_write_content);
  933.                 fclose($new_body);
  934.  
  935.                 $new_title = fopen("data/items/{$_REQUEST['entry']}/wiki/delta/$ddate/title.txt","w");
  936.                 fwrite($new_title,$title_write_content);
  937.                 fclose($new_title);
  938.  
  939.                 copy("data/items/{$_REQUEST['entry']}/body.txt","data/items/{$_REQUEST['entry']}/wiki/delta/$ddate/prev.txt");
  940.                 copy("data/items/{$_REQUEST['entry']}/date.txt","data/items/{$_REQUEST['entry']}/wiki/delta/$ddate/date.txt");
  941.  
  942.                 if (file_exists("data/items/{$_REQUEST['entry']}/contrib.txt")) {
  943.                         copy("data/items/{$_REQUEST['entry']}/contrib.txt","data/items/{$_REQUEST['entry']}/wiki/delta/$ddate/contrib.txt");
  944.                 }
  945.  
  946.                 $open_editor_file = fopen("data/items/{$_REQUEST['entry']}/wiki/delta/$ddate/editor.txt","w");
  947.                 fwrite($open_editor_file,$_SESSION['logged_in']);
  948.                 fclose($open_editor_file);
  949.         }
  950. }
  951.  
  952. $open_body_file = fopen($body_file,"w");
  953. fwrite($open_body_file,$body_write_content);
  954. fclose($open_body_file);
  955.  
  956. if (file_exists("data/wiki.txt") and (file_exists("data/items/{$_REQUEST['entry']}/edit.txt") or (file_get_contents("data/items/{$_REQUEST['entry']}/author.txt") == $_SESSION['logged_in']))) {
  957.         $open_contrib_file = fopen("data/items/{$_REQUEST['entry']}/contrib.txt","w");
  958.         fwrite($open_contrib_file,$_SESSION['logged_in']);
  959.         fclose($open_contrib_file);
  960. }
  961.  
  962. if ($_SESSION['logged_in'] == $login_username) {
  963.  
  964.         $sticky_sem = 'data/sticky/' . $_REQUEST['entry'];
  965.         if (isset($_POST['sticky']) and !empty($_POST['sticky']) and ($_POST['sticky'] == "on")) {
  966.                 if (!file_exists("data/sticky")) {
  967.                         mkdir("data/sticky");
  968.                 }
  969.                 if (!file_exists($sticky_sem)) {
  970.                         touch($sticky_sem);
  971.                 }
  972.         }
  973.         if (!isset($_POST['sticky']) or empty($_POST['sticky'])) {
  974.                 if (file_exists($sticky_sem)) {
  975.                         unlink($sticky_sem);
  976.                 }
  977.         }
  978.  
  979.         $display_sem = "data/items/{$_REQUEST['entry']}/cat.txt";
  980.  
  981.         if (isset($_POST['display']) and !empty($_POST['display']) and ($_POST['display'] == "on")) {
  982.                 if (!file_exists($display_sem)) {
  983.                         touch($display_sem);
  984.                 }
  985.         }
  986.         if (!isset($_POST['display']) or empty($_POST['display'])) {
  987.                 if (file_exists($display_sem)) {
  988.                         unlink($display_sem);
  989.                 }
  990.         }
  991.  
  992.         $private_sem = "data/items/{$_REQUEST['entry']}/private.txt";
  993.         if (isset($_POST['private']) and !empty($_POST['private']) and ($_POST['private'] == "on")) {
  994.                 if (!file_exists($private_sem)) {
  995.                         touch($private_sem);
  996.                 }
  997.         }
  998.         if (!isset($_POST['private']) or empty($_POST['private'])) {
  999.                 if (file_exists($private_sem)) {
  1000.                         unlink($private_sem);
  1001.                 }
  1002.         }
  1003.  
  1004.         $member_sem = "data/items/{$_REQUEST['entry']}/member.txt";
  1005.         if (isset($_POST['member']) and !empty($_POST['member']) and ($_POST['member'] == "on")) {
  1006.                 if (!file_exists($member_sem)) {
  1007.                         touch($member_sem);
  1008.                 }
  1009.         }
  1010.         if (!isset($_POST['member']) or empty($_POST['member'])) {
  1011.                 if (file_exists($member_sem)) {
  1012.                         unlink($member_sem);
  1013.                 }
  1014.         }
  1015.        
  1016.         $edit_sem = "data/items/{$_REQUEST['entry']}/edit.txt";
  1017.         if (isset($_POST['edit']) and !empty($_POST['edit']) and ($_POST['edit'] == "on")) {
  1018.                 if (!file_exists($edit_sem)) {
  1019.                         touch($edit_sem);
  1020.                 }
  1021.         }
  1022.         if (!isset($_POST['edit']) or empty($_POST['edit'])) {
  1023.                 if (file_exists($edit_sem)) {
  1024.                         unlink($edit_sem);
  1025.                 }
  1026.         }
  1027.        
  1028.         $lastmod_sem = "data/items/{$_REQUEST['entry']}/lastmod.txt";
  1029.         if (isset($_POST['lastmod']) and !empty($_POST['lastmod']) and ($_POST['lastmod'] == "on")) {
  1030.                 if (!file_exists($lastmod_sem)) {
  1031.                         touch($lastmod_sem);
  1032.                 }
  1033.         }
  1034.         if (!isset($_POST['lastmod']) or empty($_POST['lastmod'])) {
  1035.                 if (file_exists($lastmod_sem)) {
  1036.                         unlink($lastmod_sem);
  1037.                 }
  1038.         }
  1039.        
  1040.         if (isset($_POST['pdf']) and !empty($_POST['pdf']) and ($_POST['pdf'] == "on")) {
  1041.                 if (!file_exists("data/items/{$_REQUEST['entry']}/pdf")) {
  1042.                         mkdir("data/items/{$_REQUEST['entry']}/pdf");
  1043.                 }
  1044.                 if (!file_exists("data/items/{$_REQUEST['entry']}/pdf/file")) {
  1045.                         mkdir("data/items/{$_REQUEST['entry']}/pdf/file");
  1046.                 }
  1047.                 if (!file_exists("data/items/{$_REQUEST['entry']}/pdf/count")) {
  1048.                         mkdir("data/items/{$_REQUEST['entry']}/pdf/count");
  1049.                 }
  1050.        
  1051.                 $entry = $_REQUEST['entry'];
  1052.                 $author_file = "data/author.txt";
  1053.                 $title_file = "data/items/$entry/title.txt";
  1054.                 $date_file = "data/items/$entry/date.txt";
  1055.                 $body_file = "data/items/$entry/body.txt";
  1056.        
  1057.                 $author = file_get_contents($author_file);
  1058.                 $title = file_get_contents($title_file);
  1059.                 $date = file_get_contents($date_file);
  1060.        
  1061.                 $link = "<a href=\"http://{$_SERVER['SERVER_NAME']}{$_SERVER['PHP_SELF']}?entry=$entry\">http://{$_SERVER['SERVER_NAME']}{$_SERVER['PHP_SELF']}?entry=$entry</a>";
  1062.                 $link = str_replace("pdf.php?entry=","index.php?entry=",$link);
  1063.                 $link = str_replace("edit.php?entry=","index.php?entry=",$link);
  1064.        
  1065.                 $body = file_get_contents($body_file);
  1066.                 $body = str_replace("\n","<br />",$body);
  1067.        
  1068.                 $html = "<br><i>by $author</i><br><br>$date<br><br>Canonical Source<br>$link<br><br><br>$body";
  1069.        
  1070.                 $filename = strtolower($title);
  1071.                 $filename = strtolower($_SERVER['SERVER_NAME']) . "-" . $entry . "-" . $filename . ".pdf";
  1072.                 $filename = str_replace(" ","-",$filename);
  1073.                 $filename = "data/items/$entry/pdf/file/$filename";
  1074.        
  1075.                 require('fpdf.php');
  1076.        
  1077.                 class PDF extends FPDF
  1078.                 {
  1079.                         var $B;
  1080.                         var $I;
  1081.                         var $U;
  1082.                         var $HREF;
  1083.                        
  1084.                         function PDF($orientation='P',$unit='mm',$format='letter')
  1085.                         {
  1086.                             $this->FPDF($orientation,$unit,$format);
  1087.                             $this->B=0;
  1088.                             $this->I=0;
  1089.                             $this->U=0;
  1090.                             $this->HREF='';
  1091.                         }
  1092.                
  1093.                         function WriteHTML($html)
  1094.                         {
  1095.                             $html=str_replace("\n",' ',$html);
  1096.                             $a=preg_split('/<(.*)>/U',$html,-1,PREG_SPLIT_DELIM_CAPTURE);
  1097.                             foreach($a as $i=>$e)
  1098.                             {
  1099.                                 if($i%2==0)
  1100.                                 {
  1101.                                     if($this->HREF)
  1102.                                         $this->PutLink($this->HREF,$e);
  1103.                                     else
  1104.                                         $this->Write(5,$e);
  1105.                                 }
  1106.                                 else
  1107.                                 {
  1108.                                     if($e{0}=='/')
  1109.                                         $this->CloseTag(strtoupper(substr($e,1)));
  1110.                                     else
  1111.                                     {
  1112.                                         $a2=explode(' ',$e);
  1113.                                         $tag=strtoupper(array_shift($a2));
  1114.                                         $attr=array();
  1115.                                         foreach($a2 as $v)
  1116.                                             if(ereg('^([^=]*)=["\']?([^"\']*)["\']?$',$v,$a3))
  1117.                                                 $attr[strtoupper($a3[1])]=$a3[2];
  1118.                                         $this->OpenTag($tag,$attr);
  1119.                                     }
  1120.                                 }
  1121.                             }
  1122.                         }
  1123.                        
  1124.                         function OpenTag($tag,$attr)
  1125.                         {
  1126.                             if($tag=='B' or $tag=='I' or $tag=='U')
  1127.                                 $this->SetStyle($tag,true);
  1128.                             if($tag=='A')
  1129.                                 $this->HREF=$attr['HREF'];
  1130.                             if($tag=='BR')
  1131.                                 $this->Ln(5);
  1132.                         }
  1133.                        
  1134.                         function CloseTag($tag)
  1135.                         {
  1136.                             if($tag=='B' or $tag=='I' or $tag=='U')
  1137.                                 $this->SetStyle($tag,false);
  1138.                             if($tag=='A')
  1139.                                 $this->HREF='';
  1140.                         }
  1141.                        
  1142.                         function SetStyle($tag,$enable)
  1143.                         {
  1144.                             $this->$tag+=($enable ? 1 : -1);
  1145.                             $style='';
  1146.                             foreach(array('B','I','U') as $s)
  1147.                                 if($this->$s>0)
  1148.                                     $style.=$s;
  1149.                             $this->SetFont('',$style);
  1150.                         }
  1151.                        
  1152.                         function PutLink($URL,$txt)
  1153.                         {
  1154.                             $this->SetTextColor(0,0,255);
  1155.                             $this->SetStyle('U',true);
  1156.                             $this->Write(5,$txt,$URL);
  1157.                             $this->SetStyle('U',false);
  1158.                             $this->SetTextColor(0);
  1159.                         }
  1160.                 }
  1161.        
  1162.                 $pdf=new PDF();
  1163.                 $pdf->AddPage();
  1164.                 $pdf->SetTitle($title);
  1165.                 $pdf->SetAuthor($author);
  1166.                 $pdf->SetFont('Helvetica','B',14);
  1167.                 $pdf->WriteHTML($title);
  1168.                 $pdf->SetFont('Helvetica','',10);
  1169.                 $pdf->WriteHTML($html);
  1170.                 $pdf->Output($filename);
  1171.         }
  1172.        
  1173.         if (!isset($_POST['pdf']) or empty($_POST['pdf'])) {
  1174.                 if (file_exists("data/items/{$_REQUEST['entry']}/pdf/file")) {
  1175.                         rmdirr("data/items/{$_REQUEST['entry']}/pdf/file");
  1176.                 }
  1177.         }
  1178.  
  1179.         $passwd_file = "data/items/{$_REQUEST['entry']}/passwd.txt";
  1180.  
  1181.         if (isset($_POST['passwd']) and !empty($_POST['passwd']) and ($_POST['passwd'] != "password")) {
  1182.                 $fp_passwd_txt = fopen("$passwd_file","w");
  1183.                 $passwd_crypt = sha1($_POST['passwd']);
  1184.                 $passwd_crypt = md5($passwd_crypt);
  1185.                 $passwd_crypt = crypt($passwd_crypt, $passwd_crypt);
  1186.                 fwrite($fp_passwd_txt, $passwd_crypt);
  1187.                 fclose($fp_passwd_txt);
  1188.         }
  1189.  
  1190.         if (!isset($_POST['passwd']) or empty($_POST['passwd'])) {
  1191.                 if (file_exists($passwd_file)) {
  1192.                         unlink($passwd_file);
  1193.                 }
  1194.         }
  1195. }
  1196.  
  1197. if (file_exists("data/items/{$_REQUEST['entry']}/title.old")) {
  1198.         unlink("data/items/{$_REQUEST['entry']}/title.old");
  1199. }
  1200.  
  1201. if (file_exists("data/items/{$_REQUEST['entry']}/body.old")) {
  1202.         unlink("data/items/{$_REQUEST['entry']}/body.old");
  1203. }
  1204.  
  1205. $default_ping_url = "http://technorati.com/ping/http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']);
  1206.  
  1207. if (!file_exists("data/ping.txt")) {
  1208.         $fp_default_ping_txt = fopen("data/ping.txt","w");
  1209.         fwrite($fp_default_ping_txt, $default_ping_url);
  1210.         fclose($fp_default_ping_txt);
  1211. }
  1212.  
  1213. $ping_urls = explode("|", file_get_contents("data/ping.txt"));
  1214.  
  1215. foreach ($ping_urls as $ping_url) {
  1216.         $ping = file_get_contents($ping_url);
  1217.         unset($ping);
  1218. }
  1219.  
  1220. ?>
  1221.  
Credits
Sunday, Sep 18, 2005, 12:00 AM (Revision 11 - Thursday, Jul 14, 2011, 7:30 PM)
Open Source enables software developers to stand on the shoulders of giants instead of reinventing the wheel, so to speak. Kudos and many thanks to the folks who made their work freely available for reuse in MAJ.

read more
Bugs and Exploits
Friday, Aug 26, 2005, 12:00 AM (Revision 23 - Wednesday, May 29, 2013, 5:25 AM)
Although MAJ started as a family project, care has been taken to make it as "safe" as possible. With more people now working on MAJ, bugs and exploitable code may sometimes slip in. We invite you to poke around and see if you can find any. Generally, there are two things you can do when you find a MAJ or PHP-related bug or exploit:

1. Take advantage of it. But hey, what's so exciting about messing up someone's blog? Ho-hum, right?
2. Report it here so that we can work on a fix and make MAJ better.

read more
Search
Download
MAJ 2.0
75 files
35387 downloads
MAJ 1.0
26 files
14152 downloads
MAJ 0.14
45 files
36716 downloads