Commit 0e9f8c0f authored by Lukas Fleischer's avatar Lukas Fleischer
Browse files

Do not redirect on single search results



The use of header() to redirect after previous output was a design flaw.
Our only luck here was PHP's "output_buffering" config variable
defaulting to 4096, which kind of hid the bug for a long time.

Fixes FS#24580.

Signed-off-by: default avatarLukas Fleischer <archlinux@cryptocrack.de>
parent 58530975
......@@ -533,42 +533,35 @@ function pkg_search_page($SID="") {
$last = $_GET['PP'] + $_GET['O'];
}
# calculation of pagination links
$per_page = ($_GET['PP'] > 0) ? $_GET['PP'] : 50;
$current = ceil($first / $per_page);
$pages = ceil($total / $per_page);
$templ_pages = array();
if ($total > 1 || $total == 0) {
# calculation of pagination links
$per_page = ($_GET['PP'] > 0) ? $_GET['PP'] : 50;
$current = ceil($first / $per_page);
$pages = ceil($total / $per_page);
$templ_pages = array();
if ($current > 1) {
$templ_pages[__('First')] = 0;
$templ_pages[__('Previous')] = ($current - 2) * $per_page;
}
if ($current - 5 > 1)
$templ_pages["..."] = false;
if ($current > 1) {
$templ_pages[__('First')] = 0;
$templ_pages[__('Previous')] = ($current - 2) * $per_page;
}
for ($i = max($current - 5, 1); $i <= min($pages, $current + 5); $i++) {
$templ_pages[$i] = ($i - 1) * $per_page;
}
if ($current - 5 > 1)
$templ_pages["..."] = false;
if ($current + 5 < $pages)
$templ_pages["... "] = false;
for ($i = max($current - 5, 1); $i <= min($pages, $current + 5); $i++) {
$templ_pages[$i] = ($i - 1) * $per_page;
}
if ($current < $pages) {
$templ_pages[__('Next')] = $current * $per_page;
$templ_pages[__('Last')] = ($pages - 1) * $per_page;
}
if ($current + 5 < $pages)
$templ_pages["... "] = false;
include('pkg_search_form.php');
include('pkg_search_results.php');
}
else {
$pkgdetails = mysql_fetch_assoc($result);
header("Location: packages.php?ID={$pkgdetails['ID']}");
if ($current < $pages) {
$templ_pages[__('Next')] = $current * $per_page;
$templ_pages[__('Last')] = ($pages - 1) * $per_page;
}
include('pkg_search_form.php');
include('pkg_search_results.php');
return;
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment