cvs: php-gtk-web /manual add-note.php

[email protected] ("Steph Fox") Tue, 11 Jul 2006 07:56:28 -0000
Newsgroups php.gtk.webmaster
Message-ID <cvssfox1152604588@cvsserver>
sfox		Tue Jul 11 07:56:28 2006 UTC

  Modified files:              
    /php-gtk-web/manual	add-note.php 
  Log:
  clean up http_referer usage
  
http://cvs.php.net/viewvc.cgi/php-gtk-web/manual/add-note.php?r1=1.23&r2=1.24&diff_format=u
Index: php-gtk-web/manual/add-note.php
diff -u php-gtk-web/manual/add-note.php:1.23 php-gtk-web/manual/add-note.php:1.24
--- php-gtk-web/manual/add-note.php:1.23	Sun Jul  9 15:48:59 2006
+++ php-gtk-web/manual/add-note.php	Tue Jul 11 07:56:28 2006
@@ -22,13 +22,26 @@
 </SCRIPT>
 <?php
 
-$referrer = null;
-
-$referrer = isset($_POST['referer']) ? trim($_POST['referer']) : $_SERVER['HTTP_REFERER'];
+$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null;
+$referrer = isset($_POST['referer']) ? trim($_POST['referer']) : $referer;
 
 if (!$referrer) {
-	$referrer = substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'));
-	header("Location: $referrer");
+	if (isset($_GET['ref'])) {
+		$referrer = $_GET['ref'];
+	} else {
+		/* no idea how this person got here */
+		header("Location: /");
+		exit;
+	}
+}
+
+/* better check it, eh? */
+$referrer = htmlentities(strip_tags($referrer));
+$real = $_SERVER['DOCUMENT_ROOT'];
+$real .= str_replace('http://'.$_SERVER['HTTP_HOST'], '', $referrer);
+
+if (!file_exists($real)) {
+	header("Location: /");
 	exit;
 }