PageRenderTime 50ms CodeModel.GetById 23ms RepoModel.GetById 1ms app.codeStats 0ms

/index.php

https://github.com/Kwpolska/kwpastebin
PHP | 105 lines | 97 code | 4 blank | 4 comment | 12 complexity | dda8e2728cee62d8b01d6bbdae99c738 MD5 | raw file
Possible License(s): GPL-3.0
  1. <?php
  2. //KwPastebin
  3. //Copyright Kwpolska 2010. Licensed on GPLv3.
  4. include_once './config.php';
  5. ob_start();
  6. if(!isset($_COOKIE['kwpstln'])) setcookie('kwpstln', 1, 2147483640);
  7. ?>
  8. <form action="send.php" method="post">
  9. <div id="form">
  10. <textarea name="code" rows="24" cols="80"></textarea><br>
  11. <select name="lng">
  12. <optgroup label="Popular">
  13. <option>bash</option> <option>c</option> <option>cpp</option>
  14. <option>csharp</option> <option>css</option> <option>html4strict</option>
  15. <option>java5</option> <option>java</option> <option>javascript</option>
  16. <option>php</option> <option>perl</option> <option>python</option>
  17. <option>rails</option> <option>ruby</option> <option>sql</option> <option
  18. selected="selected">text</option>
  19. </optgroup>
  20. <optgroup label="#"><option>4cs</option>
  21. <optgroup label="A"><option>abap</option> <option>actionscript3</option> <option>actionscript</option> <option>ada</option> <option>apache</option> <option>applescript</option> <option>apt_sources</option> <option>asm</option> <option>asp</option> <option>autoconf</option> <option>autohotkey</option> <option>autoit</option> <option>avisynth</option> <option>awk</option>
  22. <optgroup label="B"><option>basic4gl</option> <option>bf</option> <option>bibtex</option> <option>blitzbasic</option> <option>bnf</option> <option>boo</option>
  23. <optgroup label="C"><option>caddcl</option> <option>cadlisp</option> <option>cfdg</option> <option>cfm</option> <option>chaiscript</option> <option>cisco</option> <option>cil</option> <option>clojure</option> <option>c_mac</option> <option>cmake</option> <option>cobol</option> <option>cpp-qt</option> <option>cuesheet</option>
  24. <optgroup label="D"><option>dcs</option> <option>delphi</option> <option>diff</option> <option>div</option> <option>dos</option> <option>dot</option> <option>d</option>
  25. <optgroup label="E"><option>ecmascript</option> <option>eiffel</option> <option>email</option> <option>erlang</option>
  26. <optgroup label="F"><option>fo</option> <option>fortran</option> <option>freebasic</option> <option>fsharp</option>
  27. <optgroup label="G"><option>gambas</option> <option>gdb</option> <option>genero</option> <option>genie</option> <option>gettext</option> <option>glsl</option> <option>gml</option> <option>gnuplot</option> <option>groovy</option> <option>gwbasic</option>
  28. <optgroup label="H"><option>haskell</option> <option>hicest</option> <option>hq9plus</option>
  29. <optgroup label="I"><option>icon</option> <option>idl</option> <option>ini</option> <option>inno</option> <option>intercal</option> <option>io</option>
  30. <optgroup label="J"><option>j</option> <option>jquery</option>
  31. <optgroup label="K"><option>kixtart</option> <option>klonec</option> <option>klonecpp</option>
  32. <optgroup label="L"><option>latex</option> <option>lisp</option> <option>locobasic</option> <option>logtalk</option> <option>lolcode</option> <option>lotusformulas</option> <option>lotusscript</option> <option>lscript</option> <option>lsl2</option> <option>lua</option>
  33. <optgroup label="M"><option>m68k</option> <option>magiksf</option> <option>make</option> <option>mapbasic</option> <option>matlab</option> <option>mirc</option> <option>mmix</option> <option>modula2</option> <option>modula3</option> <option>mpasm</option> <option>mxml</option> <option>mysql</option>
  34. <optgroup label="N"><option>newlisp</option> <option>nsis</option>
  35. <optgroup label="O"><option>oberon2</option> <option>objc</option> <option>ocaml-brief</option> <option>ocaml</option> <option>oobas</option> <option>oracle11</option> <option>oracle8</option> <option>oxygene</option> <option>oz</option>
  36. <optgroup label="P"><option>pascal</option> <option>pcre</option> <option>perl6</option> <option>per</option> <option>pf</option> <option>php-brief</option> <option>pic16</option> <option>pike</option> <option>pixelbender</option> <option>plsql</option> <option>postgresql</option> <option>povray</option> <option>powerbuilder</option> <option>powershell</option> <option>progress</option> <option>prolog</option> <option>properties</option> <option>providex</option> <option>purebasic</option>
  37. <optgroup label="Q"><option>qbasic</option> <option>q</option>
  38. <optgroup label="R"><option>rebol</option> <option>reg</option> <option>robots</option> <option>rpmspec</option> <option>rsplus</option>
  39. <optgroup label="S"><option>sas</option> <option>scala</option> <option>scheme</option> <option>scilab</option> <option>sdlbasic</option> <option>smalltalk</option> <option>smarty</option> <option>systemverilog</option>
  40. <optgroup label="T"><option>tcl</option> <option>teraterm</option> <option>thinbasic</option> <option>tsql</option> <option>typoscript</option>
  41. <optgroup label="U"><option>unicon</option>
  42. <optgroup label="V"><option>vala</option> <option>vbnet</option> <option>vb</option> <option>verilog</option> <option>vhdl</option> <option>vim</option> <option>visualfoxpro</option> <option>visualprolog</option> <option>whitespace</option>
  43. <optgroup label="W"><option>whois</option> <option>winbatch</option></optgroup>
  44. <optgroup label="X"><option>xbasic</option> <option>xml</option> <option>xorg_conf</option> <option>xpp</option></optgroup>
  45. <optgroup label="Z"><option>z80</option></optgroup> </select>
  46. &mdash; Description: <input type="text" name="desc"> &mdash; <input
  47. type="submit" value="SEND">
  48. </div>
  49. <input type="hidden" name="key" value="<?php $_GET['key']; ?>">
  50. </form>
  51. <?php
  52. $content = ob_get_clean();
  53. if ($open == false && $_GET['key'] != $closedkey) $content = 'Posting is locked
  54. and you haven\'t provided a valid key. <form action="index.php"
  55. method="GET"><input type="text" name="key"> <input type="submit"
  56. value="UNLOCK"></form>';
  57. if(isset($_GET['id'])) {
  58. include_once './geshi.php';
  59. ob_start();
  60. try {
  61. $pdo = createPDO();
  62. $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  63. $stmt = $pdo->prepare('SELECT * FROM `'.$dbtbl.'` WHERE
  64. `pasteid` = ?');
  65. //fields: pasteid, code, language, timestamp, dsc, rmable, rmid, owner
  66. $stmt->execute(array($_GET['id']));
  67. $obj = $stmt->fetch(PDO::FETCH_OBJ);
  68. $dsc = $obj->dsc;
  69. if($dsc == '') $dsc .= 'no user notes';
  70. echo '<a href="./plain.php?id='.$_GET['id'].'">plaintext</a> &mdash; <a
  71. href="./dl.php?id='.$_GET['id'].'">download</a> &mdash; added '.date('F
  72. jS, Y \a\t h:i:s A T', $obj->timestamp).' &mdash; <em>'.$dsc.'</em>
  73. &mdash; <a href="./lnumbers.php?id='.$_GET['id'].'">Toggle line
  74. numbers</a> &mdash; hilighted by <a
  75. href="http://qbnz.com/highlighter/">GeSHi</a><br>';
  76. $geshi = new GeSHI($obj->code, $obj->language);
  77. $geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS, 2);
  78. $geshi->set_line_style('background: #fff;', 'background: #f0f0f0;');
  79. //this determines the line styles. odd (white) even (grey)
  80. if($_COOKIE['kwpstln'] == 0) {
  81. $geshi->enable_line_numbers(GESHI_NO_LINE_NUMBERS);
  82. }
  83. echo $geshi->parse_code();
  84. if($obj->rmable == '1') {
  85. echo "Removal ID: ".$obj->rmid.'<br>';
  86. echo "You can use the id at the deletion page. Don't share it.
  87. The ID won't show up anymore.";
  88. $stmt->closeCursor();
  89. $stmt = $pdo->prepare('UPDATE `'.$dbtbl.'` SET `rmable` = 0
  90. WHERE `pasteid` = ?');
  91. $stmt->execute(array($_GET['id']));
  92. }
  93. $stmt->closeCursor(); // cheating. I have to close either the select
  94. } // or update.
  95. catch(PDOException $e) {
  96. echo 'ERROR: ' . $e->getMessage();
  97. }
  98. $content = ob_get_clean();
  99. }
  100. savant();
  101. ?>