summaryrefslogtreecommitdiffstats
path: root/user_guide_src/source
diff options
context:
space:
mode:
authorAndrey Andreev <narf@devilix.net>2016-07-26 20:03:12 +0200
committerAndrey Andreev <narf@devilix.net>2016-07-26 20:03:12 +0200
commit77266bc6a01668b2106b9974da02e2a7ceaf2fe6 (patch)
tree955346c3278c03a2ff4174b9d078e9416a298ee9 /user_guide_src/source
parenta9874a638970ef826f835718e58b197ff3672566 (diff)
parent0b9540209499fbd0515e13fdc66e85dea4b6baad (diff)
Merge branch '3.1-stable' into develop
Conflicts resolved: .travis.yml system/core/CodeIgniter.php system/database/drivers/oci8/oci8_forge.php system/database/drivers/pdo/subdrivers/pdo_oci_forge.php system/helpers/path_helper.php system/libraries/Email.php user_guide_src/source/changelog.rst user_guide_src/source/conf.py user_guide_src/source/contributing/index.rst user_guide_src/source/general/requirements.rst user_guide_src/source/general/styleguide.rst user_guide_src/source/installation/downloads.rst user_guide_src/source/installation/upgrade_310.rst user_guide_src/source/installation/upgrading.rst
Diffstat (limited to 'user_guide_src/source')
-rw-r--r--user_guide_src/source/changelog.rst62
-rw-r--r--user_guide_src/source/conf.py4
-rw-r--r--user_guide_src/source/contributing/index.rst8
-rw-r--r--user_guide_src/source/database/db_driver_reference.rst10
-rw-r--r--user_guide_src/source/general/errors.rst3
-rw-r--r--user_guide_src/source/general/requirements.rst4
-rw-r--r--user_guide_src/source/general/styleguide.rst4
-rw-r--r--user_guide_src/source/helpers/inflector_helper.rst2
-rw-r--r--user_guide_src/source/helpers/language_helper.rst13
-rw-r--r--user_guide_src/source/index.rst2
-rw-r--r--user_guide_src/source/installation/downloads.rst5
-rw-r--r--user_guide_src/source/installation/upgrade_210.rst6
-rw-r--r--user_guide_src/source/installation/upgrade_300.rst20
-rw-r--r--user_guide_src/source/installation/upgrade_310.rst110
-rw-r--r--user_guide_src/source/installation/upgrade_311.rst (renamed from user_guide_src/source/installation/upgrade_307.rst)2
-rw-r--r--user_guide_src/source/installation/upgrade_320.rst112
-rw-r--r--user_guide_src/source/installation/upgrading.rst5
-rw-r--r--user_guide_src/source/libraries/form_validation.rst2
18 files changed, 251 insertions, 123 deletions
diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst
index 20c7c795d..f9e7f572c 100644
--- a/user_guide_src/source/changelog.rst
+++ b/user_guide_src/source/changelog.rst
@@ -2,7 +2,7 @@
Change Log
##########
-Version 3.1.0
+Version 3.2.0
=============
Release Date: Not Released
@@ -38,12 +38,70 @@ Bug fixes for 3.1.0
- Fixed a bug (#4528) - :doc:`Cache Library <libraries/caching>` stored all scalar values as strings with the 'redis' driver.
-Version 3.0.7
+Version 3.1.1
=============
Release Date: Not Released
+
+Bug fixes for 3.1.1
+-------------------
+
+
+
+
+Version 3.1.0
+=============
+
+Release Date: July 26, 2016
+
+- **Security**
+
+ - Fixed an SQL injection in the 'odbc' database driver.
+ - Updated :php:func:`set_realpath()` :doc:`Path Helpr <helpers/path_helper>` function to filter-out ``php://`` wrapper inputs.
+ - Officially dropped any kind of support for PHP 5.2.x and anything under 5.3.7.
+
+- General Changes
+
+ - Updated :doc:`Image Manipulation Library <libraries/image_lib>` to validate *width* and *height* configuration values.
+ - Updated :doc:`Encryption Library <libraries/encryption>` to always prefer ``random_bytes()`` when it is available.
+ - Updated :doc:`Session Library <libraries/sessions>` to log 'debug' messages when using fallbacks to *session.save_path* (php.ini) or 'sess_use_database', 'sess_table_name' settings.
+ - Added a 'LONGTEXT' to 'STRING' alias to :doc:`Database Forge <database/forge>` for the 'cubrid', 'pdo/cubrid' drivers.
+ - Added 'TINYINT', 'MEDIUMINT', 'INT' and 'BIGINT' aliases to 'NUMBER' to :doc:`Database Forge <database/forge>` for the 'oci8', 'pdo/oci' drivers.
+
+ - :php:func:`password_hash()` :doc:`compatibility function <general/compatibility_functions>` changes:
+
+ - Changed salt-generation logic to prefer ``random_bytes()`` when it is available.
+ - Changed salt-generation logic to prefer direct access to */dev/urandom* over ``openssl_random_pseudo_bytes()``.
+ - Changed salt-generation logic to error if ``openssl_random_pseudo_bytes()`` sets its ``$crypto_strong`` flag to FALSE.
+
+Bug fixes for 3.1.0
+-------------------
+
+- Fixed a bug where :doc:`Image Manipulation Library <libraries/image_lib>` didn't escape image source paths passed to ImageMagick as shell arguments.
+- Fixed a bug (#861) - :doc:`Database Forge <database/forge>` method ``create_table()`` incorrectly accepts field width constraints for MSSQL/SQLSRV integer-type columns.
+- Fixed a bug (#4562) - :doc:`Cache Library <libraries/caching>` didn't check if ``Memcached::quit()`` is available before calling it.
+- Fixed a bug (#4563) - :doc:`Input Library <libraries/input>` method ``request_headers()`` ignores ``$xss_clean`` parameter value after first call.
+- Fixed a bug (#4605) - :doc:`Config Library <libraries/config>` method ``site_url()`` stripped trailing slashes from relative URIs passed to it.
+- Fixed a bug (#4613) - :doc:`Email Library <libraries/config>` failed to send multiple emails via SMTP due to "already authenticated" errors when keep-alive is enabled.
+- Fixed a bug (#4633) - :doc:`Form Validation Library <libraries/form_validation>` ignored multiple "callback" rules for empty, non-required fields.
+- Fixed a bug (#4637) - :doc:`Database <database/index>` method ``error()`` returned ``FALSE`` with the 'oci8' driver if there was no error.
+- Fixed a bug (#4647) - :doc:`Query Builder <database/query_builder>` method ``count_all_results()`` doesn't take into account ``GROUP BY`` clauses while deciding whether to do a subquery or not.
+- Fixed a bug where :doc:`Session Library <libraries/sessions>` 'redis' driver didn't properly detect if a connection is properly closed on PHP 5.x.
+- Fixed a bug (#4583) - :doc:`Email Library <libraries/email>` didn't properly handle inline attachments in HTML emails.
+- Fixed a bug where :doc:`Database <database/index>` method ``db_select()`` didn't clear metadata cached for the previously used database.
+- Fixed a bug (#4675) - :doc:`File Helper <helpers/file_helper>` function :php:func:`delete_files()` treated symbolic links as regular directories.
+- Fixed a bug (#4674) - :doc:`Database <database/index>` driver 'dblib' triggered E_WARNING messages while connecting.
+- Fixed a bug (#4678) - :doc:`Database Forge <database/forge>` tried to use unsupported ``IF NOT EXISTS`` clause when creating tables on Oracle.
+- Fixed a bug (#4691) - :doc:`File Uploading Library <libraries/file_uploading>` method ``data()`` returns wrong 'raw_name' when the filename extension is also contained in the raw filename.
+- Fixed a bug (#4679) - :doc:`Input Library <libraries/input>` method ``ip_address()`` errors with a matching ``$config['proxy_ips']`` IPv6 address.
+- Fixed a bug (#4695) - :doc:`User Agent Library <libraries/user_agent>` didn't load the *config/user_agents.php* file when there's no ``User-Agent`` HTTP request header.
+- Fixed a bug (#4713) - :doc:`Query Builder <database/query_builder>` methods ``insert_batch()``, ``update_batch()`` could return wrong affected rows count.
+- Fixed a bug (#4712) - :doc:`Email Library <libraries/email>` doesn't sent ``RSET`` to SMTP servers after a failure and while using keep-alive.
+- Fixed a bug (#4724) - :doc:`Common function <general/common_functions>` :php:func:`is_https()` compared the ``X-Forwarded-Proto`` HTTP header case-sensitively.
+- Fixed a bug (#4725) - :doc:`Common function <general/common_functions>` :php:func:`remove_invisible_characters()` searched case-sensitively for URL-encoded characters.
+
Version 3.0.6
=============
diff --git a/user_guide_src/source/conf.py b/user_guide_src/source/conf.py
index cd060ed67..4714b0d62 100644
--- a/user_guide_src/source/conf.py
+++ b/user_guide_src/source/conf.py
@@ -48,9 +48,9 @@ copyright = u'2014 - 2016, British Columbia Institute of Technology'
# built documents.
#
# The short X.Y version.
-version = '3.1.0-dev'
+version = '3.2.0-dev'
# The full version, including alpha/beta/rc tags.
-release = '3.1.0-dev'
+release = '3.2.0-dev'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
diff --git a/user_guide_src/source/contributing/index.rst b/user_guide_src/source/contributing/index.rst
index 64e9f0d92..be776ec1f 100644
--- a/user_guide_src/source/contributing/index.rst
+++ b/user_guide_src/source/contributing/index.rst
@@ -103,10 +103,10 @@ must also be updated for every change. Also PHPDoc blocks must be maintained.
Compatibility
=============
-CodeIgniter recommends PHP 5.5 or newer to be used, but it should be
-compatible with PHP 5.2.4 so all code supplied must stick to this
-requirement. If PHP 5.3 (and above) functions or features are used then
-there must be a fallback for PHP 5.2.4.
+CodeIgniter recommends PHP 5.6 or newer to be used, but it should be
+compatible with PHP 5.3.7 so all code supplied must stick to this
+requirement. If PHP 5.4 (and above) functions or features are used then
+there must be a fallback for PHP 5.3.7.
Branching
=========
diff --git a/user_guide_src/source/database/db_driver_reference.rst b/user_guide_src/source/database/db_driver_reference.rst
index db0c67118..6f2fa5fb1 100644
--- a/user_guide_src/source/database/db_driver_reference.rst
+++ b/user_guide_src/source/database/db_driver_reference.rst
@@ -108,6 +108,16 @@ This article is intended to be a reference for them.
for use when you don't need to get a result object or to
just send a query to the database and not care for the result.
+ .. php:method:: affected_rows()
+
+ :returns: Number of rows affected
+ :rtype: int
+
+ Returns the number of rows *changed* by the last executed query.
+
+ Useful for checking how much rows were created, updated or deleted
+ during the last executed query.
+
.. php:method:: trans_strict([$mode = TRUE])
:param bool $mode: Strict mode flag
diff --git a/user_guide_src/source/general/errors.rst b/user_guide_src/source/general/errors.rst
index 9c190feb1..a1cc3517a 100644
--- a/user_guide_src/source/general/errors.rst
+++ b/user_guide_src/source/general/errors.rst
@@ -78,11 +78,10 @@ The following functions let you generate errors:
CodeIgniter automatically logs any ``show_404()`` calls. Setting the
optional second parameter to FALSE will skip logging.
-.. php:function:: log_message($level, $message, $php_error = FALSE)
+.. php:function:: log_message($level, $message)
:param string $level: Log level: 'error', 'debug' or 'info'
:param string $message: Message to log
- :param bool $php_error: Whether we're logging a native PHP error message
:rtype: void
This function lets you write messages to your log files. You must
diff --git a/user_guide_src/source/general/requirements.rst b/user_guide_src/source/general/requirements.rst
index 7eea71745..f2729f3d5 100644
--- a/user_guide_src/source/general/requirements.rst
+++ b/user_guide_src/source/general/requirements.rst
@@ -2,9 +2,9 @@
Server Requirements
###################
-`PHP <http://php.net/>`_ version 5.5 or newer is recommended.
+`PHP <http://php.net/>`_ version 5.6 or newer is recommended.
-It should work on 5.2.4 as well, but we strongly advise you NOT to run
+It should work on 5.3.7 as well, but we strongly advise you NOT to run
such old versions of PHP, because of potential security and performance
issues, as well as missing features.
diff --git a/user_guide_src/source/general/styleguide.rst b/user_guide_src/source/general/styleguide.rst
index b21246b4f..9b4a84e14 100644
--- a/user_guide_src/source/general/styleguide.rst
+++ b/user_guide_src/source/general/styleguide.rst
@@ -345,8 +345,8 @@ inability for CodeIgniter to send proper headers.
Compatibility
=============
-CodeIgniter recommends PHP 5.5 or newer to be used, but it should be
-compatible with PHP 5.2.4. Your code must either be compatible with this
+CodeIgniter recommends PHP 5.6 or newer to be used, but it should be
+compatible with PHP 5.3.7. Your code must either be compatible with this
requirement, provide a suitable fallback, or be an optional feature that
dies quietly without affecting a user's application.
diff --git a/user_guide_src/source/helpers/inflector_helper.rst b/user_guide_src/source/helpers/inflector_helper.rst
index 17dab57bf..df0c568c0 100644
--- a/user_guide_src/source/helpers/inflector_helper.rst
+++ b/user_guide_src/source/helpers/inflector_helper.rst
@@ -3,7 +3,7 @@ Inflector Helper
################
The Inflector Helper file contains functions that permits you to change
-words to plural, singular, camel case, etc.
+**English** words to plural, singular, camel case, etc.
.. contents::
:local:
diff --git a/user_guide_src/source/helpers/language_helper.rst b/user_guide_src/source/helpers/language_helper.rst
index cadf3c0ce..cfbd6c057 100644
--- a/user_guide_src/source/helpers/language_helper.rst
+++ b/user_guide_src/source/helpers/language_helper.rst
@@ -27,17 +27,20 @@ The following functions are available:
.. php:function:: lang($line[, $for = ''[, $attributes = array()]])
- :param string $line: Language line key
- :param string $for: HTML "for" attribute (ID of the element we're creating a label for)
- :param array $attributes: Any additional HTML attributes
- :returns: HTML-formatted language line label
+ :param string $line: Language line key
+ :param string $for: HTML "for" attribute (ID of the element we're creating a label for)
+ :param array $attributes: Any additional HTML attributes
+ :returns: The language line; in an HTML label tag, if the ``$for`` parameter is not empty
:rtype: string
This function returns a line of text from a loaded language file with
simplified syntax that may be more desirable for view files than
``CI_Lang::line()``.
- Example::
+ Examples::
+
+ echo lang('language_key');
+ // Outputs: Language line
echo lang('language_key', 'form_item_id', array('class' => 'myClass'));
// Outputs: <label for="form_item_id" class="myClass">Language line</label> \ No newline at end of file
diff --git a/user_guide_src/source/index.rst b/user_guide_src/source/index.rst
index a13ec983e..615c27f3c 100644
--- a/user_guide_src/source/index.rst
+++ b/user_guide_src/source/index.rst
@@ -116,7 +116,7 @@ Helper Reference
installation/index
general/index
libraries/index
- helpers/index
database/index
+ helpers/index
tutorial/index
general/credits
diff --git a/user_guide_src/source/installation/downloads.rst b/user_guide_src/source/installation/downloads.rst
index 29f1a6d87..1e28a5bf0 100644
--- a/user_guide_src/source/installation/downloads.rst
+++ b/user_guide_src/source/installation/downloads.rst
@@ -2,8 +2,9 @@
Downloading CodeIgniter
#######################
-- `CodeIgniter v3.1.0-dev (Current version) <https://codeload.github.com/bcit-ci/CodeIgniter/zip/develop>`_
-- `CodeIgniter v3.0.7-dev <https://codeload.github.com/bcit-ci/CodeIgniter/zip/3.0-stable>`_
+- `CodeIgniter v3.2.0-dev (Current version) <https://codeload.github.com/bcit-ci/CodeIgniter/zip/develop>`_
+- `CodeIgniter v3.1.1-dev <https://codeload.github.com/bcit-ci/CodeIgniter/zip/3.1-stable>`_
+- `CodeIgniter v3.1.0 <https://codeload.github.com/bcit-ci/CodeIgniter/zip/3.1.0>`_
- `CodeIgniter v3.0.6 <https://codeload.github.com/bcit-ci/CodeIgniter/zip/3.0.6>`_
- `CodeIgniter v3.0.5 <https://codeload.github.com/bcit-ci/CodeIgniter/zip/3.0.5>`_
- `CodeIgniter v3.0.4 <https://codeload.github.com/bcit-ci/CodeIgniter/zip/3.0.4>`_
diff --git a/user_guide_src/source/installation/upgrade_210.rst b/user_guide_src/source/installation/upgrade_210.rst
index 5874bfc86..866dcf4ae 100644
--- a/user_guide_src/source/installation/upgrade_210.rst
+++ b/user_guide_src/source/installation/upgrade_210.rst
@@ -13,11 +13,11 @@ Replace all files and directories in your "system" folder.
.. note:: If you have any custom developed files in these folders please
make copies of them first.
-Step 2: Replace config/user_agents.php
-======================================
+Step 2: Replace config/mimes.php
+================================
This config file has been updated to contain more user agent types,
-please copy it to _application/config/user_agents.php*.
+please copy it to _application/config/mimes.php*.
Step 3: Update your user guide
==============================
diff --git a/user_guide_src/source/installation/upgrade_300.rst b/user_guide_src/source/installation/upgrade_300.rst
index 9a40f2b60..0fc211f89 100644
--- a/user_guide_src/source/installation/upgrade_300.rst
+++ b/user_guide_src/source/installation/upgrade_300.rst
@@ -842,7 +842,6 @@ CodeIgniter 3.1+.
.. note:: This method is still available, but you're strongly encouraged to remove its usage
sooner rather than later.
-======================
The Javascript library
======================
@@ -854,6 +853,25 @@ It is now deprecated and scheduled for removal in CodeIgniter 3.1+.
.. note:: This library is still available, but you're strongly encouraged to remove its usage
sooner rather than later.
+Form Validation method prep_for_form()
+======================================
+
+The :doc:`Form Validation Library <../libraries/form_validation>` has a
+``prep_for_form()`` method, which is/can also be used as a rule in
+``set_rules()`` to automatically perform HTML encoding on input data.
+
+Automatically encoding input (instead of output) data is a bad practice in
+the first place, and CodeIgniter and PHP itself offer other alternatives
+to this method anyway.
+For example, :doc:`Form Helper <../helpers/form_helper>` functions will
+automatically perform HTML escaping when necessary.
+
+Therefore, the *prep_for_form* method/rule is pretty much useless and is now
+deprecated and scheduled for removal in 3.1+.
+
+.. note:: The method is still available, but you're strongly encouraged to
+ remove its usage sooner rather than later.
+
***********************************************************
Step 21: Check your usage of Text helper highlight_phrase()
***********************************************************
diff --git a/user_guide_src/source/installation/upgrade_310.rst b/user_guide_src/source/installation/upgrade_310.rst
index 36f69d01b..cae814327 100644
--- a/user_guide_src/source/installation/upgrade_310.rst
+++ b/user_guide_src/source/installation/upgrade_310.rst
@@ -1,5 +1,5 @@
#############################
-Upgrading from 3.0.x to 3.1.x
+Upgrading from 3.0.6 to 3.1.0
#############################
Before performing an update you should take your site offline by
@@ -13,100 +13,26 @@ Replace all files and directories in your *system/* directory.
.. note:: If you have any custom developed files in these directories,
please make copies of them first.
-Step 2: Change database connection handling
-===========================================
+Step 2: Check your PHP version
+==============================
-"Loading" a database, whether by using the *config/autoload.php* settings
-or manually via calling ``$this->load->database()`` or the less-known
-``DB()`` function, will now throw a ``RuntimeException`` in case of a
-failure.
+We recommend always running versions that are `currently supported
+<https://secure.php.net/supported-versions.php>`_, which right now is at least PHP 5.6.
-In addition, being unable to set the configured character set is now also
-considered a connection failure.
+PHP 5.2.x versions are now officially not supported by CodeIgniter, and while 5.3.7+
+may be at least runnable, we strongly discourage you from using any PHP versions below
+the ones listed on the `PHP.net Supported Versions <https://secure.php.net/supported-versions.php>`_
+page.
-.. note:: This has been the case for most database drivers in the in the
- past as well (i.e. all but the 'mysql', 'mysqli' and 'postgre'
- drivers).
+Step 3: If you're using the 'odbc' database driver, check for usage of Query Builder
+====================================================================================
-What this means is that if you're unable to connect to a database, or
-have an erroneous character set configured, CodeIgniter will no longer
-fail silently, but will throw an exception instead.
+:doc:`Query Builder <../database/query_builder>` functionality and ``escape()`` can
+no longer be used with the 'odbc' database driver.
-You may choose to explicitly catch it (and for that purpose you can't use
-*config/autoload.php* to load the :doc:`Database Class <../database/index>`)
-::
+This is because, due to its nature, the `ODBC extension for PHP <https://secure.php.net/odbc>`_
+does not provide a function that allows to safely escape user-supplied strings for usage
+inside an SQL query (which our :doc:`Query Builder <../database/query_builder>` relies on).
- try
- {
- $this->load->database();
- }
- catch (RuntimeException $e)
- {
- // Handle the failure
- }
-
-Or you may leave it to CodeIgniter's default exception handler, which would
-log the error message and display an error screen if you're running in
-development mode.
-
-Remove db_set_charset() calls
------------------------------
-
-With the above-mentioned changes, the purpose of the ``db_set_charset()``
-method would now only be to change the connection character set at runtime.
-That doesn't make sense and that's the reason why most database drivers
-don't support it at all.
-Thus, ``db_set_charset()`` is no longer necessary and is removed.
-
-Step 3: Check logic related to URI parsing of CLI requests
-==========================================================
-
-When running a CodeIgniter application from the CLI, the
-:doc:`URI Library <../libraries/uri>` will now ignore the
-``$config['url_suffix']`` and ``$config['permitted_uri_chars']``
-configuration settings.
-
-These two options don't make sense under the command line (which is why
-this change was made) and therefore you shouldn't be affected by this, but
-if you've relied on them for some reason, you'd probably have to make some
-changes to your code.
-
-Step 4: Check Cache Library configurations for Redis, Memcache(d)
-=================================================================
-
-The new improvements for the 'redis' and 'memcached' drivers of the
-:doc:`Cache Library <../libraries/caching>` may require some small
-adjustments to your configuration values ...
-
-Redis
------
-
-If you're using the 'redis' driver with a UNIX socket connection, you'll
-have to move the socket path from ``$config['socket']`` to
-``$config['host']`` instead.
-
-The ``$config['socket_type']`` option is also removed, although that won't
-affect your application - it will be ignored and the connection type will
-be determined by the format used for ``$config['host']`` instead.
-
-Memcache(d)
------------
-
-The 'memcached' will now ignore configurations that don't specify a ``host``
-value (previously, it just set the host to the default '127.0.0.1').
-
-Therefore, if you've added a configuration that only sets e.g. a ``port``,
-you will now have to explicitly set the ``host`` to '127.0.0.1' as well.
-
-Step 5: Check usage of doctype() HTML helper
-============================================
-
-The :doc:`HTML Helper <../helpers/html_helper>` function
-:php:func:`doctype()` used to default to 'xhtml1-strict' (XHTML 1.0 Strict)
-when no document type was specified. That default value is now changed to
-'html5', which obviously stands for the modern HTML 5 standard.
-
-Nothing should be really broken by this change, but if your application
-relies on the default value, you should double-check it and either
-explicitly set the desired format, or adapt your front-end to use proper
-HTML 5 formatting. \ No newline at end of file
+Thus, user inputs MUST be bound, as shown in :doc:`Running Queries <../database/queries>`,
+under the "Query Bindings" section.
diff --git a/user_guide_src/source/installation/upgrade_307.rst b/user_guide_src/source/installation/upgrade_311.rst
index ee957aabf..a36e72323 100644
--- a/user_guide_src/source/installation/upgrade_307.rst
+++ b/user_guide_src/source/installation/upgrade_311.rst
@@ -1,5 +1,5 @@
#############################
-Upgrading from 3.0.6 to 3.0.7
+Upgrading from 3.1.0 to 3.1.1
#############################
Before performing an update you should take your site offline by
diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst
new file mode 100644
index 000000000..942a8a3b5
--- /dev/null
+++ b/user_guide_src/source/installation/upgrade_320.rst
@@ -0,0 +1,112 @@
+#############################
+Upgrading from 3.1.x to 3.2.x
+#############################
+
+Before performing an update you should take your site offline by
+replacing the index.php file with a static one.
+
+Step 1: Update your CodeIgniter files
+=====================================
+
+Replace all files and directories in your *system/* directory.
+
+.. note:: If you have any custom developed files in these directories,
+ please make copies of them first.
+
+Step 2: Change database connection handling
+===========================================
+
+"Loading" a database, whether by using the *config/autoload.php* settings
+or manually via calling ``$this->load->database()`` or the less-known
+``DB()`` function, will now throw a ``RuntimeException`` in case of a
+failure.
+
+In addition, being unable to set the configured character set is now also
+considered a connection failure.
+
+.. note:: This has been the case for most database drivers in the in the
+ past as well (i.e. all but the 'mysql', 'mysqli' and 'postgre'
+ drivers).
+
+What this means is that if you're unable to connect to a database, or
+have an erroneous character set configured, CodeIgniter will no longer
+fail silently, but will throw an exception instead.
+
+You may choose to explicitly catch it (and for that purpose you can't use
+*config/autoload.php* to load the :doc:`Database Class <../database/index>`)
+::
+
+ try
+ {
+ $this->load->database();
+ }
+ catch (RuntimeException $e)
+ {
+ // Handle the failure
+ }
+
+Or you may leave it to CodeIgniter's default exception handler, which would
+log the error message and display an error screen if you're running in
+development mode.
+
+Remove db_set_charset() calls
+-----------------------------
+
+With the above-mentioned changes, the purpose of the ``db_set_charset()``
+method would now only be to change the connection character set at runtime.
+That doesn't make sense and that's the reason why most database drivers
+don't support it at all.
+Thus, ``db_set_charset()`` is no longer necessary and is removed.
+
+Step 3: Check logic related to URI parsing of CLI requests
+==========================================================
+
+When running a CodeIgniter application from the CLI, the
+:doc:`URI Library <../libraries/uri>` will now ignore the
+``$config['url_suffix']`` and ``$config['permitted_uri_chars']``
+configuration settings.
+
+These two options don't make sense under the command line (which is why
+this change was made) and therefore you shouldn't be affected by this, but
+if you've relied on them for some reason, you'd probably have to make some
+changes to your code.
+
+Step 4: Check Cache Library configurations for Redis, Memcache(d)
+=================================================================
+
+The new improvements for the 'redis' and 'memcached' drivers of the
+:doc:`Cache Library <../libraries/caching>` may require some small
+adjustments to your configuration values ...
+
+Redis
+-----
+
+If you're using the 'redis' driver with a UNIX socket connection, you'll
+have to move the socket path from ``$config['socket']`` to
+``$config['host']`` instead.
+
+The ``$config['socket_type']`` option is also removed, although that won't
+affect your application - it will be ignored and the connection type will
+be determined by the format used for ``$config['host']`` instead.
+
+Memcache(d)
+-----------
+
+The 'memcached' will now ignore configurations that don't specify a ``host``
+value (previously, it just set the host to the default '127.0.0.1').
+
+Therefore, if you've added a configuration that only sets e.g. a ``port``,
+you will now have to explicitly set the ``host`` to '127.0.0.1' as well.
+
+Step 5: Check usage of doctype() HTML helper
+============================================
+
+The :doc:`HTML Helper <../helpers/html_helper>` function
+:php:func:`doctype()` used to default to 'xhtml1-strict' (XHTML 1.0 Strict)
+when no document type was specified. That default value is now changed to
+'html5', which obviously stands for the modern HTML 5 standard.
+
+Nothing should be really broken by this change, but if your application
+relies on the default value, you should double-check it and either
+explicitly set the desired format, or adapt your front-end to use proper
+HTML 5 formatting.
diff --git a/user_guide_src/source/installation/upgrading.rst b/user_guide_src/source/installation/upgrading.rst
index f42db7be5..01812169b 100644
--- a/user_guide_src/source/installation/upgrading.rst
+++ b/user_guide_src/source/installation/upgrading.rst
@@ -8,8 +8,9 @@ upgrading from.
.. toctree::
:titlesonly:
- Upgrading from 3.0.x to 3.1.x <upgrade_310>
- Upgrading from 3.0.6 to 3.0.7 <upgrade_307>
+ Upgrading from 3.1.x to 3.2.x <upgrade_320>
+ Upgrading from 3.1.0 to 3.1.1 <upgrade_311>
+ Upgrading from 3.0.6 to 3.1.0 <upgrade_310>
Upgrading from 3.0.5 to 3.0.6 <upgrade_306>
Upgrading from 3.0.4 to 3.0.5 <upgrade_305>
Upgrading from 3.0.3 to 3.0.4 <upgrade_304>
diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst
index 44adfd715..b03b544e2 100644
--- a/user_guide_src/source/libraries/form_validation.rst
+++ b/user_guide_src/source/libraries/form_validation.rst
@@ -465,7 +465,7 @@ for you to process.
To invoke a callback just put the method name in a rule, with
"callback\_" as the rule **prefix**. If you need to receive an extra
parameter in your callback method, just add it normally after the
-method name between square brackets, as in: "callback_foo**[bar]**",
+method name between square brackets, as in: ``callback_foo[bar]``,
then it will be passed as the second argument of your callback method.
.. note:: You can also process the form data that is passed to your