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 625 times via Git panel.

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