Skip to content

Instantly share code, notes, and snippets.

@allen501pc
Created November 12, 2012 06:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save allen501pc/4057800 to your computer and use it in GitHub Desktop.
Save allen501pc/4057800 to your computer and use it in GitHub Desktop.
function PMA_generate_common_url ($db = '', $table = '', $delim = '&')
<?php
function PMA_generate_common_url ($db = '', $table = '', $delim = '&amp;')
{
if (is_array($db)) {
$params =& $db;
$delim = empty($table) ? $delim : $table;
$questionmark = '?';
} else {
$params = array();
if (strlen($db)) {
$params['db'] = $db;
}
if (strlen($table)) {
$params['table'] = $table;
}
$questionmark = '';
}
// use seperators defined by php, but prefer ';'
// as recommended by W3C
$separator = PMA_get_arg_separator();
// check wether to htmlentity the separator or not
if ($delim === '&amp;') {
/* Allen: do not affect $delim variable. */
// $delim = htmlentities($delim);
} else {
$delim = $separator;
}
if (isset($GLOBALS['server'])
&& $GLOBALS['server'] != $GLOBALS['cfg']['ServerDefault']) {
$params['server'] = $GLOBALS['server'];
}
if (empty($_COOKIE['pma_lang'])
&& ! empty($GLOBALS['lang'])) {
$params['lang'] = $GLOBALS['lang'];
}
if (empty($_COOKIE['pma_charset'])
&& ! empty($GLOBALS['convcharset'])) {
$params['convcharset'] = $GLOBALS['convcharset'];
}
if (empty($_COOKIE['pma_collation_connection'])
&& ! empty($GLOBALS['collation_connection'])) {
$params['collation_connection'] = $GLOBALS['collation_connection'];
}
$params['token'] = $_SESSION[' PMA_token '];
$param_strings = array();
foreach ($params as $key => $val) {
/* We ignore arrays as we don't use them! */
if (!is_array($val)) {
$param_strings[] = urlencode($key) . '=' . urlencode($val);
}
}
if (empty($param_strings)) {
return '';
}
return $questionmark . implode($delim, $param_strings);
}
?>
<?php
function PMA_generate_common_url ($db = '', $table = '', $delim = '&amp;')
{
if (is_array($db)) {
$params =& $db;
$delim = empty($table) ? $delim : $table;
$questionmark = '?';
} else {
$params = array();
if (strlen($db)) {
$params['db'] = $db;
}
if (strlen($table)) {
$params['table'] = $table;
}
$questionmark = '';
}
// use seperators defined by php, but prefer ';'
// as recommended by W3C
$separator = PMA_get_arg_separator();
// check wether to htmlentity the separator or not
if ($delim === '&amp;') {
$delim = htmlentities($separator);
} else {
$delim = $separator;
}
if (isset($GLOBALS['server'])
&& $GLOBALS['server'] != $GLOBALS['cfg']['ServerDefault']) {
$params['server'] = $GLOBALS['server'];
}
if (empty($_COOKIE['pma_lang'])
&& ! empty($GLOBALS['lang'])) {
$params['lang'] = $GLOBALS['lang'];
}
if (empty($_COOKIE['pma_charset'])
&& ! empty($GLOBALS['convcharset'])) {
$params['convcharset'] = $GLOBALS['convcharset'];
}
if (empty($_COOKIE['pma_collation_connection'])
&& ! empty($GLOBALS['collation_connection'])) {
$params['collation_connection'] = $GLOBALS['collation_connection'];
}
$params['token'] = $_SESSION[' PMA_token '];
$param_strings = array();
foreach ($params as $key => $val) {
/* We ignore arrays as we don't use them! */
if (!is_array($val)) {
$param_strings[] = urlencode($key) . '=' . urlencode($val);
}
}
if (empty($param_strings)) {
return '';
}
return $questionmark . implode($delim, $param_strings);
}
?>
<?php
/**
* Returns url separator
*
* @return string character used for separating url parts
*
* @access public
*
* @author nijel
*/
function PMA_get_arg_separator() {
// use seperators defined by php, but prefer ';'
// as recommended by W3C
$php_arg_separator_input = ini_get('arg_separator.input');
if (strpos($php_arg_separator_input, ';') !== false) {
return ';';
} elseif (strlen($php_arg_separator_input) > 0) {
return $php_arg_separator_input{0};
} else {
return '&';
}
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment