CodeIgniter is a powerful PHP framework with a very small footprint, built for PHP coders who need a simple and elegant toolkit to create full-featured web applications. If you`re a developer who lives in the real world of shared hosting accounts and clients with deadlines, and if you`re tired of ponderously large and thoroughly undocumented frameworks CodeIgniter is right for you if...
- You want a framework with a small footprint.
- You need exceptional performance.
- You need broad compatibility with standard hosting accounts that run a variety of PHP versions and configurations.
- You want a framework that requires nearly zero configuration.
- You want a framework that does not require you to use the command line.
- You want a framework that does not require you to adhere to restrictive coding rules.
- You are not interested in large-scale monolithic libraries like PEAR.
- You do not want to be forced to learn a templating language (although a template parser is optionally available if you desire one).
- You eschew complexity, favoring simple solutions.
- You need clear, thorough documentation
Download alternate CodeIgniter solution
Look at the free or trial alternatives and similar apps to CodeIgniter software by the tags. It's possible also to find substitutes for the most popular titles in the Website Building category.
History updates (Complete changelogs since the listing on this site)
- Fixed a bug (#1543) - File-based Caching method get_metadata() used a non-existent array key to look for the TTL value.
- Fixed a bug (#1314) - Session Library method sess_destroy() didn't destroy the userdata array.
- Fixed a bug where the Profiler Library issued an E_WARNING error if Session userdata contains objects.
- Fixed a bug (#1699) - Migration Library ignored the $config['migration_path'] setting.
- Fixed a bug (#227) - Input Library allowed unconditional spoofing of HTTP clients' IP addresses through the HTTP_CLIENT_IP header.
- Fixed a bug (#907) - Input Library ignored HTTP_X_CLUSTER_CLIENT_IP and HTTP_X_CLIENT_IP headers when checking for proxies.
- Fixed a bug (#940) - csrf_verify() used to set the CSRF cookie while processing a POST request with no actual POST data, which resulted in validating a request that should be considered invalid.
- Fixed a bug in the Security Library where a CSRF cookie was created even if $config['csrf_protection'] is set tot FALSE.
- Fixed a bug (#1715) - Input Library triggered csrf_verify() on CLI requests.
Other versions : 2.1.2 2.1.0 2.0.3 2.0.2
- General Changes
- Improved security in xss_clean().
- General Changes
- Fixed a potential parameter injection flaw in the Security Library and strengthened the XSS filter for HTML5 vulnerabilites.
- Callback validation rules can now accept parameters like any other validation rule.
- Added html_escape() to the Common functions to escape HTML output for preventing XSS easliy.
- Added increment_string() to String Helper to turn "foo" into "foo-1" or "foo-1" into "foo-2".
- Altered form helper - made action on form_open_multipart helper function call optional. Fixes (#65)
- url_title() will now trim extra dashes from beginning and end.
- Improved speed of String Helper's random_string() method
- Added a CUBRID driver to the Database driver. Thanks to the CUBRID team for supplying this patch.
- Added a PDO driver to the Database driver.
- Typecast limit and offset in the Database driver to integers to avoid possible injection.
- Added additional option 'none' for the optional third argument for $this->db->like() in the Database driver.
- Added $this->db->insert_batch() support to the OCI8 (Oracle) driver.
- Changed $this->cart->insert() in the Cart library to return the Row ID if a single item was inserted successfully.
- Added support to set an optional parameter in your callback rules of validation using the Form Validation library.
- Added a Migration library to assist with applying incremental updates to your database schema.
- Driver children can be located in any package path.
- Added is_unique to the Form Validation library.
- Added $config['use_page_numbers'] to the Pagination library, which enables real page numbers in the URI.
- Added TLS and SSL Encryption for SMTP.
- Changed private functions in URI library to protected so MY_URI can override them.
- Removed CI_CORE boolean constant from CodeIgniter.php (there are no longer different Reactor and Core versions).
- Fixed #378 Robots identified as regular browsers by the User Agent class.
- If a config class was loaded first then a library with the same name is loaded, the config would be ignored.
- Fixed a bug (Reactor #19) where 1) the 404_override route was being ignored in some cases, and 2) auto-loaded libraries were not available to the 404_override controller when a controller existed but the requested method did not.
- Fixed a bug (Reactor #89) where MySQL export would fail if the table had hyphens or other non alphanumeric/underscore characters.
- Fixed a bug (#200) where MySQL queries would be malformed after calling $this->db->count_all() then $this->db->get()
- Fixed bug #105 that stopped query errors from being logged unless database debugging was enabled
- Fixed a bug (#160) - Removed unneeded array copy in the file cache driver.
- Fixed a bug (#150) - field_data() now correctly returns column length.
- Fixed a bug (#8) - load_class() now looks for core classes in APPPATH first, allowing them to be replaced.
- Fixed a bug (#24) - ODBC database driver called incorrect parent in __construct().
- Fixed a bug (#85) - OCI8 (Oracle) database escape_str() function did not escape correct.
- Fixed a bug (#344) - Using schema found in Saving Session Data to a Database, system would throw error "user_data does not have a default value" when deleting then creating a session.
- Fixed a bug (#112) - OCI8 (Oracle) driver didn't pass the configured database character set when connecting.
- Fixed a bug (#182) - OCI8 (Oracle) driver used to re-execute the statement whenever num_rows() is called.
- Fixed a bug (#82) - WHERE clause field names in the DB update_string() method were not escaped, resulting in failed queries in some cases.
- Fixed a bug (#89) - Fix a variable type mismatch in DB display_error() where an array is expected, but a string could be set instead.
- Fixed a bug (#467) - Suppress warnings generated from get_magic_quotes_gpc() (deprecated in PHP 5.4)
- Fixed a bug (#484) - First time _csrf_set_hash() is called, hash is never set to the cookie (in Security.php).
- Fixed a bug (#60) - Added _file_mime_type() method to the File Uploading Library in order to fix a possible MIME-type injection (also fixes bug #394).
- Fixed a bug (#537) - Support for all wav type in browser.
- Fixed a bug (#576) - Using ini_get() function to detect if apc is enabled or not.
- Fixed invalid date time format in Date helper and XMLRPC library.
- An improvement was made to the MySQL and MySQLi drivers to prevent exposing a potential vector for SQL injection on sites using multi-byte character sets in the database client connection. An incompatibility in PHP versions < 5.2.3 and MySQL < 5.0.7 with mysql_set_charset() creates a situation where using multi-byte character sets on these environments may potentially expose a SQL injection attack vector. Latin-1, UTF-8, and other "low ASCII" character sets are unaffected on all environments. If you are running or considering running a multi-byte character set for your database connection, please pay close attention to the server environment you are deploying on to ensure you are not vulnerable.
- General Changes
- Fixed a bug where there was a misspelling within a code comment in the index.php file.
- Added Session Class userdata to the output profiler. Additionally, added a show/hide toggle on HTTP Headers, Session Data and Config Variables.
- Removed internal usage of the EXT constant.
- Visual updates to the welcome_message view file and default error templates. Thanks to danijelb for the pull request.
- Added insert_batch() function to the PostgreSQL database driver. Thanks to epallerols for the patch.
- Added "application/x-csv" to mimes.php.
- Fixed a bug where Email library attachments with a "." in the name would using invalid MIME-types.
- Added an optional third parameter to heading() which allows adding html attributes to the rendered heading tag.
- Altered Session to use a longer match against the user_agent string. See upgrade notes if using database sessions.
- Added $this->db->set_dbprefix() to the Database Driver.
- Changed $this->cart->insert() in the Cart Library to return the Row ID if a single item was inserted successfully.
- Added $this->load->get_var() to the Loader library to retrieve global vars set with $this->load->view() and $this->load->vars().
- Changed $this->db->having() to insert quotes using escape() rather than escape_str().
- Added ENVIRONMENT to reserved constants. (Reactor #196)
- Changed server check to ensure SCRIPT_NAME is defined. (Reactor #57)
- Removed APPPATH.'third_party' from the packages autoloader to negate needless file stats if no packages exist or if the developer does not load any other packages by default.
- Fixed a bug (Reactor #231) where Sessions Library database table example SQL did not contain an index on last_activity. See Upgrade Notes.
- Fixed a bug (Reactor #229) where the Sessions Library example SQL in the documentation contained incorrect SQL.
- Fixed a bug (Core #340) where when passing in the second parameter to $this->db->select(), column names in subsequent queries would not be properly escaped.
- Fixed issue #199 - Attributes passed as string does not include a space between it and the opening tag.
- Fixed a bug where the method $this->cart->total_items() from Cart Library now returns the sum of the quantity of all items in the cart instead of your total count.
- Fixed a bug where not setting 'null' when adding fields in db_forge for mysql and mysqli drivers would default to NULL instead of NOT NULL as the docs suggest.
- Fixed a bug where using $this->db->select_max(), $this->db->select_min(), etc could throw notices. Thanks to w43l for the patch.
- Replace checks for STDIN with php_sapi_name() == 'cli' which on the whole is more reliable. This should get parameters in crontab working.
Predicted future versions and notices:
The doDownload.com constantly monitors the update of all programs, including information from the CodeIgniter 2.1.4 changelog file, however sometimes it can happen that data are not complete or are outdated.We assume that author continue's to develop 2.2.0 version with further advanced features, and soon you will be informed. Equally important 3.0.0 upgrades of the program we will continue to monitor. Full CodeIgniter description has been compared with the overall software database and our algorithm has found the following applications (are showed below).
(2.2MB, Extension: ZIP)