aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/functions_category.inc.php2
-rw-r--r--include/functions_html.inc.php18
-rw-r--r--include/section_init.inc.php6
3 files changed, 25 insertions, 1 deletions
diff --git a/include/functions_category.inc.php b/include/functions_category.inc.php
index a671474ef..2aff86975 100644
--- a/include/functions_category.inc.php
+++ b/include/functions_category.inc.php
@@ -118,6 +118,8 @@ SELECT '.implode(',', $infos).'
WHERE id = '.$id.'
;';
$row = mysql_fetch_array(pwg_query($query));
+ if (empty($row))
+ return null;
$cat = array();
foreach ($infos as $info)
diff --git a/include/functions_html.inc.php b/include/functions_html.inc.php
index bc967b752..65cbc879c 100644
--- a/include/functions_html.inc.php
+++ b/include/functions_html.inc.php
@@ -591,4 +591,22 @@ function access_denied()
redirect($login_url);
}
}
+
+/**
+ * exits the current script with 404 code when a page cannot be found
+ * @param string msg a message to display
+ * @param string alternate_url redirect to this url
+ */
+function page_not_found($msg, $alternate_url=null)
+{
+ header('HTTP/1.1 404 Not found');
+ header('Status: 404 Not found');
+ if ($alternate_url==null)
+ $alternate_url = make_index_url();
+ redirect( $alternate_url,
+ '<div style="text-align:left; margin-left:5em;margin-bottom:5em;">
+<h1 style="text-align:left; font-size:36px;">Page not found</h1><br/>'
+.$msg.'</div>',
+ 5 );
+}
?>
diff --git a/include/section_init.inc.php b/include/section_init.inc.php
index 3a27882ba..1d5949e63 100644
--- a/include/section_init.inc.php
+++ b/include/section_init.inc.php
@@ -197,7 +197,7 @@ SELECT name, url_name, id
}
if ( empty($page['tags']) )
{
- die('Fatal: no existing tag');
+ page_not_found('Requested tag does not exist', get_root_url().'tags.php' );
}
}
else if (0 === strpos($tokens[$next_token], 'fav'))
@@ -316,6 +316,10 @@ if ('categories' == $page['section'])
if (isset($page['category']))
{
$result = get_cat_info($page['category']);
+ if (empty($result))
+ {
+ page_not_found('Requested category does not exist' );
+ }
$page = array_merge(
$page,