mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 00:46:50 +02:00
fix for MDL-6680 redirect function is broken when running php as CGI, me() now used instead of SCRIPT_NAME + minor coding style changes
This commit is contained in:
parent
1cc309df9d
commit
aade3a4b6a
1 changed files with 12 additions and 14 deletions
|
@ -4673,28 +4673,26 @@ function redirect($url, $message='', $delay=-1) {
|
|||
// the absolute path. (In practice browsers accept relative
|
||||
// paths - but still, might as well do it properly.)
|
||||
// This code turns relative into absolute.
|
||||
if(!preg_match('/^[a-z]+:/',$url)) {
|
||||
if (!preg_match('|^[a-z]+:|', $url)) {
|
||||
// Get host name http://www.wherever.com
|
||||
$hostpart=preg_replace('/^(.*?[^:\/])\/.*$/','$1',$CFG->wwwroot);
|
||||
if(preg_match('/^\//',$url)) {
|
||||
// URLs beginning with / are relative to web server root so
|
||||
// we just add them in
|
||||
$url=$hostpart.$url;
|
||||
$hostpart = preg_replace('|^(.*?[^:/])/.*$|', '$1', $CFG->wwwroot);
|
||||
if (preg_match('|^/|', $url)) {
|
||||
// URLs beginning with / are relative to web server root so we just add them in
|
||||
$url = $hostpart.$url;
|
||||
} else {
|
||||
// URLs not beginning with / are relative to path of current
|
||||
// script, so add that on.
|
||||
$url=$hostpart.rtrim(dirname($_SERVER['SCRIPT_NAME']),'/\\').'/'.$url;
|
||||
// URLs not beginning with / are relative to path of current script, so add that on.
|
||||
$url = $hostpart.me().'/../'.$url;
|
||||
}
|
||||
// Replace all ..s
|
||||
while(true) {
|
||||
$newurl=preg_replace('/\/[^\/]*\/\.\.\//','/',$url);
|
||||
if($newurl==$url) {
|
||||
while (true) {
|
||||
$newurl = preg_replace('|/[^/]*/\.\./|', '/', $url);
|
||||
if ($newurl == $url) {
|
||||
break;
|
||||
}
|
||||
$url=$newurl;
|
||||
$url = $newurl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$delay = 0;
|
||||
//try header redirection first
|
||||
@header('HTTP/1.x 303 See Other'); //302 might not work for POST requests, 303 is ignored by obsolete clients
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue