X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=http.php;h=94dbff17b302e4ebd36047498e1d4304f8e8dda9;hb=71fc7c41c946279b6d1e1072f72ad3f5aa6a7b39;hp=c38f97d8ee2e64b03203a02b13298d83f9de3a8e;hpb=3bec0ef771d741361c6c4c4c1ff069398f6e37a0;p=wfpl.git diff --git a/http.php b/http.php index c38f97d..94dbff1 100644 --- a/http.php +++ b/http.php @@ -4,24 +4,23 @@ # # This file is part of wfpl. # -# wfpl is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) +# wfpl is free software; you can redistribute it and/or modify it under the +# terms of the GNU Lesser General Public License as published by the Free +# Software Foundation; either version 2.1 of the License, or (at your option) # any later version. # -# wfpl is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. +# wfpl is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for +# more details. # -# You should have received a copy of the GNU General Public License -# along with wfpl; see the file COPYING. If not, write to the -# Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, -# MA 02111-1307, USA. +# You should have received a copy of the GNU Lesser General Public License +# along with wfpl; if not, write to the Free Software Foundation, Inc., 51 +# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -# return our best guess at the url used to access this page -function this_url() { +# return our best guess at the url used to access this page, without the path or query string +function this_url_sans_path() { list($protocol, $version) = explode('/', $_SERVER['SERVER_PROTOCOL']); $url = strtolower($protocol); @@ -43,9 +42,41 @@ function this_url() { } } + return $url; +} + +# return our best guess at the url used to access this page +function this_url() { + $url = this_url_sans_path(); + $url .= $_SERVER['REQUEST_URI']; return $url; } +# sends an HTTP redirect +# +# $url can be: +# 1) a full URL +# 2) an absolute path +# 3) a filename (you can pass a directory/file.html and such, but "../" prefix is not supported) +function redirect($url, $status = '302 Moved Temporarily', $message = '') { + if(!strpos($url, ':')) { + if(substr($url, 0, 1) == '/') { + $url = this_url_sans_path() . $url; + } else { + $url = ereg_replace('/[^/]*([?].*)?$', "/$url", this_url()); + } + } + + if(function_exists('session_save_messages')) { + session_save_messages(); + } + + header("HTTP/1.0 $status"); + header("Location: $url"); + echo($message); + exit(); +} + ?>