X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=index.php;h=2de9be0a1824b31dc57fd17d34c7b1f1999afe44;hb=refs%2Fheads%2Fv0.9;hp=9e6986283a0a9a8901d827638aaf558aff9e3412;hpb=ebd650c06c67a67da2a0d099f625b6a7ec62ab2b;p=github%2Fshaarli%2FShaarli.git diff --git a/index.php b/index.php index 9e698628..2de9be0a 100644 --- a/index.php +++ b/index.php @@ -116,7 +116,7 @@ if (session_id() == '') { } // Regenerate session ID if invalid or not defined in cookie. -if (isset($_COOKIE['shaarli']) && !is_session_id_valid($_COOKIE['shaarli'])) { +if (isset($_COOKIE['shaarli']) && !SessionManager::checkId($_COOKIE['shaarli'])) { session_regenerate_id(true); $_COOKIE['shaarli'] = session_id(); } @@ -124,6 +124,11 @@ if (isset($_COOKIE['shaarli']) && !is_session_id_valid($_COOKIE['shaarli'])) { $conf = new ConfigManager(); $sessionManager = new SessionManager($_SESSION, $conf); +// LC_MESSAGES isn't defined without php-intl, in this case use LC_COLLATE locale instead. +if (! defined('LC_MESSAGES')) { + define('LC_MESSAGES', LC_COLLATE); +} + // Sniff browser language and set date format accordingly. if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { autoLocale($_SERVER['HTTP_ACCEPT_LANGUAGE']); @@ -436,7 +441,7 @@ if (isset($_POST['login'])) else { ban_loginFailed($conf); - $redir = '&username='. $_POST['login']; + $redir = '&username='. urlencode($_POST['login']); if (isset($_GET['post'])) { $redir .= '&post=' . urlencode($_GET['post']); foreach (array('description', 'source', 'title', 'tags') as $param) { @@ -526,7 +531,11 @@ function showDailyRSS($conf) { // We pre-format some fields for proper output. foreach ($links as &$link) { - $link['formatedDescription'] = format_description($link['description'], $conf->get('redirector.url')); + $link['formatedDescription'] = format_description( + $link['description'], + $conf->get('redirector.url'), + $conf->get('redirector.encode_url') + ); $link['thumbnail'] = thumbnail($conf, $link['url']); $link['timestamp'] = $link['created']->getTimestamp(); if (startsWith($link['url'], '?')) { @@ -598,7 +607,11 @@ function showDaily($pageBuilder, $LINKSDB, $conf, $pluginManager) $taglist = explode(' ',$link['tags']); uasort($taglist, 'strcasecmp'); $linksToDisplay[$key]['taglist']=$taglist; - $linksToDisplay[$key]['formatedDescription'] = format_description($link['description'], $conf->get('redirector.url')); + $linksToDisplay[$key]['formatedDescription'] = format_description( + $link['description'], + $conf->get('redirector.url'), + $conf->get('redirector.encode_url') + ); $linksToDisplay[$key]['thumbnail'] = thumbnail($conf, $link['url']); $linksToDisplay[$key]['timestamp'] = $link['created']->getTimestamp(); } @@ -1417,16 +1430,10 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager) // If this is an HTTP(S) link, we try go get the page to extract the title (otherwise we will to straight to the edit form.) if (empty($title) && strpos(get_url_scheme($url), 'http') !== false) { // Short timeout to keep the application responsive - list($headers, $content) = get_http_response($url, 4); - if (strpos($headers[0], '200 OK') !== false) { - // Retrieve charset. - $charset = get_charset($headers, $content); - // Extract title. - $title = html_extract_title($content); - // Re-encode title in utf-8 if necessary. - if (! empty($title) && strtolower($charset) != 'utf-8') { - $title = mb_convert_encoding($title, 'utf-8', $charset); - } + // The callback will fill $charset and $title with data from the downloaded page. + get_http_response($url, 25, 4194304, get_curl_download_callback($charset, $title)); + if (! empty($title) && strtolower($charset) != 'utf-8') { + $title = mb_convert_encoding($title, 'utf-8', $charset); } } @@ -1688,7 +1695,11 @@ function buildLinkList($PAGE,$LINKSDB, $conf, $pluginManager) while ($i<$end && $iget('redirector.url')); + $link['description'] = format_description( + $link['description'], + $conf->get('redirector.url'), + $conf->get('redirector.encode_url') + ); $classLi = ($i % 2) != 0 ? '' : 'publicLinkHightLight'; $link['class'] = $link['private'] == 0 ? $classLi : 'private'; $link['timestamp'] = $link['created']->getTimestamp();