- Libraries
- Added a new Form Validation Class. It simplifies setting rules and field names, supports arrays as field names, allows groups of validation rules to be saved in a config file, and adds some helper functions for use in view files. Please note that the old Validation class is now deprecated. We will leave it in the library folder for some time so that existing applications that use it will not break, but you are encouraged to migrate to the new version.
- Updated the Sessions class so that any custom data being saved gets stored to a database rather than the session cookie (assuming you are using a database to store session data), permitting much more data to be saved.
- Added the ability to store libraries in subdirectories within either the main "libraries" or the local application "libraries" folder. Please see the Loader class for more info.
- Added the ability to assign library objects to your own variable names when you use $this->load->library(). Please see the Loader class for more info.
- Added controller class/method info to Profiler class and support for multiple database connections.
- Improved the "auto typography" feature and moved it out of the helper into its own Typography Class.
- Improved performance and accuracy of xss_clean(), including reduction of false positives on image/file tests.
- Improved Parser class to allow multiple calls to the parse() function. The output of each is appended in the output.
- Added max_filename option to set a file name length limit in the File Upload Class.
- Added set_status_header() function to Output class.
- Modified Pagination class to only output the "First" link when the link for page one would not be shown.
- Added support for mb_strlen in the Form Validation class so that multi-byte languages will calculate string lengths properly.
- Database
- Improved Active Record class to allow full path column and table names: hostname.database.table.column. Also improved the alias handling.
- Improved how table and column names are escaped and prefixed. It now honors full path names when adding prefixes and escaping.
- Added Active Record caching feature to "update" and "delete" functions.
- Added removal of non-printing control characters in escape_str() of DB drivers that do not have native PHP escaping mechanisms (mssql, oci8, odbc), to avoid potential SQL errors, and possible sources of SQL injection.
- Added port support to MySQL, MySQLi, and MS SQL database drivers.
- Added driver name variable in each DB driver, based on bug report #4436.
- Helpers
- Added several new "setting" functions to the Form helper that allow POST data to be retrieved and set into forms. These are intended to be used on their own, or with the new Form Validation Class.
- Added current_url() and uri_segments() to URL helper.
- Altered auto_link() in the URL helper so that email addresses with "+" included will be linked.
- Added meta() function to HTML helper.
- Improved accuracy of calculations in Number helper.
- Removed added newlines ("\n") from most form and html helper functions.
- Tightened up validation in the Date helper function human_to_unix(), and eliminated the POSIX regex.
- Updated Date helper to match the world's current time zones and offsets.
- Modified url_title() in the URL helper to remove characters and digits that are part of character entities, to allow dashes, underscores, and periods regardless of the $separator, and to allow uppercase characters.
- Added support for arbitrary attributes in anchor_popup() of the URL helper.
- Other Changes
- Added PHP Style Guide to docs.
- Added sanitization in xss_clean() for a deprecated HTML tag that could be abused in user input in Internet Explorer.
- Added a few openxml document mime types, and an additional mobile agent to mimes.php and user_agents.php respectively.
- Added a file lock check during caching, before trying to write to the file.
- Modified Cookie key cleaning to unset a few troublesome key names that can be present in certain environments, preventing CI from halting execution.
- Changed the output of the profiler to use style attribute rather than clear, and added the id "codeigniter_profiler" to the container div.
Bug fixes for 1.7.0
- Fixed bug in xss_clean() that could remove some desirable tag attributes.
- Fixed assorted user guide typos or examples (#4807, #4812, #4840, #4862, #4864, #4899, #4930, #5006, #5071, #5158, #5229, #5254, #5351).
- Fixed an edit from 1.6.3 that made the $robots array in user_agents.php go poof.
- Fixed a bug in the Email library with quoted-printable encoding improperly encoding space and tab characters.
- Modified XSS sanitization to no longer add semicolons after &[single letter], such as in M&M's, B&B, etc.
- Modified XSS sanitization to no longer strip XHTML image tags of closing slashes.
- Fixed a bug in the Session class when database sessions are used where upon session update all userdata would be errantly written to the session cookie.
- Fixed a bug (#4536) in backups with the MySQL driver where some legacy code was causing certain characters to be double escaped.
- Fixed a routing bug (#4661) that occurred when the default route pointed to a subfolder.
- Fixed the spelling of "Dhaka" in the timezone_menu() function of the Date helper.
- Fixed the spelling of "raspberry" in config/smileys.php.
- Fixed incorrect parenthesis in form_open() function (#5135).
- Fixed a bug that was ignoring case when comparing controller methods (#4560).
- Fixed a bug (#4615) that was not setting SMTP authorization settings when using the initialize function.
- Fixed a bug in highlight_code() in the Text helper that would leave a stray
in certain cases.
Fixed Oracle bug (#3306) that was preventing multiple queries in one action.Fixed ODBC bug that was ignoring connection params due to its use of a constructor.Fixed a DB driver bug with num_rows() that would cause an error with the Oracle driver.Fixed MS SQL bug (#4915). Added brackets around database name in MS SQL driver when selecting the database, in the event that reserved characters are used in the name.Fixed a DB caching bug (4718) in which the path was incorrect when no URI segments were present.Fixed Image_lib class bug #4562. A path was not defined for NetPBM.Fixed Image_lib class bug #4532. When cropping an image with identical height/width settings on output, a copy is made.Fixed DB_driver bug (4900), in which a database error was not being logged correctly.Fixed DB backup bug in which field names were not being escaped.Fixed a DB Active Record caching bug in which multiple calls to cached data were not being honored.Fixed a bug in the Session class that was disallowing slashes in the serialized array.Fixed a Form Validation bug in which the "isset" error message was being trigged by the "required" rule.Fixed a spelling error in a Loader error message.Fixed a bug (5050) with IP validation with empty segments.Fixed a bug in which the parser was being greedy if multiple identical sets of tags were enountered.