Modified show_error() to allow sending of HTTP server response codes.
Added set_status_header() to the Common functions to allow use when the Output class is unavailable.
Fixed a bug where the 400 status header sent with the 'disallowed URI characters' was not compatible with CGI environments.
diff --git a/user_guide/changelog.html b/user_guide/changelog.html
index 323467b..e4199cd 100644
--- a/user_guide/changelog.html
+++ b/user_guide/changelog.html
@@ -85,6 +85,12 @@
<li>Modified <kbd>directory_map()</kbd> in the <a href="helpers/directory_helper.html">Directory helper</a> to allow the inclusion of hidden files.</li>
</ul>
</li>
+ <li>General
+ <ul>
+ <li>Modified <a href="general/errors.html">show_error()</a> to allow sending of HTTP server response codes.</li>
+ <li>Added set_status_header() to the <a href="general/common_functions.html">Common functions<a> to allow use when the Output class is unavailable.</li>
+ </ul>
+ </li>
</ul>
<h3>Bug fixes for 1.7.2</h3>
@@ -102,6 +108,7 @@
<li>Fixed a case sensitive string replacement in xss_clean()</li>
<li>Fixed a bug in form_prep() causing it to not preserve entities in the user's original input when called back into a form element</li>
<li>Fixed a bug in _protect_identifiers() where the swap prefix ($swap_pre) was not being observed.</li>
+ <li>Fixed a bug where the 400 status header sent with the 'disallowed URI characters' was not compatible with CGI environments.</li>
</ul>
<h2>Version 1.7.1</h2>
diff --git a/user_guide/general/common_functions.html b/user_guide/general/common_functions.html
index df5dfea..980a5a9 100644
--- a/user_guide/general/common_functions.html
+++ b/user_guide/general/common_functions.html
@@ -58,8 +58,11 @@
<h1>Common Functions</h1>
<p>CodeIgniter uses a few functions for its operation that are globally defined, and are available to you at any point. These do not require loading any libraries or helpers.</p>
+
<h2>is_really_writable('<var>path/to/file</var>')</h2>
+
<p>is_writable() returns TRUE on Windows servers when you really can't write to the file as the OS reports to PHP as FALSE only if the read-only attribute is marked. This function determines if a file is actually writable by attempting to write to it first. Generally only recommended on platforms where this information may be unreliable.</p>
+
<code>if (is_really_writable('file.txt'))<br />
{<br />
echo "I could write to this if I wanted to";<br />
@@ -68,11 +71,25 @@
{<br />
echo "File is not writable";<br />
}</code>
+
<h2>config_item('<var>item_key</var>')</h2>
<p>The <a href="../libraries/config.html">Config library</a> is the preferred way of accessing configuration information, however config_item() can be used to retrieve single keys. See Config library documentation for more information.</p>
+
<h2>show_error('<var>message</var>'), show_404('<var>page</var>'), log_message('<var>level</var>', '<samp>message</samp>')</h2>
<p>These are each outlined on the <a href="errors.html">Error Handling</a> page.</p>
+
+<h2>set_status_header(<var>code</var>, '<var>text</var>');</h2>
+
+<p>Permits you to manually set a server status header. Example:</p>
+
+<code>set_status_header(401);<br />
+// Sets the header as: Unauthorized</code>
+
+<p><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">See here</a> for a full list of headers.</p>
+
</div>
+
+
<!-- END CONTENT -->
diff --git a/user_guide/general/errors.html b/user_guide/general/errors.html
index c1bb691..af11845 100644
--- a/user_guide/general/errors.html
+++ b/user_guide/general/errors.html
@@ -71,9 +71,10 @@
<p>The following functions let you generate errors:</p>
-<h2>show_error('<var>message</var>')</h2>
+<h2>show_error('<var>message</var>' [, int <var>$status_code</var>= 500 ] )</h2>
<p>This function will display the error message supplied to it using the following error template:</p>
<p><dfn>application/errors/</dfn><kbd>error_general.php</kbd></p>
+<p>The optional parameter $status_code determines what HTTP status code should be sent with the error.</p>
<h2>show_404('<var>page</var>')</h2>
<p>This function will display the 404 error message supplied to it using the following error template:</p>
diff --git a/user_guide/libraries/output.html b/user_guide/libraries/output.html
index 6d75fe7..ba6a0d3 100644
--- a/user_guide/libraries/output.html
+++ b/user_guide/libraries/output.html
@@ -100,7 +100,7 @@
$this->output->set_header("Pragma: no-cache"); </code>
-<h2>$this->output->set_status_header();</h2>
+<h2>$this->output->set_status_header(<var>code</var>, '<var>text</var>');</h2>
<p>Permits you to manually set a server status header. Example:</p>