summaryrefslogtreecommitdiffstats
path: root/paste/paste.php
diff options
context:
space:
mode:
Diffstat (limited to 'paste/paste.php')
-rw-r--r--paste/paste.php107
1 files changed, 107 insertions, 0 deletions
diff --git a/paste/paste.php b/paste/paste.php
new file mode 100644
index 0000000..17cec80
--- /dev/null
+++ b/paste/paste.php
@@ -0,0 +1,107 @@
+<?
+/*
+This software is licensed through a BSD-style License.
+http://www.opensource.org/licenses/bsd-license.php
+
+Copyright (c) 2002 - 2009 Jacob D. Cohen
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+Neither the name of Jacob D. Cohen nor the names of his contributors
+may be used to endorse or promote products derived from this software
+without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+require_once("include/pastify.inc");
+require_once("include/createpage.inc");
+
+$refererurl = $_SERVER['HTTP_REFERER'];
+$refererurl = preg_replace("/\/[^\/]*$/", "", $refererurl);
+$thisurl = "http://" . $_SERVER['HTTP_HOST'];
+$thisurl .= $_SERVER['PHP_SELF'];
+$thisurl = preg_replace("/\/[^\/]*$/", "", $thisurl);
+
+
+if (isset($_POST['text']) && "" != ($ttemp = rtrim($_POST['text'])))
+{
+ $url = "";
+ $baseurl = $_SERVER['PHP_SELF'];
+ $baseurl = preg_replace("/\/[^\/]*$/", "", $baseurl);
+
+ $text = $ttemp;
+
+ # Figure out if the post specified a syntax highlighting language
+ if (isset($_POST['lang']) && "" != ($ltemp = rtrim($_POST['lang'])))
+ {
+ $language = $ltemp;
+ if (strlen($language) > 20)
+ $language = substr($language, 0, 20);
+ $language = stripslashes($language);
+ $language = strip_tags($language);
+ $language = htmlspecialchars($language, ENT_QUOTES);
+ }
+ else
+ {
+ $language = "Plain Text";
+ }
+
+
+ # Add a description if available
+ if (isset($_POST['desc']) && "" != ($dtemp = rtrim($_POST['desc'])))
+ {
+ $desc = stripslashes($dtemp);
+ if (strlen($desc) > 80)
+ {
+ $desc = substr($desc, 0, 76);
+ $desc .= " ...";
+ }
+ $desc = strip_tags($desc);
+ $desc = htmlspecialchars($desc, ENT_QUOTES);
+ if ("" == $desc)
+ $desc = "No description";
+ }
+ else
+ $desc = "No description";
+
+
+ if (get_magic_quotes_gpc())
+ $text = stripslashes($text);
+
+ $finalText = PastifyText($text, $language, $desc);
+ $url = CreatePage($finalText);
+
+ # Note: this function was pretty specific to my implementation. It stored
+ # paste metadata about the language used, description, and URL, as well as
+ # a timestamp (but the raw pastes were never preserved - they always expired
+ # as promised after 24 hours)
+ #add_to_db($desc, $language, $url);
+
+ Header("Location: $url");
+}
+else
+{
+ header("Location: " . $_SERVER['HTTP_REFERER']);
+ exit;
+}
+
+?>