mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-06 16:56:44 +02:00
- re-add script_path for "strange configurations" to let them force the generated urls correctly
- show rank title if no rank image present in memberlist - other fixes. git-svn-id: file:///svn/phpbb/trunk@6730 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
@@ -27,7 +27,12 @@ class acp_board
|
||||
$action = request_var('action', '');
|
||||
$submit = (isset($_POST['submit'])) ? true : false;
|
||||
|
||||
// Validation types are: string, int, bool, rpath (relative), rwpath (realtive, writeable), path (relative path, but able to escape the root), wpath (writeable)
|
||||
/**
|
||||
* Validation types are:
|
||||
* string, int, bool,
|
||||
* script_path (absolute path in url - beginning with / and no trailing slash),
|
||||
* rpath (relative), rwpath (realtive, writeable), path (relative path, but able to escape the root), wpath (writeable)
|
||||
*/
|
||||
switch ($mode)
|
||||
{
|
||||
case 'settings':
|
||||
@@ -283,10 +288,11 @@ class acp_board
|
||||
'ranks_path' => array('lang' => 'RANKS_PATH', 'validate' => 'rpath', 'type' => 'text:20:255', 'explain' => true),
|
||||
|
||||
'legend3' => 'SERVER_URL_SETTINGS',
|
||||
'force_server_vars' => array('lang' => 'FORCE_SERVER_VARS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
||||
'server_protocol' => array('lang' => 'SERVER_PROTOCOL', 'validate' => 'string', 'type' => 'text:10:10', 'explain' => true),
|
||||
'server_name' => array('lang' => 'SERVER_NAME', 'validate' => 'string', 'type' => 'text:40:255', 'explain' => true),
|
||||
'server_port' => array('lang' => 'SERVER_PORT', 'validate' => 'int', 'type' => 'text:5:5', 'explain' => true),
|
||||
'force_server_vars' => array('lang' => 'FORCE_SERVER_VARS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
||||
'server_protocol' => array('lang' => 'SERVER_PROTOCOL', 'validate' => 'string', 'type' => 'text:10:10', 'explain' => true),
|
||||
'server_name' => array('lang' => 'SERVER_NAME', 'validate' => 'string', 'type' => 'text:40:255', 'explain' => true),
|
||||
'server_port' => array('lang' => 'SERVER_PORT', 'validate' => 'int', 'type' => 'text:5:5', 'explain' => true),
|
||||
'script_path' => array('lang' => 'SCRIPT_PATH', 'validate' => 'script_path', 'type' => 'text::255', 'explain' => true),
|
||||
)
|
||||
);
|
||||
break;
|
||||
|
@@ -94,10 +94,8 @@ class acp_inactive
|
||||
include_once($phpbb_root_path . 'includes/functions_messenger.'.$phpEx);
|
||||
|
||||
$messenger = new messenger();
|
||||
|
||||
$board_url = generate_board_url() . "/ucp.$phpEx?mode=activate";
|
||||
|
||||
$usernames = array();
|
||||
|
||||
do
|
||||
{
|
||||
$messenger->template('user_remind_inactive', $row['user_lang']);
|
||||
@@ -109,7 +107,7 @@ class acp_inactive
|
||||
$messenger->assign_vars(array(
|
||||
'USERNAME' => htmlspecialchars_decode($row['username']),
|
||||
'REGISTER_DATE' => $user->format_date($row['user_regdate']),
|
||||
'U_ACTIVATE' => "$board_url&mode=activate&u=" . $row['user_id'] . '&k=' . $row['user_actkey'])
|
||||
'U_ACTIVATE' => generate_board_url() . "/ucp.$phpEx?mode=activate&u=" . $row['user_id'] . '&k=' . $row['user_actkey'])
|
||||
);
|
||||
|
||||
$messenger->send($row['user_notify_type']);
|
||||
|
@@ -1451,6 +1451,7 @@ function generate_board_url($without_script_path = false)
|
||||
$server_protocol = ($config['server_protocol']) ? $config['server_protocol'] : (($config['cookie_secure']) ? 'https://' : 'http://');
|
||||
$server_name = $config['server_name'];
|
||||
$server_port = (int) $config['server_port'];
|
||||
$script_path = $config['script_path'];
|
||||
|
||||
$url = $server_protocol . $server_name;
|
||||
}
|
||||
@@ -1459,6 +1460,8 @@ function generate_board_url($without_script_path = false)
|
||||
// Do not rely on cookie_secure, users seem to think that it means a secured cookie instead of an encrypted connection
|
||||
$cookie_secure = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 1 : 0;
|
||||
$url = (($cookie_secure) ? 'https://' : 'http://') . $server_name;
|
||||
|
||||
$script_path = $user->page['root_script_path'];
|
||||
}
|
||||
|
||||
if ($server_port && (($config['cookie_secure'] && $server_port <> 443) || (!$config['cookie_secure'] && $server_port <> 80)))
|
||||
@@ -1466,13 +1469,18 @@ function generate_board_url($without_script_path = false)
|
||||
$url .= ':' . $server_port;
|
||||
}
|
||||
|
||||
if ($without_script_path)
|
||||
if (!$without_script_path)
|
||||
{
|
||||
return $url;
|
||||
$url .= $script_path;
|
||||
}
|
||||
|
||||
// Strip / from the end
|
||||
return $url . substr($user->page['root_script_path'], 0, -1);
|
||||
if (substr($url, -1, 1) == '/')
|
||||
{
|
||||
$url = substr($url, 0, -1);
|
||||
}
|
||||
|
||||
return $url;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -359,9 +359,12 @@ class ftp extends transfer
|
||||
*/
|
||||
function _chdir($dir = '')
|
||||
{
|
||||
if (substr($dir, -1, 1) == '/')
|
||||
if ($dir && $dir !== '/')
|
||||
{
|
||||
$dir = substr($dir, 0, -1);
|
||||
if (substr($dir, -1, 1) == '/')
|
||||
{
|
||||
$dir = substr($dir, 0, -1);
|
||||
}
|
||||
}
|
||||
|
||||
return @ftp_chdir($this->connection, $dir);
|
||||
@@ -585,9 +588,12 @@ class ftp_fsock extends transfer
|
||||
*/
|
||||
function _chdir($dir = '')
|
||||
{
|
||||
if (substr($dir, -1, 1) == '/')
|
||||
if ($dir && $dir !== '/')
|
||||
{
|
||||
$dir = substr($dir, 0, -1);
|
||||
if (substr($dir, -1, 1) == '/')
|
||||
{
|
||||
$dir = substr($dir, 0, -1);
|
||||
}
|
||||
}
|
||||
|
||||
return $this->_send_command('CWD', $dir);
|
||||
|
@@ -840,7 +840,14 @@ class bbcode_firstpass extends bbcode
|
||||
{
|
||||
global $config, $phpEx, $user;
|
||||
|
||||
$check_path = ($user->page['root_script_path'] != '/') ? substr($user->page['root_script_path'], 0, -1) : '/';
|
||||
if ($config['force_server_vars'])
|
||||
{
|
||||
$check_path = $config['script_path'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$check_path = ($user->page['root_script_path'] != '/') ? substr($user->page['root_script_path'], 0, -1) : '/';
|
||||
}
|
||||
|
||||
// Is the user trying to link to a php file in this domain and script path?
|
||||
if (strpos($url, ".{$phpEx}") !== false && strpos($url, $check_path) !== false)
|
||||
|
@@ -173,7 +173,7 @@ class ucp_profile
|
||||
|
||||
$messenger->assign_vars(array(
|
||||
'USERNAME' => htmlspecialchars_decode($data['username']),
|
||||
'U_USER_DETAILS' => "$server_url/memberlist.$phpEx?mode=viewprofile&u={$user->data['user_id']}",
|
||||
'U_USER_DETAILS' => "$server_url/memberlist.$phpEx?mode=viewprofile&u={$user->data['user_id']}",
|
||||
'U_ACTIVATE' => "$server_url/ucp.$phpEx?mode=activate&u={$user->data['user_id']}&k=$user_actkey")
|
||||
);
|
||||
|
||||
|
@@ -113,7 +113,7 @@ class ucp_resend
|
||||
|
||||
$messenger->assign_vars(array(
|
||||
'USERNAME' => htmlspecialchars_decode($user_row['username']),
|
||||
'U_USER_DETAILS' => "$server_url/memberlist.$phpEx?mode=viewprofile&u={$user->data['user_id']}",
|
||||
'U_USER_DETAILS' => generate_board_url() . "/memberlist.$phpEx?mode=viewprofile&u={$user->data['user_id']}",
|
||||
'U_ACTIVATE' => generate_board_url() . "/ucp.$phpEx?mode=activate&u={$user_row['user_id']}&k={$user_row['user_actkey']}")
|
||||
);
|
||||
|
||||
|
Reference in New Issue
Block a user