Showing preview only (3,381K chars total). Download the full file or copy to clipboard to get everything.
Repository: bcit-ci/CodeIgniter
Branch: develop
Commit: 3658d731eaab
Files: 541
Total size: 3.1 MB
Directory structure:
gitextract_gk2rayde/
├── .editorconfig
├── .gitattributes
├── .github/
│ └── workflows/
│ └── test-phpunit.yml
├── .gitignore
├── DCO.txt
├── application/
│ ├── .htaccess
│ ├── cache/
│ │ └── index.html
│ ├── config/
│ │ ├── autoload.php
│ │ ├── config.php
│ │ ├── constants.php
│ │ ├── database.php
│ │ ├── doctypes.php
│ │ ├── foreign_chars.php
│ │ ├── hooks.php
│ │ ├── index.html
│ │ ├── memcached.php
│ │ ├── migration.php
│ │ ├── mimes.php
│ │ ├── profiler.php
│ │ ├── routes.php
│ │ └── user_agents.php
│ ├── controllers/
│ │ ├── Welcome.php
│ │ └── index.html
│ ├── core/
│ │ └── index.html
│ ├── helpers/
│ │ └── index.html
│ ├── hooks/
│ │ └── index.html
│ ├── index.html
│ ├── language/
│ │ ├── english/
│ │ │ └── index.html
│ │ └── index.html
│ ├── libraries/
│ │ └── index.html
│ ├── logs/
│ │ └── index.html
│ ├── models/
│ │ └── index.html
│ ├── third_party/
│ │ └── index.html
│ └── views/
│ ├── errors/
│ │ ├── cli/
│ │ │ ├── error_404.php
│ │ │ ├── error_db.php
│ │ │ ├── error_exception.php
│ │ │ ├── error_general.php
│ │ │ ├── error_php.php
│ │ │ └── index.html
│ │ ├── html/
│ │ │ ├── error_404.php
│ │ │ ├── error_db.php
│ │ │ ├── error_exception.php
│ │ │ ├── error_general.php
│ │ │ ├── error_php.php
│ │ │ └── index.html
│ │ └── index.html
│ ├── index.html
│ └── welcome_message.php
├── build-release.sh
├── composer.json
├── contributing.md
├── index.php
├── license.txt
├── phpdoc.dist.xml
├── readme.rst
├── system/
│ ├── .htaccess
│ ├── core/
│ │ ├── Benchmark.php
│ │ ├── CodeIgniter.php
│ │ ├── Common.php
│ │ ├── Config.php
│ │ ├── Controller.php
│ │ ├── Exceptions.php
│ │ ├── Hooks.php
│ │ ├── Input.php
│ │ ├── Lang.php
│ │ ├── Loader.php
│ │ ├── Log.php
│ │ ├── Model.php
│ │ ├── Output.php
│ │ ├── Router.php
│ │ ├── Security.php
│ │ ├── URI.php
│ │ ├── Utf8.php
│ │ ├── compat/
│ │ │ ├── hash.php
│ │ │ ├── index.html
│ │ │ ├── mbstring.php
│ │ │ ├── password.php
│ │ │ └── standard.php
│ │ └── index.html
│ ├── database/
│ │ ├── DB.php
│ │ ├── DB_cache.php
│ │ ├── DB_driver.php
│ │ ├── DB_forge.php
│ │ ├── DB_query_builder.php
│ │ ├── DB_result.php
│ │ ├── DB_utility.php
│ │ ├── drivers/
│ │ │ ├── cubrid/
│ │ │ │ ├── cubrid_driver.php
│ │ │ │ ├── cubrid_forge.php
│ │ │ │ ├── cubrid_result.php
│ │ │ │ ├── cubrid_utility.php
│ │ │ │ └── index.html
│ │ │ ├── ibase/
│ │ │ │ ├── ibase_driver.php
│ │ │ │ ├── ibase_forge.php
│ │ │ │ ├── ibase_result.php
│ │ │ │ ├── ibase_utility.php
│ │ │ │ └── index.html
│ │ │ ├── index.html
│ │ │ ├── mssql/
│ │ │ │ ├── index.html
│ │ │ │ ├── mssql_driver.php
│ │ │ │ ├── mssql_forge.php
│ │ │ │ ├── mssql_result.php
│ │ │ │ └── mssql_utility.php
│ │ │ ├── mysql/
│ │ │ │ ├── index.html
│ │ │ │ ├── mysql_driver.php
│ │ │ │ ├── mysql_forge.php
│ │ │ │ ├── mysql_result.php
│ │ │ │ └── mysql_utility.php
│ │ │ ├── mysqli/
│ │ │ │ ├── index.html
│ │ │ │ ├── mysqli_driver.php
│ │ │ │ ├── mysqli_forge.php
│ │ │ │ ├── mysqli_result.php
│ │ │ │ └── mysqli_utility.php
│ │ │ ├── oci8/
│ │ │ │ ├── index.html
│ │ │ │ ├── oci8_driver.php
│ │ │ │ ├── oci8_forge.php
│ │ │ │ ├── oci8_result.php
│ │ │ │ └── oci8_utility.php
│ │ │ ├── odbc/
│ │ │ │ ├── index.html
│ │ │ │ ├── odbc_driver.php
│ │ │ │ ├── odbc_forge.php
│ │ │ │ ├── odbc_result.php
│ │ │ │ └── odbc_utility.php
│ │ │ ├── pdo/
│ │ │ │ ├── index.html
│ │ │ │ ├── pdo_driver.php
│ │ │ │ ├── pdo_forge.php
│ │ │ │ ├── pdo_result.php
│ │ │ │ ├── pdo_utility.php
│ │ │ │ └── subdrivers/
│ │ │ │ ├── index.html
│ │ │ │ ├── pdo_4d_driver.php
│ │ │ │ ├── pdo_4d_forge.php
│ │ │ │ ├── pdo_cubrid_driver.php
│ │ │ │ ├── pdo_cubrid_forge.php
│ │ │ │ ├── pdo_dblib_driver.php
│ │ │ │ ├── pdo_dblib_forge.php
│ │ │ │ ├── pdo_firebird_driver.php
│ │ │ │ ├── pdo_firebird_forge.php
│ │ │ │ ├── pdo_ibm_driver.php
│ │ │ │ ├── pdo_ibm_forge.php
│ │ │ │ ├── pdo_informix_driver.php
│ │ │ │ ├── pdo_informix_forge.php
│ │ │ │ ├── pdo_mysql_driver.php
│ │ │ │ ├── pdo_mysql_forge.php
│ │ │ │ ├── pdo_oci_driver.php
│ │ │ │ ├── pdo_oci_forge.php
│ │ │ │ ├── pdo_odbc_driver.php
│ │ │ │ ├── pdo_odbc_forge.php
│ │ │ │ ├── pdo_pgsql_driver.php
│ │ │ │ ├── pdo_pgsql_forge.php
│ │ │ │ ├── pdo_sqlite_driver.php
│ │ │ │ ├── pdo_sqlite_forge.php
│ │ │ │ ├── pdo_sqlsrv_driver.php
│ │ │ │ └── pdo_sqlsrv_forge.php
│ │ │ ├── postgre/
│ │ │ │ ├── index.html
│ │ │ │ ├── postgre_driver.php
│ │ │ │ ├── postgre_forge.php
│ │ │ │ ├── postgre_result.php
│ │ │ │ └── postgre_utility.php
│ │ │ ├── sqlite3/
│ │ │ │ ├── index.html
│ │ │ │ ├── sqlite3_driver.php
│ │ │ │ ├── sqlite3_forge.php
│ │ │ │ ├── sqlite3_result.php
│ │ │ │ └── sqlite3_utility.php
│ │ │ └── sqlsrv/
│ │ │ ├── index.html
│ │ │ ├── sqlsrv_driver.php
│ │ │ ├── sqlsrv_forge.php
│ │ │ ├── sqlsrv_result.php
│ │ │ └── sqlsrv_utility.php
│ │ └── index.html
│ ├── fonts/
│ │ └── index.html
│ ├── helpers/
│ │ ├── array_helper.php
│ │ ├── captcha_helper.php
│ │ ├── cookie_helper.php
│ │ ├── date_helper.php
│ │ ├── directory_helper.php
│ │ ├── download_helper.php
│ │ ├── file_helper.php
│ │ ├── form_helper.php
│ │ ├── html_helper.php
│ │ ├── index.html
│ │ ├── inflector_helper.php
│ │ ├── language_helper.php
│ │ ├── number_helper.php
│ │ ├── path_helper.php
│ │ ├── security_helper.php
│ │ ├── string_helper.php
│ │ ├── text_helper.php
│ │ ├── typography_helper.php
│ │ ├── url_helper.php
│ │ └── xml_helper.php
│ ├── index.html
│ ├── language/
│ │ ├── english/
│ │ │ ├── calendar_lang.php
│ │ │ ├── date_lang.php
│ │ │ ├── db_lang.php
│ │ │ ├── email_lang.php
│ │ │ ├── form_validation_lang.php
│ │ │ ├── ftp_lang.php
│ │ │ ├── imglib_lang.php
│ │ │ ├── index.html
│ │ │ ├── migration_lang.php
│ │ │ ├── number_lang.php
│ │ │ ├── pagination_lang.php
│ │ │ ├── profiler_lang.php
│ │ │ ├── unit_test_lang.php
│ │ │ └── upload_lang.php
│ │ └── index.html
│ └── libraries/
│ ├── Cache/
│ │ ├── Cache.php
│ │ ├── drivers/
│ │ │ ├── Cache_apc.php
│ │ │ ├── Cache_apcu.php
│ │ │ ├── Cache_dummy.php
│ │ │ ├── Cache_file.php
│ │ │ ├── Cache_memcached.php
│ │ │ ├── Cache_redis.php
│ │ │ ├── Cache_wincache.php
│ │ │ └── index.html
│ │ └── index.html
│ ├── Calendar.php
│ ├── Driver.php
│ ├── Email.php
│ ├── Encryption.php
│ ├── Form_validation.php
│ ├── Ftp.php
│ ├── Image_lib.php
│ ├── Migration.php
│ ├── Pagination.php
│ ├── Parser.php
│ ├── Profiler.php
│ ├── Session/
│ │ ├── CI_Session_driver_interface.php
│ │ ├── OldSessionWrapper.php
│ │ ├── PHP8SessionWrapper.php
│ │ ├── Session.php
│ │ ├── SessionUpdateTimestampHandlerInterface.php
│ │ ├── Session_driver.php
│ │ ├── drivers/
│ │ │ ├── Session_database_driver.php
│ │ │ ├── Session_files_driver.php
│ │ │ ├── Session_memcached_driver.php
│ │ │ ├── Session_redis_driver.php
│ │ │ └── index.html
│ │ └── index.html
│ ├── Table.php
│ ├── Trackback.php
│ ├── Typography.php
│ ├── Unit_test.php
│ ├── Upload.php
│ ├── User_agent.php
│ ├── Xmlrpc.php
│ ├── Xmlrpcs.php
│ ├── Zip.php
│ └── index.html
├── tests/
│ ├── Bootstrap.php
│ ├── README.md
│ ├── codeigniter/
│ │ ├── Setup_test.php
│ │ ├── core/
│ │ │ ├── Benchmark_test.php
│ │ │ ├── Common_test.php
│ │ │ ├── Config_test.php
│ │ │ ├── Input_test.php
│ │ │ ├── Lang_test.php
│ │ │ ├── Loader_test.php
│ │ │ ├── Log_test.php
│ │ │ ├── Model_test.php
│ │ │ ├── Output_test.php
│ │ │ ├── Security_test.php
│ │ │ ├── URI_test.php
│ │ │ ├── Utf8_test.php
│ │ │ └── compat/
│ │ │ ├── hash_test.php
│ │ │ ├── mbstring_test.php
│ │ │ ├── password_test.php
│ │ │ └── standard_test.php
│ │ ├── database/
│ │ │ ├── DB_driver_test.php
│ │ │ ├── DB_test.php
│ │ │ └── query_builder/
│ │ │ ├── count_test.php
│ │ │ ├── delete_test.php
│ │ │ ├── distinct_test.php
│ │ │ ├── empty_test.php
│ │ │ ├── escape_test.php
│ │ │ ├── from_test.php
│ │ │ ├── get_test.php
│ │ │ ├── group_test.php
│ │ │ ├── insert_test.php
│ │ │ ├── join_test.php
│ │ │ ├── like_test.php
│ │ │ ├── limit_test.php
│ │ │ ├── order_test.php
│ │ │ ├── select_test.php
│ │ │ ├── truncate_test.php
│ │ │ ├── update_test.php
│ │ │ └── where_test.php
│ │ ├── helpers/
│ │ │ ├── array_helper_test.php
│ │ │ ├── captcha_helper_test.php
│ │ │ ├── cookie_helper_test.php
│ │ │ ├── date_helper_test.php
│ │ │ ├── directory_helper_test.php
│ │ │ ├── download_helper_test.php
│ │ │ ├── file_helper_test.php
│ │ │ ├── form_helper_test.php
│ │ │ ├── html_helper_test.php
│ │ │ ├── inflector_helper_test.php
│ │ │ ├── language_helper_test.php
│ │ │ ├── number_helper_test.php
│ │ │ ├── path_helper_test.php
│ │ │ ├── security_helper_test.php
│ │ │ ├── string_helper_test.php
│ │ │ ├── text_helper_test.php
│ │ │ ├── url_helper_test.php
│ │ │ └── xml_helper_test.php
│ │ └── libraries/
│ │ ├── Calendar_test.php
│ │ ├── Driver_test.php
│ │ ├── Encryption_test.php
│ │ ├── Form_validation_test.php
│ │ ├── Parser_test.php
│ │ ├── Session_test.php
│ │ ├── Table_test.php
│ │ ├── Typography_test.php
│ │ ├── Upload_test.php
│ │ └── Useragent_test.php
│ ├── mocks/
│ │ ├── autoloader.php
│ │ ├── ci_testcase.php
│ │ ├── ci_testconfig.php
│ │ ├── core/
│ │ │ ├── common.php
│ │ │ ├── security.php
│ │ │ └── uri.php
│ │ ├── database/
│ │ │ ├── config/
│ │ │ │ ├── mysql.php
│ │ │ │ ├── mysqli.php
│ │ │ │ ├── pdo/
│ │ │ │ │ ├── mysql.php
│ │ │ │ │ ├── pgsql.php
│ │ │ │ │ └── sqlite.php
│ │ │ │ ├── pgsql.php
│ │ │ │ └── sqlite.php
│ │ │ ├── db/
│ │ │ │ └── driver.php
│ │ │ ├── db.php
│ │ │ ├── drivers/
│ │ │ │ ├── mysql.php
│ │ │ │ ├── mysqli.php
│ │ │ │ ├── pdo.php
│ │ │ │ ├── postgre.php
│ │ │ │ └── sqlite.php
│ │ │ └── schema/
│ │ │ └── skeleton.php
│ │ └── libraries/
│ │ ├── driver.php
│ │ ├── encryption.php
│ │ ├── session.php
│ │ └── table.php
│ ├── phpunit.xml
│ └── travis/
│ ├── mysql.phpunit.xml
│ ├── mysqli.phpunit.xml
│ ├── pdo/
│ │ ├── mysql.phpunit.xml
│ │ ├── pgsql.phpunit.xml
│ │ └── sqlite.phpunit.xml
│ ├── pgsql.phpunit.xml
│ └── sqlite.phpunit.xml
└── user_guide_src/
├── Makefile
├── README.rst
├── cilexer/
│ ├── README
│ ├── cilexer/
│ │ ├── __init__.py
│ │ └── cilexer.py
│ └── setup.py
└── source/
├── DCO.rst
├── _themes/
│ └── sphinx_rtd_theme/
│ ├── LICENSE
│ ├── __init__.py
│ ├── breadcrumbs.html
│ ├── footer.html
│ ├── layout.html
│ ├── layout_old.html
│ ├── pulldown.html
│ ├── search.html
│ ├── searchbox.html
│ ├── static/
│ │ ├── css/
│ │ │ ├── badge_only.css
│ │ │ ├── citheme.css
│ │ │ └── theme.css
│ │ ├── fonts/
│ │ │ └── FontAwesome.otf
│ │ └── js/
│ │ ├── oldtheme.js
│ │ └── theme.js
│ ├── theme.conf
│ └── versions.html
├── changelog.rst
├── conf.py
├── contributing/
│ └── index.rst
├── database/
│ ├── caching.rst
│ ├── call_function.rst
│ ├── configuration.rst
│ ├── connecting.rst
│ ├── db_driver_reference.rst
│ ├── examples.rst
│ ├── forge.rst
│ ├── helpers.rst
│ ├── index.rst
│ ├── metadata.rst
│ ├── queries.rst
│ ├── query_builder.rst
│ ├── results.rst
│ ├── transactions.rst
│ └── utilities.rst
├── documentation/
│ └── index.rst
├── general/
│ ├── alternative_php.rst
│ ├── ancillary_classes.rst
│ ├── autoloader.rst
│ ├── caching.rst
│ ├── cli.rst
│ ├── common_functions.rst
│ ├── compatibility_functions.rst
│ ├── controllers.rst
│ ├── core_classes.rst
│ ├── creating_drivers.rst
│ ├── creating_libraries.rst
│ ├── credits.rst
│ ├── drivers.rst
│ ├── environments.rst
│ ├── errors.rst
│ ├── helpers.rst
│ ├── hooks.rst
│ ├── index.rst
│ ├── libraries.rst
│ ├── managing_apps.rst
│ ├── models.rst
│ ├── profiling.rst
│ ├── requirements.rst
│ ├── reserved_names.rst
│ ├── routing.rst
│ ├── security.rst
│ ├── styleguide.rst
│ ├── urls.rst
│ ├── views.rst
│ └── welcome.rst
├── helpers/
│ ├── array_helper.rst
│ ├── captcha_helper.rst
│ ├── cookie_helper.rst
│ ├── date_helper.rst
│ ├── directory_helper.rst
│ ├── download_helper.rst
│ ├── file_helper.rst
│ ├── form_helper.rst
│ ├── html_helper.rst
│ ├── index.rst
│ ├── inflector_helper.rst
│ ├── language_helper.rst
│ ├── number_helper.rst
│ ├── path_helper.rst
│ ├── security_helper.rst
│ ├── string_helper.rst
│ ├── text_helper.rst
│ ├── typography_helper.rst
│ ├── url_helper.rst
│ └── xml_helper.rst
├── index.rst
├── installation/
│ ├── downloads.rst
│ ├── index.rst
│ ├── troubleshooting.rst
│ ├── upgrade_120.rst
│ ├── upgrade_130.rst
│ ├── upgrade_131.rst
│ ├── upgrade_132.rst
│ ├── upgrade_133.rst
│ ├── upgrade_140.rst
│ ├── upgrade_141.rst
│ ├── upgrade_150.rst
│ ├── upgrade_152.rst
│ ├── upgrade_153.rst
│ ├── upgrade_154.rst
│ ├── upgrade_160.rst
│ ├── upgrade_161.rst
│ ├── upgrade_162.rst
│ ├── upgrade_163.rst
│ ├── upgrade_170.rst
│ ├── upgrade_171.rst
│ ├── upgrade_172.rst
│ ├── upgrade_200.rst
│ ├── upgrade_201.rst
│ ├── upgrade_202.rst
│ ├── upgrade_203.rst
│ ├── upgrade_210.rst
│ ├── upgrade_211.rst
│ ├── upgrade_212.rst
│ ├── upgrade_213.rst
│ ├── upgrade_214.rst
│ ├── upgrade_220.rst
│ ├── upgrade_221.rst
│ ├── upgrade_222.rst
│ ├── upgrade_223.rst
│ ├── upgrade_300.rst
│ ├── upgrade_301.rst
│ ├── upgrade_302.rst
│ ├── upgrade_303.rst
│ ├── upgrade_304.rst
│ ├── upgrade_305.rst
│ ├── upgrade_306.rst
│ ├── upgrade_310.rst
│ ├── upgrade_311.rst
│ ├── upgrade_3110.rst
│ ├── upgrade_3111.rst
│ ├── upgrade_3112.rst
│ ├── upgrade_3113.rst
│ ├── upgrade_3114.rst
│ ├── upgrade_312.rst
│ ├── upgrade_313.rst
│ ├── upgrade_314.rst
│ ├── upgrade_315.rst
│ ├── upgrade_316.rst
│ ├── upgrade_317.rst
│ ├── upgrade_318.rst
│ ├── upgrade_319.rst
│ ├── upgrade_320.rst
│ ├── upgrade_b11.rst
│ └── upgrading.rst
├── libraries/
│ ├── benchmark.rst
│ ├── caching.rst
│ ├── calendar.rst
│ ├── config.rst
│ ├── email.rst
│ ├── encryption.rst
│ ├── file_uploading.rst
│ ├── form_validation.rst
│ ├── ftp.rst
│ ├── image_lib.rst
│ ├── index.rst
│ ├── input.rst
│ ├── language.rst
│ ├── loader.rst
│ ├── migration.rst
│ ├── output.rst
│ ├── pagination.rst
│ ├── parser.rst
│ ├── security.rst
│ ├── sessions.rst
│ ├── table.rst
│ ├── trackback.rst
│ ├── typography.rst
│ ├── unit_testing.rst
│ ├── uri.rst
│ ├── user_agent.rst
│ ├── xmlrpc.rst
│ └── zip.rst
├── license.rst
├── overview/
│ ├── appflow.rst
│ ├── at_a_glance.rst
│ ├── features.rst
│ ├── getting_started.rst
│ ├── goals.rst
│ ├── index.rst
│ └── mvc.rst
└── tutorial/
├── conclusion.rst
├── create_news_items.rst
├── index.rst
├── news_section.rst
└── static_pages.rst
================================================
FILE CONTENTS
================================================
================================================
FILE: .editorconfig
================================================
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true
# Matches multiple files with brace expansion notation
# Set default charset
[*]
charset = utf-8
# Tab indentation (no size specified)
indent_style = tab
================================================
FILE: .gitattributes
================================================
# This file tells which files and directories should be ignored and
# NOT downloaded when using composer to pull down a project with
# the --prefer-dist option selected. Used to remove development
# specific files so user has a clean download.
# git files
.gitattributes export-ignore
# .gitignore
# helper config files
.travis.yml export-ignore
phpdoc.dist.xml export-ignore
# Misc other files
readme.rst
# They don't want all of our tests...
tests/codeigniter/ export-ignore
tests/travis/ export-ignore
# User Guide source files and compiled files
user_guide_src export-ignore
user_guide export-ignore
================================================
FILE: .github/workflows/test-phpunit.yml
================================================
name: PHPUnit
on: [push, pull_request]
permissions:
contents: read
jobs:
tests:
runs-on: ubuntu-22.04
if: "!contains(github.event.head_commit.message, '[ci skip]')"
env:
PHP_INI_VALUES: assert.exception=1, zend.assertions=1
strategy:
fail-fast: false
matrix:
php: [ '8.1', '8.0', '7.4', '7.3', '7.2', '7.1', '7.0', '5.6', '5.5', '5.4']
DB: [ 'pdo/mysql', 'pdo/pgsql', 'pdo/sqlite', 'mysqli', 'pgsql', 'sqlite' ]
compiler: [ default ]
include:
- php: '8.1'
DB: 'pdo/mysql'
compiler: jit
- php: '8.1'
DB: 'pdo/pgsql'
compiler: jit
- php: '8.1'
DB: 'pdo/sqlite'
compiler: jit
- php: '8.1'
DB: 'mysqli'
compiler: jit
- php: '8.1'
DB: 'pgsql'
compiler: jit
- php: '8.1'
DB: 'sqlite'
compiler: jit
- php: '8.0'
DB: 'pdo/mysql'
compiler: jit
- php: '8.0'
DB: 'pdo/pgsql'
compiler: jit
- php: '8.0'
DB: 'pdo/sqlite'
compiler: jit
- php: '8.0'
DB: 'mysqli'
compiler: jit
- php: '8.0'
DB: 'pgsql'
compiler: jit
- php: '8.0'
DB: 'sqlite'
compiler: jit
- php: '5.6'
DB: 'mysql'
compiler: default
- php: '5.5'
DB: 'mysql'
compiler: default
- php: '5.4'
DB: 'mysql'
compiler: default
services:
postgres:
image: postgres:12
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: ci_test
ports:
- 5432:5432
options: --health-cmd=pg_isready --health-interval=10s --health-timeout=5s --health-retries=3
mysql:
image: mysql:5.7
env:
MYSQL_ALLOW_EMPTY_PASSWORD: true
MYSQL_USER: travis
MYSQL_PASSWORD: travis
MYSQL_DATABASE: ci_test
ports:
- 3306:3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Override PHP ini values for JIT compiler
if: matrix.compiler == 'jit'
run: echo "PHP_INI_VALUES::assert.exception=1, zend.assertions=1, opcache.enable=1, opcache.enable_cli=1, opcache.optimization_level=-1, opcache.jit=1255, opcache.jit_buffer_size=64M" >> $GITHUB_ENV
- name: Install PHP${{ matrix.php }} - DB ${{ matrix.DB }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
tools: composer, pecl
extensions: imagick, sqlite3, pgsql, mysqli, pdo, pdo_mysql, pdo_pgsql, pdo_sqlite, mbstring
ini-values: ${{ env.PHP_INI_VALUES }}
coverage: xdebug
- name: Get composer cache directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
- name: Cache composer dependencies
uses: actions/cache@v2
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-
- name: Install composer dependencies
run: composer install --no-progress --prefer-dist --optimize-autoloader
- name: PHPUnit Test
run: |
php -d error_reporting=E_ALL -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.func_overload=7 -d mbstring.internal_encoding=UTF-8 vendor/bin/phpunit --coverage-text --configuration tests/travis/${{ matrix.DB }}.phpunit.xml
env:
XDEBUG_MODE: coverage
================================================
FILE: .gitignore
================================================
.DS_Store
application/cache/*
!application/cache/index.html
application/logs/*
!application/logs/index.html
!application/*/.htaccess
composer.lock
tests/mocks/database/ci_test.sqlite
user_guide_src/build/*
user_guide_src/cilexer/build/*
user_guide_src/cilexer/dist/*
user_guide_src/cilexer/pycilexer.egg-info/*
/vendor/
# IDE Files
#-------------------------
/nbproject/
.idea/*
## Sublime Text cache files
*.tmlanguage.cache
*.tmPreferences.cache
*.stTheme.cache
*.sublime-workspace
*.sublime-project
/tests/tests/
/tests/results/
================================================
FILE: DCO.txt
================================================
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(1) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(2) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(3) The contribution was provided directly to me by some other
person who certified (1), (2) or (3) and I have not modified
it.
(4) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
================================================
FILE: application/.htaccess
================================================
<IfModule authz_core_module>
Require all denied
</IfModule>
<IfModule !authz_core_module>
Deny from all
</IfModule>
================================================
FILE: application/cache/index.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>
================================================
FILE: application/config/autoload.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| AUTO-LOADER
| -------------------------------------------------------------------
| This file specifies which systems should be loaded by default.
|
| In order to keep the framework as light-weight as possible only the
| absolute minimal resources are loaded by default. For example,
| the database is not connected to automatically since no assumption
| is made regarding whether you intend to use it. This file lets
| you globally define which systems you would like loaded with every
| request.
|
| -------------------------------------------------------------------
| Instructions
| -------------------------------------------------------------------
|
| These are the things you can load automatically:
|
| 1. Packages
| 2. Libraries
| 3. Drivers
| 4. Helper files
| 5. Custom config files
| 6. Language files
| 7. Models
|
*/
/*
| -------------------------------------------------------------------
| Auto-load Packages
| -------------------------------------------------------------------
| Prototype:
|
| $autoload['packages'] = array(APPPATH.'third_party', '/usr/local/shared');
|
*/
$autoload['packages'] = array();
/*
| -------------------------------------------------------------------
| Auto-load Libraries
| -------------------------------------------------------------------
| These are the classes located in system/libraries/ or your
| application/libraries/ directory, with the addition of the
| 'database' library, which is somewhat of a special case.
|
| Prototype:
|
| $autoload['libraries'] = array('database', 'email', 'session');
|
| You can also supply an alternative library name to be assigned
| in the controller:
|
| $autoload['libraries'] = array('user_agent' => 'ua');
*/
$autoload['libraries'] = array();
/*
| -------------------------------------------------------------------
| Auto-load Drivers
| -------------------------------------------------------------------
| These classes are located in system/libraries/ or in your
| application/libraries/ directory, but are also placed inside their
| own subdirectory and they extend the CI_Driver_Library class. They
| offer multiple interchangeable driver options.
|
| Prototype:
|
| $autoload['drivers'] = array('cache');
|
| You can also supply an alternative property name to be assigned in
| the controller:
|
| $autoload['drivers'] = array('cache' => 'cch');
|
*/
$autoload['drivers'] = array();
/*
| -------------------------------------------------------------------
| Auto-load Helper Files
| -------------------------------------------------------------------
| Prototype:
|
| $autoload['helper'] = array('url', 'file');
*/
$autoload['helper'] = array();
/*
| -------------------------------------------------------------------
| Auto-load Config files
| -------------------------------------------------------------------
| Prototype:
|
| $autoload['config'] = array('config1', 'config2');
|
| NOTE: This item is intended for use ONLY if you have created custom
| config files. Otherwise, leave it blank.
|
*/
$autoload['config'] = array();
/*
| -------------------------------------------------------------------
| Auto-load Language files
| -------------------------------------------------------------------
| Prototype:
|
| $autoload['language'] = array('lang1', 'lang2');
|
| NOTE: Do not include the "_lang" part of your file. For example
| "codeigniter_lang.php" would be referenced as array('codeigniter');
|
*/
$autoload['language'] = array();
/*
| -------------------------------------------------------------------
| Auto-load Models
| -------------------------------------------------------------------
| Prototype:
|
| $autoload['model'] = array('first_model', 'second_model');
|
| You can also supply an alternative model name to be assigned
| in the controller:
|
| $autoload['model'] = array('first_model' => 'first');
*/
$autoload['model'] = array();
================================================
FILE: application/config/config.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
|--------------------------------------------------------------------------
| Base Site URL
|--------------------------------------------------------------------------
|
| URL to your CodeIgniter root. Typically this will be your base URL,
| WITH a trailing slash:
|
| http://example.com/
|
| WARNING: You MUST set this value!
|
| If it is not set, then CodeIgniter will try to guess the protocol and
| path to your installation, but due to security concerns the hostname will
| be set to $_SERVER['SERVER_ADDR'] if available, or localhost otherwise.
| The auto-detection mechanism exists only for convenience during
| development and MUST NOT be used in production!
|
| If you need to allow multiple domains, remember that this file is still
| a PHP script and you can easily do that on your own.
|
*/
$config['base_url'] = '';
/*
|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
|
| Typically this will be your index.php file, unless you've renamed it to
| something else. If you are using mod_rewrite to remove the page set this
| variable so that it is blank.
|
*/
$config['index_page'] = 'index.php';
/*
|--------------------------------------------------------------------------
| URI PROTOCOL
|--------------------------------------------------------------------------
|
| This item determines which server global should be used to retrieve the
| URI string. The default setting of 'REQUEST_URI' works for most servers.
| If your links do not seem to work, try one of the other delicious flavors:
|
| 'REQUEST_URI' Uses $_SERVER['REQUEST_URI']
| 'QUERY_STRING' Uses $_SERVER['QUERY_STRING']
| 'PATH_INFO' Uses $_SERVER['PATH_INFO']
|
| WARNING: If you set this to 'PATH_INFO', URIs will always be URL-decoded!
*/
$config['uri_protocol'] = 'REQUEST_URI';
/*
|--------------------------------------------------------------------------
| URL suffix
|--------------------------------------------------------------------------
|
| This option allows you to add a suffix to all URLs generated by CodeIgniter.
| For more information please see the user guide:
|
| https://codeigniter.com/userguide3/general/urls.html
|
| Note: This option is ignored for CLI requests.
*/
$config['url_suffix'] = '';
/*
|--------------------------------------------------------------------------
| Default Language
|--------------------------------------------------------------------------
|
| This determines which set of language files should be used. Make sure
| there is an available translation if you intend to use something other
| than english.
|
*/
$config['language'] = 'english';
/*
|--------------------------------------------------------------------------
| Default Character Set
|--------------------------------------------------------------------------
|
| This determines which character set is used by default in various methods
| that require a character set to be provided.
|
| See https://secure.php.net/htmlspecialchars for a list of supported charsets.
|
*/
$config['charset'] = 'UTF-8';
/*
|--------------------------------------------------------------------------
| Enable/Disable System Hooks
|--------------------------------------------------------------------------
|
| If you would like to use the 'hooks' feature you must enable it by
| setting this variable to TRUE (boolean). See the user guide for details.
|
*/
$config['enable_hooks'] = FALSE;
/*
|--------------------------------------------------------------------------
| Class Extension Prefix
|--------------------------------------------------------------------------
|
| This item allows you to set the filename/classname prefix when extending
| native libraries. For more information please see the user guide:
|
| https://codeigniter.com/userguide3/general/core_classes.html
| https://codeigniter.com/userguide3/general/creating_libraries.html
|
*/
$config['subclass_prefix'] = 'MY_';
/*
|--------------------------------------------------------------------------
| Composer auto-loading
|--------------------------------------------------------------------------
|
| Enabling this setting will tell CodeIgniter to look for a Composer
| package auto-loader script in application/vendor/autoload.php.
|
| $config['composer_autoload'] = TRUE;
|
| Or if you have your vendor/ directory located somewhere else, you
| can opt to set a specific path as well:
|
| $config['composer_autoload'] = '/path/to/vendor/autoload.php';
|
| For more information about Composer, please visit https://getcomposer.org/
|
| Note: This will NOT disable or override the CodeIgniter-specific
| autoloading (application/config/autoload.php)
*/
$config['composer_autoload'] = FALSE;
/*
|--------------------------------------------------------------------------
| Allowed URL Characters
|--------------------------------------------------------------------------
|
| This lets you specify which characters are permitted within your URLs.
| When someone tries to submit a URL with disallowed characters they will
| get a warning message.
|
| As a security measure you are STRONGLY encouraged to restrict URLs to
| as few characters as possible. By default only these are allowed: a-z 0-9~%.:_-
|
| Leave blank to allow all characters -- but only if you are insane.
|
| The configured value is actually a regular expression character group
| and it will be executed as: ! preg_match('/^[<permitted_uri_chars>]+$/i
|
| DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!!
|
| Note: This option is ignored for CLI requests.
|
*/
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
/*
|--------------------------------------------------------------------------
| Enable Query Strings
|--------------------------------------------------------------------------
|
| By default CodeIgniter uses search-engine friendly segment based URLs:
| example.com/who/what/where/
|
| You can optionally enable standard query string based URLs:
| example.com?who=me&what=something&where=here
|
| Options are: TRUE or FALSE (boolean)
|
| The other items let you set the query string 'words' that will
| invoke your controllers and its functions:
| example.com/index.php?c=controller&m=function
|
| Please note that some of the helpers won't work as expected when
| this feature is enabled, since CodeIgniter is designed primarily to
| use segment based URLs.
|
*/
$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';
$config['directory_trigger'] = 'd';
/*
|--------------------------------------------------------------------------
| Error Logging Threshold
|--------------------------------------------------------------------------
|
| You can enable error logging by setting a threshold over zero. The
| threshold determines what gets logged. Threshold options are:
|
| 0 = Disables logging, Error logging TURNED OFF
| 1 = Error Messages (including PHP errors)
| 2 = Debug Messages
| 3 = Informational Messages
| 4 = All Messages
|
| You can also pass an array with threshold levels to show individual error types
|
| array(2) = Debug Messages, without Error Messages
|
| For a live site you'll usually only enable Errors (1) to be logged otherwise
| your log files will fill up very fast.
|
*/
$config['log_threshold'] = 0;
/*
|--------------------------------------------------------------------------
| Error Logging Directory Path
|--------------------------------------------------------------------------
|
| Leave this BLANK unless you would like to set something other than the default
| application/logs/ directory. Use a full server path.
|
*/
$config['log_path'] = '';
/*
|--------------------------------------------------------------------------
| Error Logging FILENAME
|--------------------------------------------------------------------------
|
| Leave this BLANK unless you would like to set something other than the default
| 'log-'.date('Y-m-d').'.php'. No DIRECTORY_SEPARATOR(s), just the filename.
|
*/
$config['log_filename'] = '';
/*
|--------------------------------------------------------------------------
| Log File Permissions
|--------------------------------------------------------------------------
|
| The file system permissions to be applied on newly created log files.
|
| IMPORTANT: This MUST be an integer (no quotes) and you MUST use octal
| integer notation (i.e. 0700, 0644, etc.)
*/
$config['log_file_permissions'] = 0644;
/*
|--------------------------------------------------------------------------
| Date Format for Logs
|--------------------------------------------------------------------------
|
| Each item that is logged has an associated date. You can use PHP date
| codes to set your own date formatting
|
*/
$config['log_date_format'] = 'Y-m-d H:i:s';
/*
|--------------------------------------------------------------------------
| Error Views Directory Path
|--------------------------------------------------------------------------
|
| Leave this BLANK unless you would like to set something other than the default
| application/views/errors/ directory. Use a full server path.
|
*/
$config['error_views_path'] = '';
/*
|--------------------------------------------------------------------------
| Cache Directory Path
|--------------------------------------------------------------------------
|
| Leave this BLANK unless you would like to set something other than the default
| application/cache/ directory. Use a full server path.
|
*/
$config['cache_path'] = '';
/*
|--------------------------------------------------------------------------
| Cache Include Query String
|--------------------------------------------------------------------------
|
| Whether to take the URL query string into consideration when generating
| output cache files. Valid options are:
|
| FALSE = Disabled
| TRUE = Enabled, take all query parameters into account.
| Please be aware that this may result in numerous cache
| files generated for the same page over and over again.
| array('q') = Enabled, but only take into account the specified list
| of query parameters.
|
*/
$config['cache_query_string'] = FALSE;
/*
|--------------------------------------------------------------------------
| Encryption Key
|--------------------------------------------------------------------------
|
| If you use the Encryption class, you must set an encryption key.
| See the user guide for more info.
|
| https://codeigniter.com/userguide3/libraries/encryption.html
|
*/
$config['encryption_key'] = '';
/*
|--------------------------------------------------------------------------
| Session Variables
|--------------------------------------------------------------------------
|
| 'sess_driver'
|
| The storage driver to use: files, database, redis, memcached
|
| 'sess_cookie_name'
|
| The session cookie name, must contain only [0-9a-z_-] characters
|
| 'sess_samesite'
|
| Session cookie SameSite attribute: Lax (default), Strict or None
|
| 'sess_expiration'
|
| The number of SECONDS you want the session to last.
| Setting to 0 (zero) means expire when the browser is closed.
|
| 'sess_save_path'
|
| The location to save sessions to, driver dependent.
|
| For the 'files' driver, it's a path to a writable directory.
| WARNING: Only absolute paths are supported!
|
| For the 'database' driver, it's a table name.
| Please read up the manual for the format with other session drivers.
|
| IMPORTANT: You are REQUIRED to set a valid save path!
|
| 'sess_match_ip'
|
| Whether to match the user's IP address when reading the session data.
|
| WARNING: If you're using the database driver, don't forget to update
| your session table's PRIMARY KEY when changing this setting.
|
| 'sess_time_to_update'
|
| How many seconds between CI regenerating the session ID.
|
| 'sess_regenerate_destroy'
|
| Whether to destroy session data associated with the old session ID
| when auto-regenerating the session ID. When set to FALSE, the data
| will be later deleted by the garbage collector.
|
| Other session cookie settings are shared with the rest of the application,
| except for 'cookie_prefix' and 'cookie_httponly', which are ignored here.
|
*/
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_samesite'] = 'Lax';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
/*
|--------------------------------------------------------------------------
| Cookie Related Variables
|--------------------------------------------------------------------------
|
| 'cookie_prefix' = Set a cookie name prefix if you need to avoid collisions
| 'cookie_domain' = Set to .your-domain.com for site-wide cookies
| 'cookie_path' = Typically will be a forward slash
| 'cookie_secure' = Cookie will only be set if a secure HTTPS connection exists.
| 'cookie_httponly' = Cookie will only be accessible via HTTP(S) (no javascript)
| 'cookie_samesite' = Cookie's samesite attribute (Lax, Strict or None)
|
| Note: These settings (with the exception of 'cookie_prefix' and
| 'cookie_httponly') will also affect sessions.
|
*/
$config['cookie_prefix'] = '';
$config['cookie_domain'] = '';
$config['cookie_path'] = '/';
$config['cookie_secure'] = FALSE;
$config['cookie_httponly'] = FALSE;
$config['cookie_samesite'] = 'Lax';
/*
|--------------------------------------------------------------------------
| Cross Site Request Forgery
|--------------------------------------------------------------------------
| Enables a CSRF cookie token to be set. When set to TRUE, token will be
| checked on a submitted form. If you are accepting user data, it is strongly
| recommended CSRF protection be enabled.
|
| 'csrf_token_name' = The token name
| 'csrf_cookie_name' = The cookie name
| 'csrf_expire' = The number in seconds the token should expire.
| 'csrf_regenerate' = Regenerate token on every submission
| 'csrf_exclude_uris' = Array of URIs which ignore CSRF checks
*/
$config['csrf_protection'] = FALSE;
$config['csrf_token_name'] = 'csrf_test_name';
$config['csrf_cookie_name'] = 'csrf_cookie_name';
$config['csrf_expire'] = 7200;
$config['csrf_regenerate'] = TRUE;
$config['csrf_exclude_uris'] = array();
/*
|--------------------------------------------------------------------------
| Output Compression
|--------------------------------------------------------------------------
|
| Enables Gzip output compression for faster page loads. When enabled,
| the output class will test whether your server supports Gzip.
| Even if it does, however, not all browsers support compression
| so enable only if you are reasonably sure your visitors can handle it.
|
| Only used if zlib.output_compression is turned off in your php.ini.
| Please do not use it together with httpd-level output compression.
|
| VERY IMPORTANT: If you are getting a blank page when compression is enabled it
| means you are prematurely outputting something to your browser. It could
| even be a line of whitespace at the end of one of your scripts. For
| compression to work, nothing can be sent before the output buffer is called
| by the output class. Do not 'echo' any values with compression enabled.
|
*/
$config['compress_output'] = FALSE;
/*
|--------------------------------------------------------------------------
| Master Time Reference
|--------------------------------------------------------------------------
|
| Options are 'local' or any PHP supported timezone. This preference tells
| the system whether to use your server's local time as the master 'now'
| reference, or convert it to the configured one timezone. See the 'date
| helper' page of the user guide for information regarding date handling.
|
*/
$config['time_reference'] = 'local';
/*
|--------------------------------------------------------------------------
| Reverse Proxy IPs
|--------------------------------------------------------------------------
|
| If your server is behind a reverse proxy, you must whitelist the proxy
| IP addresses from which CodeIgniter should trust headers such as
| HTTP_X_FORWARDED_FOR and HTTP_CLIENT_IP in order to properly identify
| the visitor's IP address.
|
| You can use both an array or a comma-separated list of proxy addresses,
| as well as specifying whole subnets. Here are a few examples:
|
| Comma-separated: '10.0.1.200,192.168.5.0/24'
| Array: array('10.0.1.200', '192.168.5.0/24')
*/
$config['proxy_ips'] = '';
================================================
FILE: application/config/constants.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
|--------------------------------------------------------------------------
| Display Debug backtrace
|--------------------------------------------------------------------------
|
| If set to TRUE, a backtrace will be displayed along with php errors. If
| error_reporting is disabled, the backtrace will not display, regardless
| of this setting
|
*/
defined('SHOW_DEBUG_BACKTRACE') OR define('SHOW_DEBUG_BACKTRACE', TRUE);
/*
|--------------------------------------------------------------------------
| File and Directory Modes
|--------------------------------------------------------------------------
|
| These prefs are used when checking and setting modes when working
| with the file system. The defaults are fine on servers with proper
| security, but you may wish (or even need) to change the values in
| certain environments (Apache running a separate process for each
| user, PHP under CGI with Apache suEXEC, etc.). Octal values should
| always be used to set the mode correctly.
|
*/
defined('FILE_READ_MODE') OR define('FILE_READ_MODE', 0644);
defined('FILE_WRITE_MODE') OR define('FILE_WRITE_MODE', 0666);
defined('DIR_READ_MODE') OR define('DIR_READ_MODE', 0755);
defined('DIR_WRITE_MODE') OR define('DIR_WRITE_MODE', 0755);
/*
|--------------------------------------------------------------------------
| File Stream Modes
|--------------------------------------------------------------------------
|
| These modes are used when working with fopen()/popen()
|
*/
defined('FOPEN_READ') OR define('FOPEN_READ', 'rb');
defined('FOPEN_READ_WRITE') OR define('FOPEN_READ_WRITE', 'r+b');
defined('FOPEN_WRITE_CREATE_DESTRUCTIVE') OR define('FOPEN_WRITE_CREATE_DESTRUCTIVE', 'wb'); // truncates existing file data, use with care
defined('FOPEN_READ_WRITE_CREATE_DESTRUCTIVE') OR define('FOPEN_READ_WRITE_CREATE_DESTRUCTIVE', 'w+b'); // truncates existing file data, use with care
defined('FOPEN_WRITE_CREATE') OR define('FOPEN_WRITE_CREATE', 'ab');
defined('FOPEN_READ_WRITE_CREATE') OR define('FOPEN_READ_WRITE_CREATE', 'a+b');
defined('FOPEN_WRITE_CREATE_STRICT') OR define('FOPEN_WRITE_CREATE_STRICT', 'xb');
defined('FOPEN_READ_WRITE_CREATE_STRICT') OR define('FOPEN_READ_WRITE_CREATE_STRICT', 'x+b');
/*
|--------------------------------------------------------------------------
| Exit Status Codes
|--------------------------------------------------------------------------
|
| Used to indicate the conditions under which the script is exit()ing.
| While there is no universal standard for error codes, there are some
| broad conventions. Three such conventions are mentioned below, for
| those who wish to make use of them. The CodeIgniter defaults were
| chosen for the least overlap with these conventions, while still
| leaving room for others to be defined in future versions and user
| applications.
|
| The three main conventions used for determining exit status codes
| are as follows:
|
| Standard C/C++ Library (stdlibc):
| https://www.gnu.org/software/libc/manual/html_node/Exit-Status.html
| (This link also contains other GNU-specific conventions)
| BSD sysexits.h:
| https://www.gsp.com/cgi-bin/man.cgi?section=3&topic=sysexits
| Bash scripting:
| http://tldp.org/LDP/abs/html/exitcodes.html
|
*/
defined('EXIT_SUCCESS') OR define('EXIT_SUCCESS', 0); // no errors
defined('EXIT_ERROR') OR define('EXIT_ERROR', 1); // generic error
defined('EXIT_CONFIG') OR define('EXIT_CONFIG', 3); // configuration error
defined('EXIT_UNKNOWN_FILE') OR define('EXIT_UNKNOWN_FILE', 4); // file not found
defined('EXIT_UNKNOWN_CLASS') OR define('EXIT_UNKNOWN_CLASS', 5); // unknown class
defined('EXIT_UNKNOWN_METHOD') OR define('EXIT_UNKNOWN_METHOD', 6); // unknown class member
defined('EXIT_USER_INPUT') OR define('EXIT_USER_INPUT', 7); // invalid user input
defined('EXIT_DATABASE') OR define('EXIT_DATABASE', 8); // database error
defined('EXIT__AUTO_MIN') OR define('EXIT__AUTO_MIN', 9); // lowest automatically-assigned error code
defined('EXIT__AUTO_MAX') OR define('EXIT__AUTO_MAX', 125); // highest automatically-assigned error code
================================================
FILE: application/config/database.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| DATABASE CONNECTIVITY SETTINGS
| -------------------------------------------------------------------
| This file will contain the settings needed to access your database.
|
| For complete instructions please consult the 'Database Connection'
| page of the User Guide.
|
| -------------------------------------------------------------------
| EXPLANATION OF VARIABLES
| -------------------------------------------------------------------
|
| ['dsn'] The full DSN string describe a connection to the database.
| ['hostname'] The hostname of your database server.
| ['username'] The username used to connect to the database
| ['password'] The password used to connect to the database
| ['database'] The name of the database you want to connect to
| ['dbdriver'] The database driver. e.g.: mysqli.
| Currently supported:
| cubrid, ibase, mssql, mysql, mysqli, oci8,
| odbc, pdo, postgre, sqlite3, sqlsrv
| ['dbprefix'] You can add an optional prefix, which will be added
| to the table name when using the Query Builder class
| ['pconnect'] TRUE/FALSE - Whether to use a persistent connection
| ['db_debug'] TRUE/FALSE - Whether database errors should be displayed.
| ['cache_on'] TRUE/FALSE - Enables/disables query caching
| ['cachedir'] The path to the folder where cache files should be stored
| ['char_set'] The character set used in communicating with the database
| ['dbcollat'] The character collation used in communicating with the database
| NOTE: For MySQL and MySQLi databases, this setting is only used
| as a backup if your server is running PHP < 5.2.3 or MySQL < 5.0.7
| (and in table creation queries made with DB Forge).
| There is an incompatibility in PHP with mysql_real_escape_string() which
| can make your site vulnerable to SQL injection if you are using a
| multi-byte character set and are running versions lower than these.
| Sites using Latin-1 or UTF-8 database character set and collation are unaffected.
| ['swap_pre'] A default table prefix that should be swapped with the dbprefix
| ['encrypt'] Whether or not to use an encrypted connection.
|
| 'mysql' (deprecated), 'sqlsrv' and 'pdo/sqlsrv' drivers accept TRUE/FALSE
| 'mysqli' and 'pdo/mysql' drivers accept an array with the following options:
|
| 'ssl_key' - Path to the private key file
| 'ssl_cert' - Path to the public key certificate file
| 'ssl_ca' - Path to the certificate authority file
| 'ssl_capath' - Path to a directory containing trusted CA certificates in PEM format
| 'ssl_cipher' - List of *allowed* ciphers to be used for the encryption, separated by colons (':')
| 'ssl_verify' - TRUE/FALSE; Whether verify the server certificate or not
|
| ['compress'] Whether or not to use client compression (MySQL only)
| ['stricton'] TRUE/FALSE - forces 'Strict Mode' connections
| - good for ensuring strict SQL while developing
| ['ssl_options'] Used to set various SSL options that can be used when making SSL connections.
| ['failover'] array - A array with 0 or more data for connections if the main should fail.
| ['save_queries'] TRUE/FALSE - Whether to "save" all executed queries.
| NOTE: Disabling this will also effectively disable both
| $this->db->last_query() and profiling of DB queries.
| When you run a query, with this setting set to TRUE (default),
| CodeIgniter will store the SQL statement for debugging purposes.
| However, this may cause high memory usage, especially if you run
| a lot of SQL queries ... disable this to avoid that problem.
|
| The $active_group variable lets you choose which connection group to
| make active. By default there is only one group (the 'default' group).
*/
$active_group = 'default';
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => '',
'password' => '',
'database' => '',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
================================================
FILE: application/config/doctypes.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$_doctypes = array(
'xhtml11' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">',
'xhtml1-strict' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',
'xhtml1-trans' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',
'xhtml1-frame' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">',
'xhtml-basic11' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">',
'html5' => '<!DOCTYPE html>',
'html4-strict' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">',
'html4-trans' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">',
'html4-frame' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">',
'mathml1' => '<!DOCTYPE math SYSTEM "http://www.w3.org/Math/DTD/mathml1/mathml.dtd">',
'mathml2' => '<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd">',
'svg10' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">',
'svg11' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">',
'svg11-basic' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Basic//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic.dtd">',
'svg11-tiny' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">',
'xhtml-math-svg-xh' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">',
'xhtml-math-svg-sh' => '<!DOCTYPE svg:svg PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">',
'xhtml-rdfa-1' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">',
'xhtml-rdfa-2' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.1//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd">'
);
================================================
FILE: application/config/foreign_chars.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| Foreign Characters
| -------------------------------------------------------------------
| This file contains an array of foreign characters for transliteration
| conversion used by the Text helper
|
*/
$foreign_characters = array(
'/ä|æ|ǽ/' => 'ae',
'/ö|œ/' => 'oe',
'/ü/' => 'ue',
'/Ä/' => 'Ae',
'/Ü/' => 'Ue',
'/Ö/' => 'Oe',
'/À|Á|Â|Ã|Ä|Å|Ǻ|Ā|Ă|Ą|Ǎ|Α|Ά|Ả|Ạ|Ầ|Ẫ|Ẩ|Ậ|Ằ|Ắ|Ẵ|Ẳ|Ặ|А/' => 'A',
'/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª|α|ά|ả|ạ|ầ|ấ|ẫ|ẩ|ậ|ằ|ắ|ẵ|ẳ|ặ|а/' => 'a',
'/Б/' => 'B',
'/б/' => 'b',
'/Ç|Ć|Ĉ|Ċ|Č/' => 'C',
'/ç|ć|ĉ|ċ|č/' => 'c',
'/Д|Δ/' => 'D',
'/д|δ/' => 'd',
'/Ð|Ď|Đ/' => 'Dj',
'/ð|ď|đ/' => 'dj',
'/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě|Ε|Έ|Ẽ|Ẻ|Ẹ|Ề|Ế|Ễ|Ể|Ệ|Е|Э/' => 'E',
'/è|é|ê|ë|ē|ĕ|ė|ę|ě|έ|ε|ẽ|ẻ|ẹ|ề|ế|ễ|ể|ệ|е|э/' => 'e',
'/Ф/' => 'F',
'/ф/' => 'f',
'/Ĝ|Ğ|Ġ|Ģ|Γ|Г|Ґ/' => 'G',
'/ĝ|ğ|ġ|ģ|γ|г|ґ/' => 'g',
'/Ĥ|Ħ/' => 'H',
'/ĥ|ħ/' => 'h',
'/Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ|Η|Ή|Ί|Ι|Ϊ|Ỉ|Ị|И|Ы/' => 'I',
'/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı|η|ή|ί|ι|ϊ|ỉ|ị|и|ы|ї/' => 'i',
'/Ĵ/' => 'J',
'/ĵ/' => 'j',
'/Θ/' => 'TH',
'/θ/' => 'th',
'/Ķ|Κ|К/' => 'K',
'/ķ|κ|к/' => 'k',
'/Ĺ|Ļ|Ľ|Ŀ|Ł|Λ|Л/' => 'L',
'/ĺ|ļ|ľ|ŀ|ł|λ|л/' => 'l',
'/М/' => 'M',
'/м/' => 'm',
'/Ñ|Ń|Ņ|Ň|Ν|Н/' => 'N',
'/ñ|ń|ņ|ň|ʼn|ν|н/' => 'n',
'/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ|Ο|Ό|Ω|Ώ|Ỏ|Ọ|Ồ|Ố|Ỗ|Ổ|Ộ|Ờ|Ớ|Ỡ|Ở|Ợ|О/' => 'O',
'/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º|ο|ό|ω|ώ|ỏ|ọ|ồ|ố|ỗ|ổ|ộ|ờ|ớ|ỡ|ở|ợ|о/' => 'o',
'/П/' => 'P',
'/п/' => 'p',
'/Ŕ|Ŗ|Ř|Ρ|Р/' => 'R',
'/ŕ|ŗ|ř|ρ|р/' => 'r',
'/Ś|Ŝ|Ş|Ș|Š|Σ|С/' => 'S',
'/ś|ŝ|ş|ș|š|ſ|σ|ς|с/' => 's',
'/Ț|Ţ|Ť|Ŧ|Τ|Т/' => 'T',
'/ț|ţ|ť|ŧ|τ|т/' => 't',
'/Þ|þ/' => 'th',
'/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ|Ũ|Ủ|Ụ|Ừ|Ứ|Ữ|Ử|Ự|У/' => 'U',
'/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ|υ|ύ|ϋ|ủ|ụ|ừ|ứ|ữ|ử|ự|у/' => 'u',
'/Ƴ|Ɏ|Ỵ|Ẏ|Ӳ|Ӯ|Ў|Ý|Ÿ|Ŷ|Υ|Ύ|Ϋ|Ỳ|Ỹ|Ỷ|Ỵ|Й/' => 'Y',
'/ẙ|ʏ|ƴ|ɏ|ỵ|ẏ|ӳ|ӯ|ў|ý|ÿ|ŷ|ỳ|ỹ|ỷ|ỵ|й/' => 'y',
'/В/' => 'V',
'/в/' => 'v',
'/Ŵ/' => 'W',
'/ŵ/' => 'w',
'/Φ/' => 'F',
'/φ/' => 'f',
'/Χ/' => 'CH',
'/χ/' => 'ch',
'/Ź|Ż|Ž|Ζ|З/' => 'Z',
'/ź|ż|ž|ζ|з/' => 'z',
'/Æ|Ǽ/' => 'AE',
'/ß/' => 'ss',
'/IJ/' => 'IJ',
'/ij/' => 'ij',
'/Œ/' => 'OE',
'/ƒ/' => 'f',
'/Ξ/' => 'KS',
'/ξ/' => 'ks',
'/Π/' => 'P',
'/π/' => 'p',
'/Β/' => 'V',
'/β/' => 'v',
'/Μ/' => 'M',
'/μ/' => 'm',
'/Ψ/' => 'PS',
'/ψ/' => 'ps',
'/Ё/' => 'Yo',
'/ё/' => 'yo',
'/Є/' => 'Ye',
'/є/' => 'ye',
'/Ї/' => 'Yi',
'/Ж/' => 'Zh',
'/ж/' => 'zh',
'/Х/' => 'Kh',
'/х/' => 'kh',
'/Ц/' => 'Ts',
'/ц/' => 'ts',
'/Ч/' => 'Ch',
'/ч/' => 'ch',
'/Ш/' => 'Sh',
'/ш/' => 'sh',
'/Щ/' => 'Shch',
'/щ/' => 'shch',
'/Ъ|ъ|Ь|ь/' => '',
'/Ю/' => 'Yu',
'/ю/' => 'yu',
'/Я/' => 'Ya',
'/я/' => 'ya'
);
================================================
FILE: application/config/hooks.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
| -------------------------------------------------------------------------
| Hooks
| -------------------------------------------------------------------------
| This file lets you define "hooks" to extend CI without hacking the core
| files. Please see the user guide for info:
|
| https://codeigniter.com/userguide3/general/hooks.html
|
*/
================================================
FILE: application/config/index.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>
================================================
FILE: application/config/memcached.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
| -------------------------------------------------------------------------
| Memcached settings
| -------------------------------------------------------------------------
| Your Memcached servers can be specified below.
|
| See: https://codeigniter.com/userguide3/libraries/caching.html#memcached
|
*/
$config = array(
'default' => array(
'hostname' => '127.0.0.1',
'port' => '11211',
'weight' => '1',
),
);
================================================
FILE: application/config/migration.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
|--------------------------------------------------------------------------
| Enable/Disable Migrations
|--------------------------------------------------------------------------
|
| Migrations are disabled by default for security reasons.
| You should enable migrations whenever you intend to do a schema migration
| and disable it back when you're done.
|
*/
$config['migration_enabled'] = FALSE;
/*
|--------------------------------------------------------------------------
| Migration Type
|--------------------------------------------------------------------------
|
| Migration file names may be based on a sequential identifier or on
| a timestamp. Options are:
|
| 'sequential' = Sequential migration naming (001_add_blog.php)
| 'timestamp' = Timestamp migration naming (20121031104401_add_blog.php)
| Use timestamp format YYYYMMDDHHIISS.
|
| Note: If this configuration value is missing the Migration library
| defaults to 'sequential' for backward compatibility with CI2.
|
*/
$config['migration_type'] = 'timestamp';
/*
|--------------------------------------------------------------------------
| Migrations table
|--------------------------------------------------------------------------
|
| This is the name of the table that will store the current migrations state.
| When migrations runs it will store in a database table which migration
| level the system is at. It then compares the migration level in this
| table to the $config['migration_version'] if they are not the same it
| will migrate up. This must be set.
|
*/
$config['migration_table'] = 'migrations';
/*
|--------------------------------------------------------------------------
| Auto Migrate To Latest
|--------------------------------------------------------------------------
|
| If this is set to TRUE when you load the migrations class and have
| $config['migration_enabled'] set to TRUE the system will auto migrate
| to your latest migration (whatever $config['migration_version'] is
| set to). This way you do not have to call migrations anywhere else
| in your code to have the latest migration.
|
*/
$config['migration_auto_latest'] = FALSE;
/*
|--------------------------------------------------------------------------
| Migrations version
|--------------------------------------------------------------------------
|
| This is used to set migration version that the file system should be on.
| If you run $this->migration->current() this is the version that schema will
| be upgraded / downgraded to.
|
*/
$config['migration_version'] = 0;
/*
|--------------------------------------------------------------------------
| Migrations Path
|--------------------------------------------------------------------------
|
| Path to your migrations folder.
| Typically, it will be within your application path.
| Also, writing permission is required within the migrations path.
|
*/
$config['migration_path'] = APPPATH.'migrations/';
================================================
FILE: application/config/mimes.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| MIME TYPES
| -------------------------------------------------------------------
| This file contains an array of mime types. It is used by the
| Upload class to help identify allowed file types.
|
*/
return array(
'hqx' => array('application/mac-binhex40', 'application/mac-binhex', 'application/x-binhex40', 'application/x-mac-binhex40'),
'cpt' => 'application/mac-compactpro',
'csv' => array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'text/plain'),
'bin' => array('application/macbinary', 'application/mac-binary', 'application/octet-stream', 'application/x-binary', 'application/x-macbinary'),
'dms' => 'application/octet-stream',
'lha' => 'application/octet-stream',
'lzh' => 'application/octet-stream',
'exe' => array('application/octet-stream', 'application/x-msdownload'),
'class' => 'application/octet-stream',
'psd' => array('application/x-photoshop', 'image/vnd.adobe.photoshop'),
'so' => 'application/octet-stream',
'sea' => 'application/octet-stream',
'dll' => 'application/octet-stream',
'oda' => 'application/oda',
'pdf' => array('application/pdf', 'application/force-download', 'application/x-download', 'binary/octet-stream'),
'ai' => array('application/pdf', 'application/postscript'),
'eps' => 'application/postscript',
'ps' => 'application/postscript',
'smi' => 'application/smil',
'smil' => 'application/smil',
'mif' => 'application/vnd.mif',
'xls' => array('application/vnd.ms-excel', 'application/msexcel', 'application/x-msexcel', 'application/x-ms-excel', 'application/x-excel', 'application/x-dos_ms_excel', 'application/xls', 'application/x-xls', 'application/excel', 'application/download', 'application/vnd.ms-office', 'application/msword'),
'ppt' => array('application/powerpoint', 'application/vnd.ms-powerpoint', 'application/vnd.ms-office', 'application/msword'),
'pptx' => array('application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/x-zip', 'application/zip'),
'wbxml' => 'application/wbxml',
'wmlc' => 'application/wmlc',
'dcr' => 'application/x-director',
'dir' => 'application/x-director',
'dxr' => 'application/x-director',
'dvi' => 'application/x-dvi',
'gtar' => 'application/x-gtar',
'gz' => 'application/x-gzip',
'gzip' => 'application/x-gzip',
'php' => array('application/x-httpd-php', 'application/php', 'application/x-php', 'text/php', 'text/x-php', 'application/x-httpd-php-source'),
'php4' => 'application/x-httpd-php',
'php3' => 'application/x-httpd-php',
'phtml' => 'application/x-httpd-php',
'phps' => 'application/x-httpd-php-source',
'js' => array('application/x-javascript', 'text/plain'),
'swf' => 'application/x-shockwave-flash',
'sit' => 'application/x-stuffit',
'tar' => 'application/x-tar',
'tgz' => array('application/x-tar', 'application/x-gzip-compressed'),
'z' => 'application/x-compress',
'xhtml' => 'application/xhtml+xml',
'xht' => 'application/xhtml+xml',
'zip' => array('application/x-zip', 'application/zip', 'application/x-zip-compressed', 'application/s-compressed', 'multipart/x-zip'),
'rar' => array('application/x-rar', 'application/rar', 'application/x-rar-compressed'),
'mid' => 'audio/midi',
'midi' => 'audio/midi',
'mpga' => 'audio/mpeg',
'mp2' => 'audio/mpeg',
'mp3' => array('audio/mpeg', 'audio/mpg', 'audio/mpeg3', 'audio/mp3'),
'aif' => array('audio/x-aiff', 'audio/aiff'),
'aiff' => array('audio/x-aiff', 'audio/aiff'),
'aifc' => 'audio/x-aiff',
'ram' => 'audio/x-pn-realaudio',
'rm' => 'audio/x-pn-realaudio',
'rpm' => 'audio/x-pn-realaudio-plugin',
'ra' => 'audio/x-realaudio',
'rv' => 'video/vnd.rn-realvideo',
'wav' => array('audio/x-wav', 'audio/wave', 'audio/wav'),
'bmp' => array('image/bmp', 'image/x-bmp', 'image/x-bitmap', 'image/x-xbitmap', 'image/x-win-bitmap', 'image/x-windows-bmp', 'image/ms-bmp', 'image/x-ms-bmp', 'application/bmp', 'application/x-bmp', 'application/x-win-bitmap'),
'gif' => 'image/gif',
'jpeg' => array('image/jpeg', 'image/pjpeg'),
'jpg' => array('image/jpeg', 'image/pjpeg'),
'jpe' => array('image/jpeg', 'image/pjpeg'),
'jp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'j2k' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'jpf' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'jpg2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'jpx' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'jpm' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'mj2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'mjp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
'png' => array('image/png', 'image/x-png'),
'tiff' => 'image/tiff',
'tif' => 'image/tiff',
'heic' => 'image/heic',
'heif' => 'image/heif',
'css' => array('text/css', 'text/plain'),
'html' => array('text/html', 'text/plain'),
'htm' => array('text/html', 'text/plain'),
'shtml' => array('text/html', 'text/plain'),
'txt' => 'text/plain',
'text' => 'text/plain',
'log' => array('text/plain', 'text/x-log'),
'rtx' => 'text/richtext',
'rtf' => 'text/rtf',
'xml' => array('application/xml', 'text/xml', 'text/plain'),
'xsl' => array('application/xml', 'text/xsl', 'text/xml'),
'mpeg' => 'video/mpeg',
'mpg' => 'video/mpeg',
'mpe' => 'video/mpeg',
'qt' => 'video/quicktime',
'mov' => 'video/quicktime',
'avi' => array('video/x-msvideo', 'video/msvideo', 'video/avi', 'application/x-troff-msvideo'),
'movie' => 'video/x-sgi-movie',
'doc' => array('application/msword', 'application/vnd.ms-office'),
'docx' => array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip', 'application/msword', 'application/x-zip'),
'dot' => array('application/msword', 'application/vnd.ms-office'),
'dotx' => array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip', 'application/msword'),
'xlsx' => array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip', 'application/vnd.ms-excel', 'application/msword', 'application/x-zip'),
'word' => array('application/msword', 'application/octet-stream'),
'xl' => 'application/excel',
'eml' => 'message/rfc822',
'json' => array('application/json', 'text/json'),
'pem' => array('application/x-x509-user-cert', 'application/x-pem-file', 'application/octet-stream'),
'p10' => array('application/x-pkcs10', 'application/pkcs10'),
'p12' => 'application/x-pkcs12',
'p7a' => 'application/x-pkcs7-signature',
'p7c' => array('application/pkcs7-mime', 'application/x-pkcs7-mime'),
'p7m' => array('application/pkcs7-mime', 'application/x-pkcs7-mime'),
'p7r' => 'application/x-pkcs7-certreqresp',
'p7s' => 'application/pkcs7-signature',
'crt' => array('application/x-x509-ca-cert', 'application/x-x509-user-cert', 'application/pkix-cert'),
'crl' => array('application/pkix-crl', 'application/pkcs-crl'),
'der' => 'application/x-x509-ca-cert',
'kdb' => 'application/octet-stream',
'pgp' => 'application/pgp',
'gpg' => 'application/gpg-keys',
'sst' => 'application/octet-stream',
'csr' => 'application/octet-stream',
'rsa' => 'application/x-pkcs7',
'cer' => array('application/pkix-cert', 'application/x-x509-ca-cert'),
'3g2' => 'video/3gpp2',
'3gp' => array('video/3gp', 'video/3gpp'),
'mp4' => 'video/mp4',
'm4a' => 'audio/x-m4a',
'f4v' => array('video/mp4', 'video/x-f4v'),
'flv' => 'video/x-flv',
'webm' => 'video/webm',
'aac' => array('audio/x-aac', 'audio/aac'),
'm4u' => 'application/vnd.mpegurl',
'm3u' => 'text/plain',
'xspf' => 'application/xspf+xml',
'vlc' => 'application/videolan',
'wmv' => array('video/x-ms-wmv', 'video/x-ms-asf'),
'au' => 'audio/x-au',
'ac3' => 'audio/ac3',
'flac' => 'audio/x-flac',
'ogg' => array('audio/ogg', 'video/ogg', 'application/ogg'),
'kmz' => array('application/vnd.google-earth.kmz', 'application/zip', 'application/x-zip'),
'kml' => array('application/vnd.google-earth.kml+xml', 'application/xml', 'text/xml'),
'ics' => 'text/calendar',
'ical' => 'text/calendar',
'zsh' => 'text/x-scriptzsh',
'7z' => array('application/x-7z-compressed', 'application/x-compressed', 'application/x-zip-compressed', 'application/zip', 'multipart/x-zip'),
'7zip' => array('application/x-7z-compressed', 'application/x-compressed', 'application/x-zip-compressed', 'application/zip', 'multipart/x-zip'),
'cdr' => array('application/cdr', 'application/coreldraw', 'application/x-cdr', 'application/x-coreldraw', 'image/cdr', 'image/x-cdr', 'zz-application/zz-winassoc-cdr'),
'wma' => array('audio/x-ms-wma', 'video/x-ms-asf'),
'jar' => array('application/java-archive', 'application/x-java-application', 'application/x-jar', 'application/x-compressed'),
'svg' => array('image/svg+xml', 'image/svg', 'application/xml', 'text/xml'),
'vcf' => 'text/x-vcard',
'srt' => array('text/srt', 'text/plain'),
'vtt' => array('text/vtt', 'text/plain'),
'ico' => array('image/x-icon', 'image/x-ico', 'image/vnd.microsoft.icon'),
'odc' => 'application/vnd.oasis.opendocument.chart',
'otc' => 'application/vnd.oasis.opendocument.chart-template',
'odf' => 'application/vnd.oasis.opendocument.formula',
'otf' => 'application/vnd.oasis.opendocument.formula-template',
'odg' => 'application/vnd.oasis.opendocument.graphics',
'otg' => 'application/vnd.oasis.opendocument.graphics-template',
'odi' => 'application/vnd.oasis.opendocument.image',
'oti' => 'application/vnd.oasis.opendocument.image-template',
'odp' => 'application/vnd.oasis.opendocument.presentation',
'otp' => 'application/vnd.oasis.opendocument.presentation-template',
'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template',
'odt' => 'application/vnd.oasis.opendocument.text',
'odm' => 'application/vnd.oasis.opendocument.text-master',
'ott' => 'application/vnd.oasis.opendocument.text-template',
'oth' => 'application/vnd.oasis.opendocument.text-web'
);
================================================
FILE: application/config/profiler.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
| -------------------------------------------------------------------------
| Profiler Sections
| -------------------------------------------------------------------------
| This file lets you determine whether or not various sections of Profiler
| data are displayed when the Profiler is enabled.
| Please see the user guide for info:
|
| https://codeigniter.com/userguide3/general/profiling.html
|
*/
================================================
FILE: application/config/routes.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
| -------------------------------------------------------------------------
| URI ROUTING
| -------------------------------------------------------------------------
| This file lets you re-map URI requests to specific controller functions.
|
| Typically there is a one-to-one relationship between a URL string
| and its corresponding controller class/method. The segments in a
| URL normally follow this pattern:
|
| example.com/class/method/id/
|
| In some instances, however, you may want to remap this relationship
| so that a different class/function is called than the one
| corresponding to the URL.
|
| Please see the user guide for complete details:
|
| https://codeigniter.com/userguide3/general/routing.html
|
| -------------------------------------------------------------------------
| RESERVED ROUTES
| -------------------------------------------------------------------------
|
| There are three reserved routes:
|
| $route['default_controller'] = 'welcome';
|
| This route indicates which controller class should be loaded if the
| URI contains no data. In the above example, the "welcome" class
| would be loaded.
|
| $route['404_override'] = 'errors/page_missing';
|
| This route will tell the Router which controller/method to use if those
| provided in the URL cannot be matched to a valid route.
|
| $route['translate_uri_dashes'] = FALSE;
|
| This is not exactly a route, but allows you to automatically route
| controller and method names that contain dashes. '-' isn't a valid
| class or method name character, so it requires translation.
| When you set this option to TRUE, it will replace ALL dashes with
| underscores in the controller and method URI segments.
|
| Examples: my-controller/index -> my_controller/index
| my-controller/my-method -> my_controller/my_method
*/
$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
================================================
FILE: application/config/user_agents.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| USER AGENT TYPES
| -------------------------------------------------------------------
| This file contains four arrays of user agent data. It is used by the
| User Agent Class to help identify browser, platform, robot, and
| mobile device data. The array keys are used to identify the device
| and the array values are used to set the actual name of the item.
*/
$platforms = array(
'windows nt 10.0' => 'Windows 10',
'windows nt 6.3' => 'Windows 8.1',
'windows nt 6.2' => 'Windows 8',
'windows nt 6.1' => 'Windows 7',
'windows nt 6.0' => 'Windows Vista',
'windows nt 5.2' => 'Windows 2003',
'windows nt 5.1' => 'Windows XP',
'windows nt 5.0' => 'Windows 2000',
'windows nt 4.0' => 'Windows NT 4.0',
'winnt4.0' => 'Windows NT 4.0',
'winnt 4.0' => 'Windows NT',
'winnt' => 'Windows NT',
'windows 98' => 'Windows 98',
'win98' => 'Windows 98',
'windows 95' => 'Windows 95',
'win95' => 'Windows 95',
'windows phone' => 'Windows Phone',
'windows' => 'Unknown Windows OS',
'android' => 'Android',
'blackberry' => 'BlackBerry',
'iphone' => 'iOS',
'ipad' => 'iOS',
'ipod' => 'iOS',
'os x' => 'Mac OS X',
'ppc mac' => 'Power PC Mac',
'freebsd' => 'FreeBSD',
'ppc' => 'Macintosh',
'linux' => 'Linux',
'debian' => 'Debian',
'sunos' => 'Sun Solaris',
'beos' => 'BeOS',
'apachebench' => 'ApacheBench',
'aix' => 'AIX',
'irix' => 'Irix',
'osf' => 'DEC OSF',
'hp-ux' => 'HP-UX',
'netbsd' => 'NetBSD',
'bsdi' => 'BSDi',
'openbsd' => 'OpenBSD',
'gnu' => 'GNU/Linux',
'unix' => 'Unknown Unix OS',
'symbian' => 'Symbian OS'
);
// The order of this array should NOT be changed. Many browsers return
// multiple browser types so we want to identify the sub-type first.
$browsers = array(
'OPR' => 'Opera',
'Flock' => 'Flock',
'Edge' => 'Edge',
'Chrome' => 'Chrome',
// Opera 10+ always reports Opera/9.80 and appends Version/<real version> to the user agent string
'Opera.*?Version' => 'Opera',
'Opera' => 'Opera',
'MSIE' => 'Internet Explorer',
'Internet Explorer' => 'Internet Explorer',
'Trident.* rv' => 'Internet Explorer',
'Shiira' => 'Shiira',
'Firefox' => 'Firefox',
'Chimera' => 'Chimera',
'Phoenix' => 'Phoenix',
'Firebird' => 'Firebird',
'Camino' => 'Camino',
'Netscape' => 'Netscape',
'OmniWeb' => 'OmniWeb',
'Safari' => 'Safari',
'Mozilla' => 'Mozilla',
'Konqueror' => 'Konqueror',
'icab' => 'iCab',
'Lynx' => 'Lynx',
'Links' => 'Links',
'hotjava' => 'HotJava',
'amaya' => 'Amaya',
'IBrowse' => 'IBrowse',
'Maxthon' => 'Maxthon',
'Ubuntu' => 'Ubuntu Web Browser',
'Vivaldi' => 'Vivaldi'
);
$mobiles = array(
// legacy array, old values commented out
'mobileexplorer' => 'Mobile Explorer',
// 'openwave' => 'Open Wave',
// 'opera mini' => 'Opera Mini',
// 'operamini' => 'Opera Mini',
// 'elaine' => 'Palm',
'palmsource' => 'Palm',
// 'digital paths' => 'Palm',
// 'avantgo' => 'Avantgo',
// 'xiino' => 'Xiino',
'palmscape' => 'Palmscape',
// 'nokia' => 'Nokia',
// 'ericsson' => 'Ericsson',
// 'blackberry' => 'BlackBerry',
// 'motorola' => 'Motorola'
// Phones and Manufacturers
'motorola' => 'Motorola',
'nokia' => 'Nokia',
'nexus' => 'Nexus',
'palm' => 'Palm',
'iphone' => 'Apple iPhone',
'ipad' => 'iPad',
'ipod' => 'Apple iPod Touch',
'sony' => 'Sony Ericsson',
'ericsson' => 'Sony Ericsson',
'blackberry' => 'BlackBerry',
'cocoon' => 'O2 Cocoon',
'blazer' => 'Treo',
'lg' => 'LG',
'amoi' => 'Amoi',
'xda' => 'XDA',
'mda' => 'MDA',
'vario' => 'Vario',
'htc' => 'HTC',
'samsung' => 'Samsung',
'sharp' => 'Sharp',
'sie-' => 'Siemens',
'alcatel' => 'Alcatel',
'benq' => 'BenQ',
'ipaq' => 'HP iPaq',
'mot-' => 'Motorola',
'playstation portable' => 'PlayStation Portable',
'playstation 3' => 'PlayStation 3',
'playstation vita' => 'PlayStation Vita',
'hiptop' => 'Danger Hiptop',
'nec-' => 'NEC',
'panasonic' => 'Panasonic',
'philips' => 'Philips',
'sagem' => 'Sagem',
'sanyo' => 'Sanyo',
'spv' => 'SPV',
'zte' => 'ZTE',
'sendo' => 'Sendo',
'nintendo dsi' => 'Nintendo DSi',
'nintendo ds' => 'Nintendo DS',
'nintendo 3ds' => 'Nintendo 3DS',
'wii' => 'Nintendo Wii',
'open web' => 'Open Web',
'openweb' => 'OpenWeb',
'meizu' => 'Meizu',
'huawei' => 'Huawei',
'xiaomi' => 'Xiaomi',
'oppo' => 'Oppo',
'vivo' => 'Vivo',
'infinix' => 'Infinix',
// Operating Systems
'android' => 'Android',
'symbian' => 'Symbian',
'SymbianOS' => 'SymbianOS',
'elaine' => 'Palm',
'series60' => 'Symbian S60',
'windows ce' => 'Windows CE',
// Browsers
'obigo' => 'Obigo',
'netfront' => 'Netfront Browser',
'openwave' => 'Openwave Browser',
'mobilexplorer' => 'Mobile Explorer',
'operamini' => 'Opera Mini',
'opera mini' => 'Opera Mini',
'opera mobi' => 'Opera Mobile',
'fennec' => 'Firefox Mobile',
// Other
'digital paths' => 'Digital Paths',
'avantgo' => 'AvantGo',
'xiino' => 'Xiino',
'novarra' => 'Novarra Transcoder',
'vodafone' => 'Vodafone',
'docomo' => 'NTT DoCoMo',
'o2' => 'O2',
// Fallback
'mobile' => 'Generic Mobile',
'wireless' => 'Generic Mobile',
'j2me' => 'Generic Mobile',
'midp' => 'Generic Mobile',
'cldc' => 'Generic Mobile',
'up.link' => 'Generic Mobile',
'up.browser' => 'Generic Mobile',
'smartphone' => 'Generic Mobile',
'cellphone' => 'Generic Mobile'
);
// There are hundreds of bots but these are the most common.
$robots = array(
'googlebot' => 'Googlebot',
'msnbot' => 'MSNBot',
'baiduspider' => 'Baiduspider',
'bingbot' => 'Bing',
'slurp' => 'Inktomi Slurp',
'yahoo' => 'Yahoo',
'ask jeeves' => 'Ask Jeeves',
'fastcrawler' => 'FastCrawler',
'infoseek' => 'InfoSeek Robot 1.0',
'lycos' => 'Lycos',
'yandex' => 'YandexBot',
'mediapartners-google' => 'MediaPartners Google',
'CRAZYWEBCRAWLER' => 'Crazy Webcrawler',
'adsbot-google' => 'AdsBot Google',
'feedfetcher-google' => 'Feedfetcher Google',
'curious george' => 'Curious George',
'ia_archiver' => 'Alexa Crawler',
'MJ12bot' => 'Majestic-12',
'Uptimebot' => 'Uptimebot',
'UptimeRobot' => 'UptimeRobot'
);
================================================
FILE: application/controllers/Welcome.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller {
/**
* Index Page for this controller.
*
* Maps to the following URL
* http://example.com/index.php/welcome
* - or -
* http://example.com/index.php/welcome/index
* - or -
* Since this controller is set as the default controller in
* config/routes.php, it's displayed at http://example.com/
*
* So any other public methods not prefixed with an underscore will
* map to /index.php/welcome/<method_name>
* @see https://codeigniter.com/userguide3/general/urls.html
*/
public function index()
{
$this->load->view('welcome_message');
}
}
================================================
FILE: application/controllers/index.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>
================================================
FILE: application/core/index.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>
================================================
FILE: application/helpers/index.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>
================================================
FILE: application/hooks/index.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>
================================================
FILE: application/index.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>
================================================
FILE: application/language/english/index.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>
================================================
FILE: application/language/index.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>
================================================
FILE: application/libraries/index.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>
================================================
FILE: application/logs/index.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>
================================================
FILE: application/models/index.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>
================================================
FILE: application/third_party/index.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>
================================================
FILE: application/views/errors/cli/error_404.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
echo "\nERROR: ",
$heading,
"\n\n",
$message,
"\n\n";
================================================
FILE: application/views/errors/cli/error_db.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
echo "\nDatabase error: ",
$heading,
"\n\n",
$message,
"\n\n";
================================================
FILE: application/views/errors/cli/error_exception.php
================================================
<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>
An uncaught Exception was encountered
Type: <?php echo get_class($exception), "\n"; ?>
Message: <?php echo $message, "\n"; ?>
Filename: <?php echo $exception->getFile(), "\n"; ?>
Line Number: <?php echo $exception->getLine(); ?>
<?php if (defined('SHOW_DEBUG_BACKTRACE') && SHOW_DEBUG_BACKTRACE === TRUE): ?>
Backtrace:
<?php foreach ($exception->getTrace() as $error): ?>
<?php if (isset($error['file']) && strpos($error['file'], realpath(BASEPATH)) !== 0): ?>
File: <?php echo $error['file'], "\n"; ?>
Line: <?php echo $error['line'], "\n"; ?>
Function: <?php echo $error['function'], "\n\n"; ?>
<?php endif ?>
<?php endforeach ?>
<?php endif ?>
================================================
FILE: application/views/errors/cli/error_general.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
echo "\nERROR: ",
$heading,
"\n\n",
$message,
"\n\n";
================================================
FILE: application/views/errors/cli/error_php.php
================================================
<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>
A PHP Error was encountered
Severity: <?php echo $severity, "\n"; ?>
Message: <?php echo $message, "\n"; ?>
Filename: <?php echo $filepath, "\n"; ?>
Line Number: <?php echo $line; ?>
<?php if (defined('SHOW_DEBUG_BACKTRACE') && SHOW_DEBUG_BACKTRACE === TRUE): ?>
Backtrace:
<?php foreach (debug_backtrace() as $error): ?>
<?php if (isset($error['file']) && strpos($error['file'], realpath(BASEPATH)) !== 0): ?>
File: <?php echo $error['file'], "\n"; ?>
Line: <?php echo $error['line'], "\n"; ?>
Function: <?php echo $error['function'], "\n\n"; ?>
<?php endif ?>
<?php endforeach ?>
<?php endif ?>
================================================
FILE: application/views/errors/cli/index.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>
================================================
FILE: application/views/errors/html/error_404.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>404 Page Not Found</title>
<style type="text/css">
::selection { background-color: #f07746; color: #fff; }
::-moz-selection { background-color: #f07746; color: #fff; }
body {
background-color: #fff;
margin: 40px auto;
max-width: 1024px;
font: 16px/24px normal "Helvetica Neue", Helvetica, Arial, sans-serif;
color: #808080;
}
a {
color: #dd4814;
background-color: transparent;
font-weight: normal;
text-decoration: none;
}
a:hover {
color: #97310e;
}
h1 {
color: #fff;
background-color: #dd4814;
border-bottom: 1px solid #d0d0d0;
font-size: 22px;
font-weight: bold;
margin: 0 0 14px 0;
padding: 5px 15px;
line-height: 40px;
}
h2 {
color:#404040;
margin:0;
padding:0 0 10px 0;
}
code {
font-family: Consolas, Monaco, Courier New, Courier, monospace;
font-size: 13px;
background-color: #f5f5f5;
border: 1px solid #e3e3e3;
border-radius: 4px;
color: #002166;
display: block;
margin: 14px 0 14px 0;
padding: 12px 10px 12px 10px;
}
#container {
margin: 10px;
border: 1px solid #d0d0d0;
box-shadow: 0 0 8px #d0d0d0;
border-radius: 4px;
}
p {
margin: 0 0 10px;
padding:0;
}
#body {
margin: 0 15px 0 15px;
min-height: 96px;
}
</style>
</head>
<body>
<div id="container">
<h1><?php echo $heading; ?></h1>
<div id="body">
<?php echo $message; ?>
</div>
</div>
</body>
</html>
================================================
FILE: application/views/errors/html/error_db.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Database Error</title>
<style type="text/css">
::selection { background-color: #f07746; color: #fff; }
::-moz-selection { background-color: #f07746; color: #fff; }
body {
background-color: #fff;
margin: 40px auto;
max-width: 1024px;
font: 16px/24px normal "Helvetica Neue", Helvetica, Arial, sans-serif;
color: #808080;
}
a {
color: #dd4814;
background-color: transparent;
font-weight: normal;
text-decoration: none;
}
a:hover {
color: #97310e;
}
h1 {
color: #fff;
background-color: #dd4814;
border-bottom: 1px solid #d0d0d0;
font-size: 22px;
font-weight: bold;
margin: 0 0 14px 0;
padding: 5px 15px;
line-height: 40px;
}
h2 {
color:#404040;
margin:0;
padding:0 0 10px 0;
}
code {
font-family: Consolas, Monaco, Courier New, Courier, monospace;
font-size: 13px;
background-color: #f5f5f5;
border: 1px solid #e3e3e3;
border-radius: 4px;
color: #002166;
display: block;
margin: 14px 0 14px 0;
padding: 12px 10px 12px 10px;
}
#container {
margin: 10px;
border: 1px solid #d0d0d0;
box-shadow: 0 0 8px #d0d0d0;
border-radius: 4px;
}
p {
margin: 0 0 10px;
padding:0;
}
#body {
margin: 0 15px 0 15px;
min-height: 96px;
}
</style>
</head>
<body>
<div id="container">
<h1><?php echo $heading; ?></h1>
<div id="body">
<?php echo $message; ?>
</div>
</div>
</body>
</html>
================================================
FILE: application/views/errors/html/error_exception.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<div style="border:1px solid #dd4814;padding-left:20px;margin:10px 0;">
<h4>An uncaught Exception was encountered</h4>
<p>Type: <?php echo get_class($exception); ?></p>
<p>Message: <?php echo $message; ?></p>
<p>Filename: <?php echo $exception->getFile(); ?></p>
<p>Line Number: <?php echo $exception->getLine(); ?></p>
<?php if (defined('SHOW_DEBUG_BACKTRACE') && SHOW_DEBUG_BACKTRACE === TRUE): ?>
<p>Backtrace:</p>
<?php foreach ($exception->getTrace() as $error): ?>
<?php if (isset($error['file']) && strpos($error['file'], realpath(BASEPATH)) !== 0): ?>
<p style="margin-left:10px">
File: <?php echo $error['file']; ?><br />
Line: <?php echo $error['line']; ?><br />
Function: <?php echo $error['function']; ?>
</p>
<?php endif ?>
<?php endforeach ?>
<?php endif ?>
</div>
================================================
FILE: application/views/errors/html/error_general.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
<style type="text/css">
::selection { background-color: #f07746; color: #fff; }
::-moz-selection { background-color: #f07746; color: #fff; }
body {
background-color: #fff;
margin: 40px auto;
max-width: 1024px;
font: 16px/24px normal "Helvetica Neue", Helvetica, Arial, sans-serif;
color: #808080;
}
a {
color: #dd4814;
background-color: transparent;
font-weight: normal;
text-decoration: none;
}
a:hover {
color: #97310e;
}
h1 {
color: #fff;
background-color: #dd4814;
border-bottom: 1px solid #d0d0d0;
font-size: 22px;
font-weight: bold;
margin: 0 0 14px 0;
padding: 5px 15px;
line-height: 40px;
}
h2 {
color:#404040;
margin:0;
padding:0 0 10px 0;
}
code {
font-family: Consolas, Monaco, Courier New, Courier, monospace;
font-size: 13px;
background-color: #f5f5f5;
border: 1px solid #e3e3e3;
border-radius: 4px;
color: #002166;
display: block;
margin: 14px 0 14px 0;
padding: 12px 10px 12px 10px;
}
#container {
margin: 10px;
border: 1px solid #d0d0d0;
box-shadow: 0 0 8px #d0d0d0;
border-radius: 4px;
}
p {
margin: 0 0 10px;
padding:0;
}
#body {
margin: 0 15px 0 15px;
min-height: 96px;
}
</style>
</head>
<body>
<div id="container">
<h1><?php echo $heading; ?></h1>
<div id="body">
<?php echo $message; ?>
</div>
</div>
</body>
</html>
================================================
FILE: application/views/errors/html/error_php.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<div style="border:1px solid #dd4814;padding-left:20px;margin:10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: <?php echo $severity; ?></p>
<p>Message: <?php echo $message; ?></p>
<p>Filename: <?php echo $filepath; ?></p>
<p>Line Number: <?php echo $line; ?></p>
<?php if (defined('SHOW_DEBUG_BACKTRACE') && SHOW_DEBUG_BACKTRACE === TRUE): ?>
<p>Backtrace:</p>
<?php foreach (debug_backtrace() as $error): ?>
<?php if (isset($error['file']) && strpos($error['file'], realpath(BASEPATH)) !== 0): ?>
<p style="margin-left:10px">
File: <?php echo $error['file'] ?><br />
Line: <?php echo $error['line'] ?><br />
Function: <?php echo $error['function'] ?>
</p>
<?php endif ?>
<?php endforeach ?>
<?php endif ?>
</div>
================================================
FILE: application/views/errors/html/index.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>
================================================
FILE: application/views/errors/index.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>
================================================
FILE: application/views/index.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>
================================================
FILE: application/views/welcome_message.php
================================================
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Welcome to CodeIgniter</title>
<style type="text/css">
::selection { background-color: #f07746; color: #fff; }
::-moz-selection { background-color: #f07746; color: #fff; }
body {
background-color: #fff;
margin: 40px auto;
max-width: 1024px;
font: 16px/24px normal "Helvetica Neue",Helvetica,Arial,sans-serif;
color: #808080;
}
a {
color: #dd4814;
background-color: transparent;
font-weight: normal;
text-decoration: none;
}
a:hover {
color: #97310e;
}
h1 {
color: #fff;
background-color: #dd4814;
border-bottom: 1px solid #d0d0d0;
font-size: 22px;
font-weight: bold;
margin: 0 0 14px 0;
padding: 5px 10px;
line-height: 40px;
}
h1 img {
display: block;
}
h2 {
color:#404040;
margin:0;
padding:0 0 10px 0;
}
code {
font-family: Consolas, Monaco, Courier New, Courier, monospace;
font-size: 13px;
background-color: #f5f5f5;
border: 1px solid #e3e3e3;
border-radius: 4px;
color: #002166;
display: block;
margin: 14px 0 14px 0;
padding: 12px 10px 12px 10px;
}
#body {
margin: 0 15px 0 15px;
min-height: 96px;
}
p {
margin: 0 0 10px;
padding:0;
}
p.footer {
text-align: right;
font-size: 12px;
border-top: 1px solid #d0d0d0;
line-height: 32px;
padding: 0 10px 0 10px;
margin: 20px 0 0 0;
background:#8ba8af;
color:#fff;
}
#container {
margin: 10px;
border: 1px solid #d0d0d0;
box-shadow: 0 0 8px #d0d0d0;
border-radius: 4px;
}
</style>
</head>
<body>
<div id="container">
<h1>
<img alt="CodeIgniter" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAAoCAYAAABXadAKAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffCAUNIB84RgWtAAAMfklEQVR42u1ce3BVxRnfvc+E8KwEggoFAV/xVURri61Yxc7ojLa1Wm1t1To4tRanD5W2tnqtnTJ1Rmm11lG0D3yH0qpBq9KOqVjFQhWQCJqACcEQYgIJyT2v3f19/aPnwmZz7r0nN0ETPd8MM+Hs6zu//e23337fnstYJJFE0l+Q7ebo6T4Bjp2M0Ijkw5LYkHVUMY54InEiY+zkCNZIRjyhGWOMJVNJnkw9QErOjqCNZMQTmoAUi8WqGY/9hpRMRfBGMmKFpOAk5Sr6vygS3pURKpGMXEIr8XkiZCknStXBtsZGyEQy8sgsxHgCVlMfgQOr96QInUhGlMC1OSm5lAIErvvVCKFIRhahpXcb5RMpvxEhFMnIILJtJclz78hLZgLBts6MkIpk+PvMjj2WhFhOhQSqGVbvtAitSIb5AdCbTFLWUhGBECvgOOURYpEMXzLb1lRSso5CCDznhgixSD5oSYS3zGIG4+whFovPK16ZMQZ6O4I3kg9aQqW+SYpKFovdx+KJeaF65XkOkj3dh5OdHfNRA1EptUjfnfbt2/eJj2wwAHh9/y4M/HvEEZqUSrNY7G4Wiy0YSMc8mZjf72FZ+fUsmX4OnvvpoX4Rz/PmAFgKYCOAPQAEgN0AnpVSnn0wQeScz9yPF9HesWPH7hnE4vhpIVeuqakp/SFzZpb2d6Oh+yUAMgAySqlFw9NvVupWAoo4zFrK+0DUbjdJcSE5dpI8l8N1ziCo7X79LnjuNUOhX09PzyEAVhZSTyn19YNstZ7WrNa6QfZ1b36Y0fFhcmHPnj1jAbyc+6eUusrQfZ2m64vDkMzyPAIcKsyW1STFnXlmYB8p+XdSahUBHf3KXWcJhFvyjT/btqcCaDIm3fWt9AYAXQB629vbKw4yoeu18R8fZF9LfMJ0a312+c8eGubuSKem8/3DjcwTifBmkWCGhGPPI889hYB9VIoodUsp+jU1NaWBA/oBkABu6ezs3O+j19XVxT3PO/5g4pTJZDgAS9Pjl0NEjne0Ph8d7r51V1fXOGNXvPGDGDe0sSLP/UlxMqIZtlXOGGMEdRMRqRIobZNSl5bga95sAPitsG2FEKcC+COA7QAcAN0A1iilrsxkMjzfAlJK3Qhgs9+mE8BKKeV8Q49+12allGcDWAFgp7+D7AKwzLKsw4LGamhoSAEQWp83B9Xr7OwcA+A2AA1+v+8DeEoIcbpu4YUQn9cWyksHbibIL/lYPOLr5PiY/La1tbW8kH8PAC0tLWV+nzsLe6T402AwMXQ+V0p5JoB/AbAAPFbcOljZKpJyU3FCy3pYvftDf+Q61xLw3oApDdSTEFVhCdna2loOoEsDbFWYdnV1dXEAdxUBf0VNTU3MtD4AXs1TX+j/18lTX1+fBLC8wFittm1PDTjgHmsskovNOpZlHQZgaxh4Lcs6VCPHe9r4bwLBByQAdwUQ60GtvCW3qIpPL34xGEwMnZ8BoDRsri9OaM+9nIgQgondsHo/aVj2k0mKmgFz2vOuG4B1vqTvHSi5IOQ2fo8BXheANwD0GgT6ntHuL0a7Xt9P7y1Cnj8Y7Zp0N8l/9nCA9fqKXsfzvBMC3JyXjX72+To5xvOsYQhglANAvX4O8J/vDsCvTiuvY4wx13Vn+/69eZZ5JXd4lFJeUComQTr7dd4C8IoQ4rTCk25n4xDe/aGZKL1f9XNX7Gw5uc6lBNUQ3peW/4RjzwxJzPu0F7PWr19fNEEkpTzDAOSe+vr6JGOM9fb2TgLwrlZWX6Ddqpzf1t7eXgHgWV2XnMsipfyC6VPmypRSP9Ta9JhujrG1q9zWrpVfZOj054aGhpT2Lpu1sk2a5a822q12XfeooIULAAG4t2jlDxpld+oLPs8cDBiTAJ07BhSGhW19lpTcOAB3YS9JeW6gH+7YU0iKZUTkheinmzzvByEJ/V/tBV8L2eYZrc3bdXV1caM8ExTvBfCIbu2y2exko93jWvlm7fkq7fl6w6U4UR+rq6trnNHncq3ttoB3+YdWvqutrW2UUf4frfyvGqHOz+ce+e2W5iNlS0tLmW4plVI3FQhdbsgzBwPGxNRZSvnFASVWeDz+GcZjMwaQVRjPYrHfkZTH9SsqK9/FE8mFzPMWMaK9RfoZSzF+dMhR9YNDa8iT8Dla8uPh+fPnqz6Lj6jPFjtx4sTc52M6gC9WVFSYW/FsM9HgH6jO0RIvJ+uTkkwmN2jjqsbGxqzR5zHa31tNYjHGztAePVVVVWWFSX7oCSD/cNxotJuu/d2sF0yaNGkG51zfScyFNjNfwmUwmJg6W5a1bmCZwlhiFuN8dGFzp9Yxwg6NjDMYYz8mIQJv1/F0+j4mxUJG1JU/rEKMcx42ZawDi2KVJ0yY8CnOeUID7LWAbN8krVw0Nzd32bY9lXN+iFYtCMzZ5iRXVlaexDkP+4M7LXPnzpXGs6PyEbqqquo4413WmokmzvkErbwxT0bTuv3223eFJWU8Hp9pWNttuk/PGDuiEKFLxcTQubtYFjYRQJVyRsQZz3MhQ3oPk5R38HTZE30XQmwOA8YxxuxABqbSK0nJSYzHf1+ApyJs+JExliNg0TvXnPNKYzJ2B1Q7Rft7U3V1tRBCTDaseB8CZLPZyZzzMVr5Nn+8w4x2mxhjPXnUe8OMXhh9bjXepaBOZWVls43yxjyE3Z7JZCgsoU1Ladv2fkIvXrz4cM55mTZmQ8AclIrJzAK7QnFCE9RunkjKQLITbWTEr2NEghG1Mc6O1MqaGGNWQWLFE/eSlAtYPP7lANZJUmpHSEKvZYzlXJw5rusemU6n3ymUIe+79mJTGGMbNRIdyhg7WwP7b7k/jX76fMWeSqVm5SFP1lhAP0skErVhXiyVSh1ttN1aYHdinPPxxrvNLuBW5CWsZVlTOOej8iyEgpYymUzONHDYHvBqpWLSZxEWq9zfh1ZYzwhtAWQWjLCYp1J7Y6NG9zIpf86UfIlBNTIlX2REGZ5I7Ct+OlP3MsZUwPNtTMkXQobtlmtAx5LJ5ErP8441t17P805kjDHHcTYSEWmTvigXFchms5PLysoe45ync5Nl2/Yyf5K3G5N6aUdHx+icLxuPx79mnOK3+QecjQbJFvf09EzUn3V0dIzORVmMMfoQ2nXdrQYRTJ0uyx1wm5qa0pzzBRqx3Nra2p25GLzhI/exdgGkbCxArG2FdkDdfcvF9EvBpJjOIaMc2QmQot9lH0jxPFynT/iIXGscHPsYsq3RoVPqwqskper7f+Hi/RpWNvT9bABPBAXlAawDsAOA0u9VAKgx6rb5MWjLCCVdZoyzxmi3x2/XYyZY9PAhgCeNcsu/X/I6gGYASgjxOW2Rft+P2+4w2r0M4DkjBt1o1GkGsEa/S+E/35Jr5zjOdOM9v2MYiSv0csdxZpg7hdZvjZn1M7EA8DaAdinl+aViEqDz1aXdI3Cd7/b/SYKh+QKFXHsMCa/WYGI7HOfUgfTT0dExWo8B58k6rc7V7+3trQSwpUBdWyn17YA0+WnIc0FLzxIC6GPRzHhwnluA12iTvaKAbm8ZBDpfz5YVaFertTmrUDIKwG36BS89rFlTUxMD4GrlS8woEoC24A//D4wzUEwCdD6rVELPIKK3+mby3G8OHaHFc0NxQSmTyXCl1EUAVvkWVwDIAtgC4AEhxOnm3Qel1M0ANvnWIetnye50HGd6gbsf8wC8BMD2s4SvK6WuV0rdoE3y80GhKqXUjwC86mclpX8HZI1S6gY9/gzglQLEfCEgSXGevxs5vk5rlVILAezV2i3VLPDVRSzwo3qc3jgATjNItzAgXX88gCcBtPvv2QFgjeu6R5aKSTGdB0Y8Ka/Q099wnWuHhtDuNNIyTgT1NCkZ/WTYEIhlWVOGZIv+KAoJESelDtxzFl4NOfagv5bwF0oO8VWk5KQI7aER82sX8w5IRGqlUiTlgR+TkeKswfUnZxDRe0QE8ry7yXPHRCgPXKSUFwBYopS6Skp5oVLqcgAPAJCa2/BGhFQ+InrOVQS1k4B3SaljS+rDsY8hKdYSsI1c5+II1dJFvxORx+d2i95C+9iT2rGmkxTLSKkadO2Zqxq3xENtg1s2jCao+SS8+0mIW+Ha4yM0Sxf/PnFvATJvNg/DHycJHfflZaOaGGMLSYq5LBabwzhrYowV/WiTiKYzomlMqQwvK2+NKDk4qa6uFtlsdlY6nT6Fc34EY2wMY6ybMdaulNqSSqU2fZzxSZTQ5l1GVJnvtzf6M5oJRrSdMXo/ouPQSEVFRRtjrDZCor/8DypCy4UfldJKAAAAAElFTkSuQmCC"/>
</h1>
<div id="body">
<p>The page you are looking at is being generated dynamically by CodeIgniter.</p>
<p>If you would like to edit this page you'll find it located at:</p>
<code>application/views/welcome_message.php</code>
<p>The corresponding controller for this page is found at:</p>
<code>application/controllers/Welcome.php</code>
<p>If you are exploring CodeIgniter for the very first time, you should start by reading the <a href="user_guide/">User Guide</a>.</p>
</div>
<p class="footer">Page rendered in <strong>{elapsed_time}</strong> seconds. <?php echo (ENVIRONMENT === 'development') ? 'CodeIgniter Version <strong>' . CI_VERSION . '</strong>' : '' ?></p>
</div>
</body>
</html>
================================================
FILE: build-release.sh
================================================
#!/usr/bin/env bash
cd $(dirname $BASH_SOURCE)
if [ $# -eq 0 ]; then
echo 'Usage: '$BASH_SOURCE' <version_number>'
exit 1
fi
version_number=$1
if [ ${#version_number} -lt 5 ]
then
echo "Provided version number is too short"
exit 1
elif [ ${version_number: -4} == "-dev" ]
then
echo "'-dev' releases are not allowed"
exit 1
fi
version_id=${version_number:0:5}
version_id=${version_id//./}
upgrade_rst='user_guide_src/source/installation/upgrade_'$version_id'.rst'
if [ ${#version_id} -ne 3 ]
then
echo "Invalid version number format"
exit 1
elif [ `grep -c -F --regexp="'$version_number'" system/core/CodeIgniter.php` -ne 1 ]
then
echo "Provided version number doesn't match in system/core/CodeIgniter.php"
exit 1
elif [ `grep -c -F --regexp="'$version_number'" user_guide_src/source/conf.py` -ne 2 ]
then
echo "Provided version number doesn't match in user_guide_src/source/conf.py"
exit 1
elif [ `grep -c -F --regexp="$version_number (Current version) <https://codeload.github.com/bcit-ci/CodeIgniter/zip/$version_number>" user_guide_src/source/installation/downloads.rst` -ne 1 ]
then
echo "user_guide_src/source/installation/downloads.rst doesn't appear to contain a link for this version"
exit 1
elif [ ! -f "$upgrade_rst" ]
then
echo "${upgrade_rst} doesn't exist"
exit 1
fi
echo "Running tests ..."
php -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.func_overload=7 -d mbstring.internal_encoding=UTF-8 vendor/bin/phpunit --coverage-text --configuration tests/travis/sqlite.phpunit.xml
if [ $? -ne 0 ]
then
echo "Build FAILED!"
exit 1
fi
cd user_guide_src/
echo ""
echo "Building HTML docs; please check output for warnings ..."
echo ""
make html
echo ""
if [ $? -ne 0 ]
then
echo "Build FAILED!"
exit 1
fi
cd ..
if [ -d user_guide/ ]
then
rm -r user_guide/
fi
cp -r user_guide_src/build/html/ user_guide/
git add user_guide/
echo "Build complete."
================================================
FILE: composer.json
================================================
{
"description": "The CodeIgniter framework",
"name": "codeigniter/framework",
"type": "project",
"homepage": "https://codeigniter.com",
"license": "MIT",
"support": {
"forum": "https://forum.codeigniter.com/",
"wiki": "https://github.com/bcit-ci/CodeIgniter/wiki",
"slack": "https://codeigniterchat.slack.com",
"source": "https://github.com/bcit-ci/CodeIgniter"
},
"require": {
"php": ">=5.4.8"
},
"suggest": {
"paragonie/random_compat": "Provides better randomness in PHP 5.x"
},
"scripts": {
"test:coverage": [
"@putenv XDEBUG_MODE=coverage",
"phpunit --color=always --coverage-text --configuration tests/travis/sqlite.phpunit.xml"
],
"post-install-cmd": [
"sed -i s/name{0}/name[0]/ vendor/mikey179/vfsstream/src/main/php/org/bovigo/vfs/vfsStream.php"
],
"post-update-cmd": [
"sed -i s/name{0}/name[0]/ vendor/mikey179/vfsstream/src/main/php/org/bovigo/vfs/vfsStream.php"
]
},
"require-dev": {
"mikey179/vfsstream": "1.6.*",
"phpunit/phpunit": "4.* || 5.* || 9.*"
}
}
================================================
FILE: contributing.md
================================================
# Contributing to CodeIgniter
CodeIgniter is a community driven project and accepts contributions of code and documentation from the community. These contributions are made in the form of Issues or [Pull Requests](http://help.github.com/send-pull-requests/) on the [CodeIgniter repository](https://github.com/bcit-ci/CodeIgniter) on GitHub.
Issues are a quick way to point out a bug. If you find a bug or documentation error in CodeIgniter then please check a few things first:
1. There is not already an open Issue
2. The issue has already been fixed (check the develop branch, or look for closed Issues)
3. Is it something really obvious that you can fix yourself?
Reporting issues is helpful but an even better approach is to send a Pull Request, which is done by "Forking" the main repository and committing to your own copy. This will require you to use the version control system called Git.
## Guidelines
Before we look into how, here are the guidelines. If your Pull Requests fail
to pass these guidelines it will be declined and you will need to re-submit
when you’ve made the changes. This might sound a bit tough, but it is required
for us to maintain quality of the code-base.
### PHP Style
All code must meet the [Style Guide](https://codeigniter.com/userguide3/general/styleguide.html), which is
essentially the [Allman indent style](https://en.wikipedia.org/wiki/Indent_style#Allman_style), underscores and readable operators. This makes certain that all code is the same format as the existing code and means it will be as readable as possible.
### Documentation
If you change anything that requires a change to documentation then you will need to add it. New classes, methods, parameters, changing default values, etc are all things that will require a change to documentation. The change-log 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.
### Branching
CodeIgniter uses the [Git-Flow](https://nvie.com/posts/a-successful-git-branching-model/) branching model which requires all pull requests to be sent to the "develop" branch. This is
where the next planned version will be developed. The "master" branch will always contain the latest stable version and is kept clean so a "hotfix" (e.g: an emergency security patch) can be applied to master to create a new version, without worrying about other features holding it up. For this reason all commits need to be made to "develop" and any sent to "master" will be closed automatically. If you have multiple changes to submit, please place all changes into their own branch on your fork.
One thing at a time: A pull request should only contain one change. That does not mean only one commit, but one change - however many commits it took. The reason for this is that if you change X and Y but send a pull request for both at the same time, we might really want X but disagree with Y, meaning we cannot merge the request. Using the Git-Flow branching model you can create new branches for both of these features and send two requests.
### Signing
You must sign your work, certifying that you either wrote the work or otherwise have the right to pass it on to an open source project. git makes this trivial as you merely have to use `--signoff` on your commits to your CodeIgniter fork.
`git commit --signoff`
or simply
`git commit -s`
This will sign your commits with the information setup in your git config, e.g.
`Signed-off-by: John Q Public <john.public@example.com>`
If you are using [Tower](https://www.git-tower.com/) there is a "Sign-Off" checkbox in the commit window. You could even alias git commit to use the `-s` flag so you don’t have to think about it.
By signing your work in this manner, you certify to a "Developer's Certificate of Origin". The current version of this certificate is in the `DCO.txt` file in the root of this repository.
## How-to Guide
There are two ways to make changes, the easy way and the hard way. Either way you will need to [create a GitHub account](https://github.com/signup/free).
Easy way GitHub allows in-line editing of files for making simple typo changes and quick-fixes. This is not the best way as you are unable to test the code works. If you do this you could be introducing syntax errors, etc, but for a Git-phobic user this is good for a quick-fix.
Hard way The best way to contribute is to "clone" your fork of CodeIgniter to your development area. That sounds like some jargon, but "forking" on GitHub means "making a copy of that repo to your account" and "cloning" means "copying that code to your environment so you can work on it".
1. [Set up Git](https://help.github.com/en/articles/set-up-git) (Windows, Mac & Linux)
2. Go to the [CodeIgniter repo](https://github.com/bcit-ci/CodeIgniter)
3. [Fork it](https://help.github.com/en/articles/fork-a-repo)
4. [Clone](https://help.github.com/en/articles/fetching-a-remote#clone) your forked CodeIgniter repo: git@github.com:<your-name>/CodeIgniter.git.
5. Checkout the "develop" branch. At this point you are ready to start making changes.
6. Fix existing bugs on the Issue tracker after taking a look to see nobody else is working on them.
7. [Commit](https://help.github.com/en/articles/adding-a-file-to-a-repository-using-the-command-line) the files
8. [Push](https://help.github.com/en/articles/pushing-to-a-remote) your develop branch to your fork
9. [Send a pull request](https://help.github.com/en/articles/creating-a-pull-request)
The Reactor Engineers will now be alerted about the change and at least one of the team will respond. If your change fails to meet the guidelines it will be bounced, or feedback will be provided to help you improve it.
Once the Reactor Engineer handling your pull request is happy with it they will merge it into develop and your patch will be part of the next release.
### Keeping your fork up-to-date
Unlike systems like Subversion, Git can have multiple remotes. A remote is the name for a URL of a Git repository. By default your fork will have a remote named "origin" which points to your fork, but you can add another remote named "codeigniter" which points to `git://github.com/bcit-ci/CodeIgniter.git`. This is a read-only remote but you can pull from this develop branch to update your own.
If you are using command-line you can do the following:
1. `git remote add codeigniter git://github.com/bcit-ci/CodeIgniter.git`
2. `git pull codeigniter develop`
3. `git push origin develop`
Now your fork is up to date. This should be done regularly, or before you send a pull request at least.
================================================
FILE: index.php
================================================
<?php
/**
* CodeIgniter
*
* An open source application development framework for PHP
*
* This content is released under the MIT License (MIT)
*
* Copyright (c) 2014 - 2019, British Columbia Institute of Technology
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* @package CodeIgniter
* @author EllisLab Dev Team
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
* @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/)
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 1.0.0
* @filesource
*/
/*
*---------------------------------------------------------------
* APPLICATION ENVIRONMENT
*---------------------------------------------------------------
*
* You can load different configurations depending on your
* current environment. Setting the environment also influences
* things like logging and error reporting.
*
* This can be set to anything, but default usage is:
*
* development
* testing
* production
*
* NOTE: If you change these, also change the error_reporting() code below
*/
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
/*
*---------------------------------------------------------------
* ERROR REPORTING
*---------------------------------------------------------------
*
* Different environments will require different levels of error reporting.
* By default development will show errors but testing and live will hide them.
*/
switch (ENVIRONMENT)
{
case 'development':
error_reporting(-1);
ini_set('display_errors', 1);
break;
case 'testing':
case 'production':
ini_set('display_errors', 0);
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED);
break;
default:
header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
echo 'The application environment is not set correctly.';
exit(1); // EXIT_ERROR
}
/*
*---------------------------------------------------------------
* SYSTEM DIRECTORY NAME
*---------------------------------------------------------------
*
* This variable must contain the name of your "system" directory.
* Set the path if it is not in the same directory as this file.
*/
$system_path = 'system';
/*
*---------------------------------------------------------------
* APPLICATION DIRECTORY NAME
*---------------------------------------------------------------
*
* If you want this front controller to use a different "application"
* directory than the default one you can set its name here. The directory
* can also be renamed or relocated anywhere on your server. If you do,
* use an absolute (full) server path.
* For more info please see the user guide:
*
* https://codeigniter.com/userguide3/general/managing_apps.html
*
* NO TRAILING SLASH!
*/
$application_folder = 'application';
/*
*---------------------------------------------------------------
* VIEW DIRECTORY NAME
*---------------------------------------------------------------
*
* If you want to move the view directory out of the application
* directory, set the path to it here. The directory can be renamed
* and relocated anywhere on your server. If blank, it will default
* to the standard location inside your application directory.
* If you do move this, use an absolute (full) server path.
*
* NO TRAILING SLASH!
*/
$view_folder = '';
/*
* --------------------------------------------------------------------
* DEFAULT CONTROLLER
* --------------------------------------------------------------------
*
* Normally you will set your default controller in the routes.php file.
* You can, however, force a custom routing by hard-coding a
* specific controller class/function here. For most applications, you
* WILL NOT set your routing here, but it's an option for those
* special instances where you might want to override the standard
* routing in a specific front controller that shares a common CI installation.
*
* IMPORTANT: If you set the routing here, NO OTHER controller will be
* callable. In essence, this preference limits your application to ONE
* specific controller. Leave the function name blank if you need
* to call functions dynamically via the URI.
*
* Un-comment the $routing array below to use this feature
*/
// The directory name, relative to the "controllers" directory. Leave blank
// if your controller is not in a sub-directory within the "controllers" one
// $routing['directory'] = '';
// The controller class file name. Example: mycontroller
// $routing['controller'] = '';
// The controller function you wish to be called.
// $routing['function'] = '';
/*
* -------------------------------------------------------------------
* CUSTOM CONFIG VALUES
* -------------------------------------------------------------------
*
* The $assign_to_config array below will be passed dynamically to the
* config class when initialized. This allows you to set custom config
* items or override any default config values found in the config.php file.
* This can be handy as it permits you to share one application between
* multiple front controller files, with each file containing different
* config values.
*
* Un-comment the $assign_to_config array below to use this feature
*/
// $assign_to_config['name_of_config_item'] = 'value of config item';
// --------------------------------------------------------------------
// END OF USER CONFIGURABLE SETTINGS. DO NOT EDIT BELOW THIS LINE
// --------------------------------------------------------------------
/*
* ---------------------------------------------------------------
* Resolve the system path for increased reliability
* ---------------------------------------------------------------
*/
// Set the current directory correctly for CLI requests
if (defined('STDIN'))
{
chdir(dirname(__FILE__));
}
if (($_temp = realpath($system_path)) !== FALSE)
{
$system_path = $_temp.DIRECTORY_SEPARATOR;
}
else
{
// Ensure there's a trailing slash
$system_path = strtr(
rtrim($system_path, '/\\'),
'/\\',
DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR
).DIRECTORY_SEPARATOR;
}
// Is the system path correct?
if ( ! is_dir($system_path))
{
header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
echo 'Your system folder path does not appear to be set correctly. Please open the following file and correct this: '.pathinfo(__FILE__, PATHINFO_BASENAME);
exit(3); // EXIT_CONFIG
}
/*
* -------------------------------------------------------------------
* Now that we know the path, set the main path constants
* -------------------------------------------------------------------
*/
// The name of THIS file
define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME));
// Path to the system directory
define('BASEPATH', $system_path);
// Path to the front controller (this file) directory
define('FCPATH', dirname(__FILE__).DIRECTORY_SEPARATOR);
// Name of the "system" directory
define('SYSDIR', basename(BASEPATH));
// The path to the "application" directory
if (is_dir($application_folder))
{
if (($_temp = realpath($application_folder)) !== FALSE)
{
$application_folder = $_temp;
}
else
{
$application_folder = strtr(
rtrim($application_folder, '/\\'),
'/\\',
DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR
);
}
}
elseif (is_dir(BASEPATH.$application_folder.DIRECTORY_SEPARATOR))
{
$application_folder = BASEPATH.strtr(
trim($application_folder, '/\\'),
'/\\',
DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR
);
}
else
{
header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
echo 'Your application folder path does not appear to be set correctly. Please open the following file and correct this: '.SELF;
exit(3); // EXIT_CONFIG
}
define('APPPATH', $application_folder.DIRECTORY_SEPARATOR);
// The path to the "views" directory
if ( ! isset($view_folder[0]) && is_dir(APPPATH.'views'.DIRECTORY_SEPARATOR))
{
$view_folder = APPPATH.'views';
}
elseif (is_dir($view_folder))
{
if (($_temp = realpath($view_folder)) !== FALSE)
{
$view_folder = $_temp;
}
else
{
$view_folder = strtr(
rtrim($view_folder, '/\\'),
'/\\',
DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR
);
}
}
elseif (is_dir(APPPATH.$view_folder.DIRECTORY_SEPARATOR))
{
$view_folder = APPPATH.strtr(
trim($view_folder, '/\\'),
'/\\',
DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR
);
}
else
{
header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
echo 'Your view folder path does not appear to be set correctly. Please open the following file and correct this: '.SELF;
exit(3); // EXIT_CONFIG
}
define('VIEWPATH', $view_folder.DIRECTORY_SEPARATOR);
/*
* --------------------------------------------------------------------
* LOAD THE BOOTSTRAP FILE
* --------------------------------------------------------------------
*
* And away we go...
*/
require_once BASEPATH.'core/CodeIgniter.php';
================================================
FILE: license.txt
================================================
The MIT License (MIT)
Copyright (c) 2019 - 2022, CodeIgniter Foundation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
================================================
FILE: phpdoc.dist.xml
================================================
<?xml version="1.0" encoding="UTF-8" ?>
<phpdoc>
<title>CodeIgniter v3.0.0 API</title>
<parser>
<target>./api/</target>
</parser>
<transformer>
<target>./api/</target>
</transformer>
<files>
<directory>./system</directory>
</files>
<logging>
<level>warn</level>
<paths>
<default>./api/log/{DATE}.log</default>
<errors>./api/{DATE}.errors.log</errors>
</paths>
</logging>
</phpdoc>
================================================
FILE: readme.rst
================================================
###################
What is CodeIgniter
###################
CodeIgniter is an Application Development Framework - a toolkit - for people
who build web sites using PHP. Its goal is to enable you to develop projects
much faster than you could if you were writing code from scratch, by providing
a rich set of libraries for commonly needed tasks, as well as a simple
interface and logical structure to access these libraries. CodeIgniter lets
you creatively focus on your project by minimizing the amount of code needed
for a given task.
*************
CodeIgniter 3
*************
This repository is for the legacy version, CodeIgniter 3.
`CodeIgniter 4 <https://github.com/codeigniter4/CodeIgniter4>`_ is the latest
version of the framework.
CodeIgniter 3 is the legacy version of the framework, intended for use with PHP
5.6+. This version is in maintenance, receiving mostly just security updates.
*******************
Release Information
*******************
This repo contains in-development code for future releases. To download the
latest stable release please visit the `CodeIgniter Downloads
<https://codeigniter.com/download>`_ page.
**************************
Changelog and New Features
**************************
You can find a list of all changes for each release in the `user
guide change log <https://github.com/bcit-ci/CodeIgniter/blob/develop/user_guide_src/source/changelog.rst>`_.
*******************
Server Requirements
*******************
PHP version 5.6 or newer is recommended.
It should work on 5.4.8 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.
************
Installation
************
Please see the `installation section <https://codeigniter.com/userguide3/installation/index.html>`_
of the CodeIgniter User Guide.
*******
License
*******
Please see the `license
agreement <https://github.com/bcit-ci/CodeIgniter/blob/develop/user_guide_src/source/license.rst>`_.
*********
Resources
*********
- `User Guide <https://codeigniter.com/userguide3/>`_
- `Contributing Guide <https://github.com/bcit-ci/CodeIgniter/blob/develop/contributing.md>`_
- `Language File Translations <https://github.com/bcit-ci/codeigniter3-translations>`_
- `Community Forums <https://forum.codeigniter.com/>`_
- `Community Wiki <https://github.com/bcit-ci/CodeIgniter/wiki>`_
- `Community Slack Channel <https://codeigniterchat.slack.com>`_
Report security issues to our `Security Panel <mailto:security@codeigniter.com>`_
or via our `page on HackerOne <https://hackerone.com/codeigniter>`_, thank you.
***************
Acknowledgement
***************
The CodeIgniter team would like to thank EllisLab, all the
contributors to the CodeIgniter project and you, the CodeIgniter user.
================================================
FILE: system/.htaccess
================================================
<IfModule authz_core_module>
Require all denied
</IfModule>
<IfModule !authz_core_module>
Deny from all
</IfModule>
================================================
FILE: system/core/Benchmark.php
================================================
<?php
/**
* CodeIgniter
*
* An open source application development framework for PHP
*
* This content is released under the MIT License (MIT)
*
* Copyright (c) 2019 - 2022, CodeIgniter Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* @package CodeIgniter
* @author EllisLab Dev Team
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
* @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/)
* @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/)
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 1.0.0
* @filesource
*/
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* Benchmark Class
*
* This class enables you to mark points and calculate the time difference
* between them. Memory consumption can also be displayed.
*
* @package CodeIgniter
* @subpackage Libraries
* @category Libraries
* @author EllisLab Dev Team
* @link https://codeigniter.com/userguide3/libraries/benchmark.html
*/
class CI_Benchmark {
/**
* List of all benchmark markers
*
* @var array
*/
public $marker = array();
/**
* Set a benchmark marker
*
* Multiple calls to this function can be made so that several
* execution points can be timed.
*
* @param string $name Marker name
* @return void
*/
public function mark($name)
{
$this->marker[$name] = microtime(TRUE);
}
// --------------------------------------------------------------------
/**
* Elapsed time
*
* Calculates the time difference between two marked points.
*
* If the first parameter is empty this function instead returns the
* {elapsed_time} pseudo-variable. This permits the full system
* execution time to be shown in a template. The output class will
* swap the real value for this variable.
*
* @param string $point1 A particular marked point
* @param string $point2 A particular marked point
* @param int $decimals Number of decimal places
*
* @return string Calculated elapsed time on success,
* an '{elapsed_string}' if $point1 is empty
* or an empty string if $point1 is not found.
*/
public function elapsed_time($point1 = '', $point2 = '', $decimals = 4)
{
if ($point1 === '')
{
return '{elapsed_time}';
}
if ( ! isset($this->marker[$point1]))
{
return '';
}
if ( ! isset($this->marker[$point2]))
{
$this->marker[$point2] = microtime(TRUE);
}
return number_format($this->marker[$point2] - $this->marker[$point1], $decimals);
}
// --------------------------------------------------------------------
/**
* Memory Usage
*
* Simply returns the {memory_usage} marker.
*
* This permits it to be put it anywhere in a template
* without the memory being calculated until the end.
* The output class will swap the real value for this variable.
*
* @return string '{memory_usage}'
*/
public function memory_usage()
{
return '{memory_usage}';
}
}
================================================
FILE: system/core/CodeIgniter.php
================================================
<?php
/**
* CodeIgniter
*
* An open source application development framework for PHP
*
* This content is released under the MIT License (MIT)
*
* Copyright (c) 2019 - 2022, CodeIgniter Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* @package CodeIgniter
* @author EllisLab Dev Team
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
* @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/)
* @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/)
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 1.0.0
* @filesource
*/
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* System Initialization File
*
* Loads the base classes and executes the request.
*
* @package CodeIgniter
* @subpackage CodeIgniter
* @category Front-controller
* @author EllisLab Dev Team
* @link https://codeigniter.com/userguide3/
*/
/**
* CodeIgniter Version
*
* @var string
*
*/
const CI_VERSION = '3.2.0-dev';
/*
* ------------------------------------------------------
* Load the framework constants
* ------------------------------------------------------
*/
if (file_exists(APPPATH.'config/'.ENVIRONMENT.'/constants.php'))
{
require_once(APPPATH.'config/'.ENVIRONMENT.'/constants.php');
}
if (file_exists(APPPATH.'config/constants.php'))
{
require_once(APPPATH.'config/constants.php');
}
/*
* ------------------------------------------------------
* Load the global functions
* ------------------------------------------------------
*/
require_once(BASEPATH.'core/Common.php');
/*
* ------------------------------------------------------
* Define a custom error handler so we can log PHP errors
* ------------------------------------------------------
*/
set_error_handler('_error_handler');
set_exception_handler('_exception_handler');
register_shutdown_function('_shutdown_handler');
/*
* ------------------------------------------------------
* Set the subclass_prefix
* ------------------------------------------------------
*
* Normally the "subclass_prefix" is set in the config file.
* The subclass prefix allows CI to know if a core class is
* being extended via a library in the local application
* "libraries" folder. Since CI allows config items to be
* overridden via data set in the main index.php file,
* before proceeding we need to know if a subclass_prefix
* override exists. If so, we will set this value now,
* before any classes are loaded
* Note: Since the config file data is cached it doesn't
* hurt to load it here.
*/
if ( ! empty($assign_to_config['subclass_prefix']))
{
get_config(array('subclass_prefix' => $assign_to_config['subclass_prefix']));
}
/*
* ------------------------------------------------------
* Should we use a Composer autoloader?
* ------------------------------------------------------
*/
if ($composer_autoload = config_item('composer_autoload'))
{
if ($composer_autoload === TRUE)
{
file_exists(APPPATH.'vendor/autoload.php')
? require_once(APPPATH.'vendor/autoload.php')
: log_message('error', '$config[\'composer_autoload\'] is set to TRUE but '.APPPATH.'vendor/autoload.php was not found.');
}
elseif (file_exists($composer_autoload))
{
require_once($composer_autoload);
}
else
{
log_message('error', 'Could not find the specified $config[\'composer_autoload\'] path: '.$composer_autoload);
}
}
/*
* ------------------------------------------------------
* Start the timer... tick tock tick tock...
* ------------------------------------------------------
*/
$BM =& load_class('Benchmark', 'core');
$BM->mark('total_execution_time_start');
$BM->mark('loading_time:_base_classes_start');
/*
* ------------------------------------------------------
* Instantiate the config class
* ------------------------------------------------------
*
* Note: It is important that Config is loaded first as
* most other classes depend on it either directly or by
* depending on another class that uses it.
*
*/
$CFG =& load_class('Config', 'core');
// Do we have any manually set config items in the index.php file?
if (isset($assign_to_config) && is_array($assign_to_config))
{
foreach ($assign_to_config as $key => $value)
{
$CFG->set_item($key, $value);
}
}
/*
* ------------------------------------------------------
* Instantiate the hooks class
* ------------------------------------------------------
*/
$EXT =& load_class('Hooks', 'core', $CFG);
/*
* ------------------------------------------------------
* Is there a "pre_system" hook?
* ------------------------------------------------------
*/
$EXT->call_hook('pre_system');
/*
* ------------------------------------------------------
* Important charset-related stuff
* ------------------------------------------------------
*
* Configure mbstring and/or iconv if they are enabled
* and set MB_ENABLED and ICONV_ENABLED constants, so
* that we don't repeatedly do extension_loaded() or
* function_exists() calls.
*
* Note: UTF-8 class depends on this. It used to be done
* in it's constructor, but it's _not_ class-specific.
*
*/
$charset = strtoupper(config_item('charset'));
ini_set('default_charset', $charset);
if (extension_loaded('mbstring'))
{
define('MB_ENABLED', TRUE);
// mbstring.internal_encoding is deprecated starting with PHP 5.6
// and it's usage triggers E_DEPRECATED messages.
@ini_set('mbstring.internal_encoding', $charset);
// This is required for mb_convert_encoding() to strip invalid characters.
// That's utilized by CI_Utf8, but it's also done for consistency with iconv.
mb_substitute_character('none');
}
else
{
define('MB_ENABLED', FALSE);
}
// There's an ICONV_IMPL constant, but the PHP manual says that using
// iconv's predefined constants is "strongly discouraged".
if (extension_loaded('iconv'))
{
define('ICONV_ENABLED', TRUE);
// iconv.internal_encoding is deprecated starting with PHP 5.6
// and it's usage triggers E_DEPRECATED messages.
@ini_set('iconv.internal_encoding', $charset);
}
else
{
define('ICONV_ENABLED', FALSE);
}
if (is_php('5.6'))
{
ini_set('php.internal_encoding', $charset);
}
/*
* ------------------------------------------------------
* Load compatibility features
* ------------------------------------------------------
*/
require_once(BASEPATH.'core/compat/mbstring.php');
require_once(BASEPATH.'core/compat/hash.php');
require_once(BASEPATH.'core/compat/password.php');
require_once(BASEPATH.'core/compat/standard.php');
/*
* ------------------------------------------------------
* Instantiate the UTF-8 class
* ------------------------------------------------------
*/
$UNI =& load_class('Utf8', 'core', $charset);
/*
* ------------------------------------------------------
* Instantiate the URI class
* ------------------------------------------------------
*/
$URI =& load_class('URI', 'core', $CFG);
/*
* ------------------------------------------------------
* Instantiate the routing class and set the routing
* ------------------------------------------------------
*/
$RTR =& load_class('Router', 'core', isset($routing) ? $routing : NULL);
/*
* ------------------------------------------------------
* Instantiate the output class
* ------------------------------------------------------
*/
$OUT =& load_class('Output', 'core');
/*
* ------------------------------------------------------
* Is there a valid cache file? If so, we're done...
* ------------------------------------------------------
*/
if ($EXT->call_hook('cache_override') === FALSE && $OUT->_display_cache($CFG, $URI) === TRUE)
{
exit;
}
/*
* -----------------------------------------------------
* Load the security class for xss and csrf support
* -----------------------------------------------------
*/
$SEC =& load_class('Security', 'core', $charset);
/*
* ------------------------------------------------------
* Load the Input class and sanitize globals
* ------------------------------------------------------
*/
$IN =& load_class('Input', 'core', $SEC);
/*
* ------------------------------------------------------
* Load the Language class
* ------------------------------------------------------
*/
$LANG =& load_class('Lang', 'core');
/*
* ------------------------------------------------------
* Load the app controller and local controller
* ------------------------------------------------------
*
*/
// Load the base controller class
require_once BASEPATH.'core/Controller.php';
/**
* Reference to the CI_Controller method.
*
* Returns current CI instance object
*
* @return CI_Controller
*/
function &get_instance()
{
return CI_Controller::get_instance();
}
if (file_exists(APPPATH.'core/'.$CFG->config['subclass_prefix'].'Controller.php'))
{
require_once APPPATH.'core/'.$CFG->config['subclass_prefix'].'Controller.php';
}
// Set a mark point for benchmarking
$BM->mark('loading_time:_base_classes_end');
/*
* ------------------------------------------------------
* Sanity checks
* ------------------------------------------------------
*
* The Router class has already validated the request,
* leaving us with 3 options here:
*
* 1) an empty class name, if we reached the default
* controller, but it didn't exist;
* 2) a query string which doesn't go through a
* file_exists() check
* 3) a regular request for a non-existing page
*
* We handle all of these as a 404 error.
*
* Furthermore, none of the methods in the app controller
* or the loader class can be called via the URI, nor can
* controller methods that begin with an underscore.
*/
$e404 = FALSE;
$class = ucfirst($RTR->class);
$method = $RTR->method;
if (empty($class) OR ! file_exists(APPPATH.'controllers/'.$RTR->directory.$class.'.php'))
{
$e404 = TRUE;
}
else
{
require_once(APPPATH.'controllers/'.$RTR->directory.$class.'.php');
if ( ! class_exists($class, FALSE) OR $method[0] === '_' OR method_exists('CI_Controller', $method))
{
$e404 = TRUE;
}
elseif (method_exists($class, '_remap'))
{
$params = array($method, array_slice($URI->rsegments, 2));
$method = '_remap';
}
elseif ( ! method_exists($class, $method))
{
$e404 = TRUE;
}
/**
* DO NOT CHANGE THIS, NOTHING ELSE WORKS!
*
* - method_exists() returns true for non-public methods, which passes the previous elseif
* - is_callable() returns false for PHP 4-style constructors, even if there's a __construct()
* - method_exists($class, '__construct') won't work because CI_Controller::__construct() is inherited
* - People will only complain if this doesn't work, even though it is documented that it shouldn't.
*
* ReflectionMethod::isConstructor() is the ONLY reliable check,
* knowing which method will be executed as a constructor.
*/
else
{
$reflection = new ReflectionMethod($class, $method);
if ( ! $reflection->isPublic() OR $reflection->isConstructor())
{
$e404 = TRUE;
}
}
}
if ($e404)
{
if ( ! empty($RTR->routes['404_override']))
{
if (sscanf($RTR->routes['404_override'], '%[^/]/%s', $error_class, $error_method) !== 2)
{
$error_method = 'index';
}
$error_class = ucfirst($error_class);
if ( ! class_exists($error_class, FALSE))
{
if (file_exists(APPPATH.'controllers/'.$RTR->directory.$error_class.'.php'))
{
require_once(APPPATH.'controllers/'.$RTR->directory.$error_class.'.php');
$e404 = ! class_exists($error_class, FALSE);
}
// Were we in a directory? If so, check for a global override
elseif ( ! empty($RTR->directory) && file_exists(APPPATH.'controllers/'.$error_class.'.php'))
{
require_once(APPPATH.'controllers/'.$error_class.'.php');
if (($e404 = ! class_exists($error_class, FALSE)) === FALSE)
{
$RTR->directory = '';
}
}
}
else
{
$e404 = FALSE;
}
}
// Did we reset the $e404 flag? If so, set the rsegments, starting from index 1
if ( ! $e404)
{
$class = $error_class;
$method = $error_method;
$URI->rsegments = array(
1 => $class,
2 => $method
);
}
else
{
show_404($RTR->directory.$class.'/'.$method);
}
}
if ($method !== '_remap')
{
$params = array_slice($URI->rsegments, 2);
}
/*
* ------------------------------------------------------
* Is there a "pre_controller" hook?
* ------------------------------------------------------
*/
$EXT->call_hook('pre_controller');
/*
* ------------------------------------------------------
* Instantiate the requested controller
* ------------------------------------------------------
*/
// Mark a start point so we can benchmark the controller
$BM->mark('controller_execution_time_( '.$class.' / '.$method.' )_start');
$CI = new $class();
/*
* ------------------------------------------------------
* Is there a "post_controller_constructor" hook?
* ------------------------------------------------------
*/
$EXT->call_hook('post_controller_constructor');
/*
* ------------------------------------------------------
* Call the requested method
* ------------------------------------------------------
*/
call_user_func_array(array(&$CI, $method), $params);
// Mark a benchmark end point
$BM->mark('controller_execution_time_( '.$class.' / '.$method.' )_end');
/*
* ------------------------------------------------------
* Is there a "post_controller" hook?
* ------------------------------------------------------
*/
$EXT->call_hook('post_controller');
/*
* ------------------------------------------------------
* Send the final rendered output to the browser
* ------------------------------------------------------
*/
if ($EXT->call_hook('display_override') === FALSE)
{
$OUT->_display();
}
/*
* ------------------------------------------------------
* Is there a "post_system" hook?
* ------------------------------------------------------
*/
$EXT->call_hook('post_system');
================================================
FILE: system/core/Common.php
================================================
<?php
/**
* CodeIgniter
*
* An open source application development framework for PHP
*
* This content is released under the MIT License (MIT)
*
* Copyright (c) 2019 - 2022, CodeIgniter Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* @package CodeIgniter
* @author EllisLab Dev Team
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
* @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/)
* @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/)
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 1.0.0
* @filesource
*/
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* Common Functions
*
* Loads the base classes and executes the request.
*
* @package CodeIgniter
* @subpackage CodeIgniter
* @category Common Functions
* @author EllisLab Dev Team
* @link https://codeigniter.com/userguide3/
*/
// ------------------------------------------------------------------------
if ( ! function_exists('is_php'))
{
/**
* Determines if the current version of PHP is equal to or greater than the supplied value
*
* @param string
* @return bool TRUE if the current version is $version or higher
*/
function is_php($version)
{
static $_is_php;
$version = (string) $version;
if ( ! isset($_is_php[$version]))
{
$_is_php[$version] = version_compare(PHP_VERSION, $version, '>=');
}
return $_is_php[$version];
}
}
// ------------------------------------------------------------------------
if ( ! function_exists('is_really_writable'))
{
/**
* Tests for file writability
*
* is_writable() returns TRUE on Windows servers when you really can't write to
* the file, based on the read-only attribute.
*
* @link https://bugs.php.net/bug.php?id=54709
* @param string
* @return bool
*/
function is_really_writable($file)
{
// If we're on a UNIX-like server, just is_writable()
if (DIRECTORY_SEPARATOR === '/')
{
return is_writable($file);
}
/* For Windows servers and safe_mode "on" installations we'll actually
* write a file then read it. Bah...
*/
if (is_dir($file))
{
$file = rtrim($file, '/').'/'.md5(mt_rand());
if (($fp = @fopen($file, 'ab')) === FALSE)
{
return FALSE;
}
fclose($fp);
@chmod($file, 0777);
@unlink($file);
return TRUE;
}
elseif ( ! is_file($file) OR ($fp = @fopen($file, 'ab')) === FALSE)
{
return FALSE;
}
fclose($fp);
return TRUE;
}
}
// ------------------------------------------------------------------------
if ( ! function_exists('load_class'))
{
/**
* Class registry
*
* This function acts as a singleton. If the requested class does not
* exist it is instantiated and set to a static variable. If it has
* previously been instantiated the variable is returned.
*
* @param string the class name being requested
* @param string the directory where the class should be found
* @param mixed an optional argument to pass to the class constructor
* @return object
*/
function &load_class($class, $directory = 'libraries', $param = NULL)
{
static $_classes = array();
// Does the class exist? If so, we're done...
if (isset($_classes[$class]))
{
return $_classes[$class];
}
$name = FALSE;
// Look for the class first in the local application/libraries folder
// then in the native system/libraries folder
foreach (array(APPPATH, BASEPATH) as $path)
{
if (file_exists($path.$directory.'/'.$class.'.php'))
{
$name = 'CI_'.$class;
if (class_exists($name, FALSE) === FALSE)
{
require_once($path.$directory.'/'.$class.'.php');
}
break;
}
}
// Is the request a class extension? If so we load it too
if (file_exists(APPPATH.$directory.'/'.config_item('subclass_prefix').$class.'.php'))
{
$name = config_item('subclass_prefix').$class;
if (class_exists($name, FALSE) === FALSE)
{
require_once(APPPATH.$directory.'/'.$name.'.php');
}
}
// Did we find the class?
if ($name === FALSE)
{
// Note: We use exit() rather than show_error() in order to avoid a
// self-referencing loop with the Exceptions class
set_status_header(503);
echo 'Unable to locate the specified class: '.$class.'.php';
exit(5); // EXIT_UNK_CLASS
}
// Keep track of what we just loaded
is_loaded($class);
$_classes[$class] = isset($param)
? new $name($param)
: new $name();
return $_classes[$class];
}
}
// --------------------------------------------------------------------
if ( ! function_exists('is_loaded'))
{
/**
* Keeps track of which libraries have been loaded. This function is
* called by the load_class() function above
*
* @param string
* @return array
*/
function &is_loaded($class = '')
{
static $_is_loaded = array();
if ($class !== '')
{
$_is_loaded[strtolower($class)] = $class;
}
return $_is_loaded;
}
}
// ------------------------------------------------------------------------
if ( ! function_exists('get_config'))
{
/**
* Loads the main config.php file
*
* This function lets us grab the config file even if the Config class
* hasn't been instantiated yet
*
* @param array
* @return array
*/
function &get_config(Array $replace = array())
{
static $config;
if (empty($config))
{
$file_path = APPPATH.'config/config.php';
$found = FALSE;
if (file_exists($file_path))
{
$found = TRUE;
require($file_path);
}
// Is the config file in the environment folder?
if (file_exists($file_path = APPPATH.'config/'.ENVIRONMENT.'/config.php'))
{
require($file_path);
}
elseif ( ! $found)
{
set_status_header(503);
echo 'The configuration file does not exist.';
exit(3); // EXIT_CONFIG
}
// Does the $config array exist in the file?
if ( ! isset($config) OR ! is_array($config))
{
set_status_header(503);
echo 'Your config file does not appear to be formatted correctly.';
exit(3); // EXIT_CONFIG
}
}
// Are any values being dynamically added or replaced?
foreach ($replace as $key => $val)
{
$config[$key] = $val;
}
return $config;
}
}
// ------------------------------------------------------------------------
if ( ! function_exists('config_item'))
{
/**
* Returns the specified config item
*
* @param string
* @return mixed
*/
function config_item($item)
{
static $_config;
if (empty($_config))
{
// references cannot be directly assigned to static variables, so we use an array
$_config[0] =& get_config();
}
return isset($_config[0][$item]) ? $_config[0][$item] : NULL;
}
}
// ------------------------------------------------------------------------
if ( ! function_exists('get_mimes'))
{
/**
* Returns the MIME types array from config/mimes.php
*
* @return array
*/
function &get_mimes()
{
static $_mimes;
if (empty($_mimes))
{
$_mimes = file_exists(APPPATH.'config/mimes.php')
? include(APPPATH.'config/mimes.php')
: array();
if (file_exists(APPPATH.'config/'.ENVIRONMENT.'/mimes.php'))
{
$_mimes = array_merge($_mimes, include(APPPATH.'config/'.ENVIRONMENT.'/mimes.php'));
}
}
return $_mimes;
}
}
// ------------------------------------------------------------------------
if ( ! function_exists('is_https'))
{
/**
* Is HTTPS?
*
* Determines if the application is accessed via an encrypted
* (HTTPS) connection.
*
* @return bool
*/
function is_https()
{
if ( ! empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off')
{
return TRUE;
}
elseif (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) === 'https')
{
return TRUE;
}
elseif ( ! empty($_SERVER['HTTP_FRONT_END_HTTPS']) && strtolower($_SERVER['HTTP_FRONT_END_HTTPS']) !== 'off')
{
return TRUE;
}
return FALSE;
}
}
// ------------------------------------------------------------------------
if ( ! function_exists('is_cli'))
{
/**
* Is CLI?
*
* Test to see if a request was made from the command line.
*
* @return bool
*/
function is_cli()
{
return (PHP_SAPI === 'cli' OR defined('STDIN'));
}
}
// ------------------------------------------------------------------------
if ( ! function_exists('show_error'))
{
/**
* Error Handler
*
* This function lets us invoke the exception class and
* display errors using the standard error template located
* in application/views/errors/error_general.php
* This function will send the error page directly to the
* browser and exit.
*
* @param string
* @param int
* @param string
* @return void
*/
function show_error($message, $status_code = 500, $heading = 'An Error Was Encountered')
{
$status_code = abs($status_code);
if ($status_code < 100)
{
$exit_status = $status_code + 9; // 9 is EXIT__AUTO_MIN
$status_code = 500;
}
else
{
$exit_status = 1; // EXIT_ERROR
}
$_error =& load_class('Exceptions', 'core');
echo $_error->show_error($heading, $message, 'error_general', $status_code);
exit($exit_status);
}
}
// ------------------------------------------------------------------------
if ( ! function_exists('show_404'))
{
/**
* 404 Page Handler
*
* This function is similar to the show_error() function above
* However, instead of the standard error template it displays
* 404 errors.
*
* @param string
* @param bool
* @return void
*/
function show_404($page = '', $log_error = TRUE)
{
$_error =& load_class('Exceptions', 'core');
$_error->show_404($page, $log_error);
exit(4); // EXIT_UNKNOWN_FILE
}
}
// ------------------------------------------------------------------------
if ( ! function_exists('log_message'))
{
/**
* Error Logging Interface
*
* We use this as a simple mechanism to access the logging
* class and send messages to be logged.
*
* @param string the error level: 'error', 'debug' or 'info'
* @param string the error message
* @return void
*/
function log_message($level, $message)
{
static $_log;
if ($_log === NULL)
{
// references cannot be directly assigned to static variables, so we use an array
$_log[0] =& load_class('Log', 'core');
}
$_log[0]->write_log($level, $message);
}
}
// ------------------------------------------------------------------------
if ( ! function_exists('set_status_header'))
{
/**
* Set HTTP Status Header
*
* @param int the status code
* @param string
* @return void
*/
function set_status_header($code = 200, $text = '')
{
if (is_cli())
{
return;
}
if (empty($code) OR ! is_numeric($code))
{
show_error('Status codes must be numeric', 500);
}
if (empty($text))
{
is_int($code) OR $code = (int) $code;
$stati = array(
100 => 'Continue',
101 => 'Switching Protocols',
103 => 'Early Hints',
200 => 'OK',
201 => 'Created',
202 => 'Accepted',
203 => 'Non-Authoritative Information',
204 => 'No Content',
205 => 'Reset Content',
206 => 'Partial Content',
207 => 'Multi-Status',
300 => 'Multiple Choices',
301 => 'Moved Permanently',
302 => 'Found',
303 => 'See Other',
304 => 'Not Modified',
305 => 'Use Proxy',
307 => 'Temporary Redirect',
308 => 'Permanent Redirect',
400 => 'Bad Request',
401 => 'Unauthorized',
402 => 'Payment Required',
403 => 'Forbidden',
404 => 'Not Found',
405 => 'Method Not Allowed',
406 => 'Not Acceptable',
407 => 'Proxy Authentication Required',
408 => 'Request Timeout',
409 => 'Conflict',
410 => 'Gone',
411 => 'Length Required',
412 => 'Precondition Failed',
413 => 'Request Entity Too Large',
414 => 'Request-URI Too Long',
415 => 'Unsupported Media Type',
416 => 'Requested Range Not Satisfiable',
417 => 'Expectation Failed',
421 => 'Misdirected Request',
422 => 'Unprocessable Entity',
426 => 'Upgrade Required',
428 => 'Precondition Required',
429 => 'Too Many Requests',
431 => 'Request Header Fields Too Large',
451 => 'Unavailable For Legal Reasons',
500 => 'Internal Server Error',
501 => 'Not Implemented',
502 => 'Bad Gateway',
503 => 'Service Unavailable',
504 => 'Gateway Timeout',
505 => 'HTTP Version Not Supported',
511 => 'Network Authentication Required',
);
if (isset($stati[$code]))
{
$text = $stati[$code];
}
else
{
show_error('No status text available. Please check your status code number or supply your own message text.', 500);
}
}
if (strpos(PHP_SAPI, 'cgi') === 0)
{
header('Status: '.$code.' '.$text, TRUE);
return;
}
$server_protocol = (isset($_SERVER['SERVER_PROTOCOL']) && in_array($_SERVER['SERVER_PROTOCOL'], array('HTTP/1.0', 'HTTP/1.1', 'HTTP/2', 'HTTP/2.0'), TRUE))
? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.1';
header($server_protocol.' '.$code.' '.$text, TRUE, $code);
}
}
// --------------------------------------------------------------------
if ( ! function_exists('_error_handler'))
{
/**
* Error Handler
*
* This is the custom error handler that is declared at the (relative)
* top of CodeIgniter.php. The main reason we use this is to permit
* PHP errors to be logged in our own log files since the user may
* not have access to server logs. Since this function effectively
* intercepts PHP errors, however, we also need to display errors
* based on the current error_reporting level.
* We do that with the use of a PHP error template.
*
* @param int $severity
* @param string $message
* @param string $filepath
* @param int $line
* @return void
*/
function _error_handler($severity, $message, $filepath, $line)
{
$is_error = (((E_ERROR | E_PARSE | E_COMPILE_ERROR | E_CORE_ERROR | E_USER_ERROR) & $severity) === $severity);
// When an error occurred, set the status header to '500 Internal Server Error'
// to indicate to the client something went wrong.
// This can't be done within the $_error->show_php_error method because
// it is only called when the display_errors flag is set (which isn't usually
// the case in a production environment) or when errors are ignored because
// they are above the error_reporting threshold.
if ($is_error)
{
set_status_header(500);
}
// Should we ignore the error? We'll get the current error_reporting
// level and add its bits with the severity bits to find out.
if (($severity & error_reporting()) !== $severity)
{
return;
}
$_error =& load_class('Exceptions', 'core');
$_error->log_exception($severity, $message, $filepath, $line);
// Should we display the error?
if (str_ireplace(array('off', 'none', 'no', 'false', 'null'), '', ini_get('display_errors')))
{
$_error->show_php_error($severity, $message, $filepath, $line);
}
// If the error is fatal, the execution of the script should be stopped because
// errors can't be recovered from. Halting the script conforms with PHP's
// default error handling. See https://secure.php.net/manual/en/errorfunc.constants.php
if ($is_error)
{
exit(1); // EXIT_ERROR
}
}
}
// ------------------------------------------------------------------------
if ( ! function_exists('_exception_handler'))
{
/**
* Exception Handler
*
* Sends uncaught exceptions to the logger and displays them
* only if display_errors is On so that they don't show up in
* production environments.
*
* @param Exception $exception
* @return void
*/
function _exception_handler($exception)
{
$_error =& load_class('Exceptions', 'core');
$_error->log_exception('error', 'Exception: '.$exception->getMessage(), $exception->getFile(), $exception->getLine());
is_cli() OR set_status_header(500);
// Should we display the error?
if (str_ireplace(array('off', 'none', 'no', 'false', 'null'), '', ini_get('display_errors')))
{
$_error->show_exception($exception);
}
exit(1); // EXIT_ERROR
}
}
// ------------------------------------------------------------------------
if ( ! function_exists('_shutdown_handler'))
{
/**
* Shutdown Handler
*
* This is the shutdown handler that is declared at the top
* of CodeIgniter.php. The main reason we use this is to simulate
* a complete custom exception handler.
*
* E_STRICT is purposively neglected because such events may have
* been caught. Duplication or none? None is preferred for now.
*
* @link http://insomanic.me.uk/post/229851073/php-trick-catching-fatal-errors-e-error-with-a
* @return void
*/
function _shutdown_handler()
{
$last_error = error_get_last();
if (isset($last_error) &&
($last_error['type'] & (E_ERROR | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING)))
{
_error_handler($last_error['type'], $last_error['message'], $last_error['file'], $last_error['line']);
}
}
}
// --------------------------------------------------------------------
if ( ! function_exists('remove_invisible_characters'))
{
/**
* Remove Invisible Characters
*
* This prevents sandwiching null characters
* between ascii characters, like Java\0script.
*
* @param string
* @param bool
* @return string
*/
function remove_invisible_characters($str, $url_encoded = TRUE)
{
$non_displayables = array();
// every control character except newline (dec 10),
// carriage return (dec 13) and horizontal tab (dec 09)
if ($url_encoded)
{
$non_displayables[] = '/%0[0-8bcef]/i'; // url encoded 00-08, 11, 12, 14, 15
$non_displayables[] = '/%1[0-9a-f]/i'; // url encoded 16-31
$non_displayables[] = '/%7f/i'; // url encoded 127
}
$non_displayables[] = '/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]+/S'; // 00-08, 11, 12, 14-31, 127
do
{
$str = preg_replace($non_displayables, '', $str, -1, $count);
}
while ($count);
return $str;
}
}
// ------------------------------------------------------------------------
if ( ! function_exists('html_escape'))
{
/**
* Returns HTML escaped variable.
*
* @param mixed $var The input string or array of strings to be escaped.
* @param bool $double_encode $double_encode set to FALSE prevents escaping twice.
* @return mixed The escaped string or array of strings as a result.
*/
function html_escape($var, $double_encode = TRUE)
{
if (empty($var))
{
return $var;
}
if (is_array($var))
{
foreach (array_keys($var) as $key)
{
$var[$key] = html_escape($var[$key], $double_encode);
}
return $var;
}
return htmlspecialchars($var, ENT_QUOTES, config_item('charset'), $double_encode);
}
}
// ------------------------------------------------------------------------
if ( ! function_exists('_stringify_attributes'))
{
/**
* Stringify attributes for use in HTML tags.
*
* Helper function used to convert a string, array, or object
* of attributes to a string.
*
* @param mixed string, array, object
* @param bool
* @return string
*/
function _stringify_attributes($attributes, $js = FALSE)
{
if (empty($attributes))
{
return NULL;
}
if (is_string($attributes))
{
return ' '.$attributes;
}
$attributes = (array) $attributes;
$atts = '';
foreach ($attributes as $key => $val)
{
$atts .= ($js) ? $key.'='.$val.',' : ' '.$key.'="'.$val.'"';
}
return rtrim($atts, ',');
}
}
// ------------------------------------------------------------------------
if ( ! function_exists('function_usable'))
{
/**
* Function usable
*
* Executes a function_exists() check, and if the Suhosin PHP
* extension is loaded - checks whether the function that is
* checked might be disabled in there as well.
*
* This is useful as function_exists() will return FALSE for
* functions disabled via the *disable_functions* php.ini
* setting, but not for *suhosin.executor.func.blacklist* and
* *suhosin.executor.disable_eval*. These settings will just
* terminate script execution if a disabled function is executed.
*
* The above described behavior turned out to be a bug in Suhosin,
* but even though a fix was committed for 0.9.34 on 2012-02-12,
* that version is yet to be released. This function will therefore
* be just temporary, but would probably be kept for a few years.
*
* @link http://www.hardened-php.net/suhosin/
* @param string $function_name Function to check for
* @return bool TRUE if the function exists and is safe to call,
* FALSE otherwise.
*/
function function_usable($function_name)
{
static $_suhosin_func_blacklist;
if (function_exists($function_name))
{
if ( ! isset($_suhosin_func_blacklist))
{
$_suhosin_func_blacklist = extension_loaded('suhosin')
? explode(',', trim(ini_get('suhosin.executor.func.blacklist')))
: array();
}
return ! in_array($function_name, $_suhosin_func_blacklist, TRUE);
}
return FALSE;
}
}
================================================
FILE: system/core/Config.php
================================================
<?php
/**
* CodeIgniter
*
* An open source application development framework for PHP
*
* This content is released under the MIT License (MIT)
*
* Copyright (c) 2019 - 2022, CodeIgniter Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* @package CodeIgniter
* @author EllisLab Dev Team
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
* @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/)
* @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/)
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 1.0.0
* @filesource
*/
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* Config Class
*
* This class contains functions that enable config files to be managed
*
* @package CodeIgniter
* @subpackage Libraries
* @category Libraries
* @author EllisLab Dev Team
* @link https://codeigniter.com/userguide3/libraries/config.html
*/
class CI_Config {
/**
* List of all loaded config values
*
* @var array
*/
public $config = array();
/**
* List of all loaded config files
*
* @var array
*/
public $is_loaded = array();
/**
* List of paths to search when trying to load a config file.
*
* @used-by CI_Loader
* @var array
*/
public $_config_paths = array(APPPATH);
// --------------------------------------------------------------------
/**
* Class constructor
*
* Sets the $config data from the primary config.php file as a class variable.
*
* @return void
*/
public function __construct()
{
$this->config =& get_config();
// Set the base_url automatically if none was provided
if (empty($this->config['base_url']))
{
if (isset($_SERVER['SERVER_ADDR']))
{
if (strpos($_SERVER['SERVER_ADDR'], ':') !== FALSE)
{
$server_addr = '['.$_SERVER['SERVER_ADDR'].']';
}
else
{
$server_addr = $_SERVER['SERVER_ADDR'];
}
$base_url = (is_https() ? 'https' : 'http').'://'.$server_addr
.substr($_SERVER['SCRIPT_NAME'], 0, strpos($_SERVER['SCRIPT_NAME'], basename($_SERVER['SCRIPT_FILENAME'])));
}
else
{
$base_url = 'http://localhost/';
}
$this->set_item('base_url', $base_url);
}
log_message('info', 'Config Class Initialized');
}
// --------------------------------------------------------------------
/**
* Load Config File
*
* @param string $file Configuration file name
* @param bool $use_sections Whether configuration values should be loaded into their own section
* @param bool $fail_gracefully Whether to just return FALSE or display an error message
* @return bool TRUE if the file was loaded correctly or FALSE on failure
*/
public function load($file = '', $use_sections = FALSE, $fail_gracefully = FALSE)
{
$file = ($file === '') ? 'config' : str_replace('.php', '', $file);
$loaded = FALSE;
foreach ($this->_config_paths as $path)
{
foreach (array($file, ENVIRONMENT.DIRECTORY_SEPARATOR.$file) as $location)
{
$file_path = $path.'config/'.$location.'.php';
if (in_array($file_path, $this->is_loaded, TRUE))
{
return TRUE;
}
if ( ! file_exists($file_path))
{
continue;
}
include($file_path);
if ( ! isset($config) OR ! is_array($config))
{
if ($fail_gracefully === TRUE)
{
return FALSE;
}
show_error('Your '.$file_path.' file does not appear to contain a valid configuration array.');
}
if ($use_sections === TRUE)
{
$this->config[$file] = isset($this->config[$file])
? array_merge($this->config[$file], $config)
: $config;
}
else
{
$this->config = array_merge($this->config, $config);
}
$this->is_loaded[] = $file_path;
$config = NULL;
$loaded = TRUE;
log_message('info', 'Config file loaded: '.$file_path);
}
}
if ($loaded === TRUE)
{
return TRUE;
}
elseif ($fail_gracefully === TRUE)
{
return FALSE;
}
show_error('The configuration file '.$file.'.php does not exist.');
}
// --------------------------------------------------------------------
/**
* Fetch a config file item
*
* @param string $item Config item name
* @param string $index Index name
* @return string|null The configuration item or NULL if the item doesn't exist
*/
public function item($item, $index = '')
{
if ($index == '')
{
return isset($this->config[$item]) ? $this->config[$item] : NULL;
}
return isset($this->config[$index], $this->config[$index][$item]) ? $this->config[$index][$item] : NULL;
}
// --------------------------------------------------------------------
/**
* Fetch a config file item with slash appended (if not empty)
*
* @param string $item Config item name
* @return string|null The configuration item or NULL if the item doesn't exist
*/
public function slash_item($item)
{
if ( ! isset($this->config[$item]))
{
return NULL;
}
elseif (trim($this->config[$item]) === '')
{
return '';
}
return rtrim($this->config[$item], '/').'/';
}
// --------------------------------------------------------------------
/**
* Site URL
*
* Returns base_url . index_page [. uri_string]
*
* @uses CI_Config::_uri_string()
*
* @param string|string[] $uri URI string or an array of segments
* @param string $protocol
* @return string
*/
public function site_url($uri = '', $protocol = NULL)
{
$base_url = $this->slash_item('base_url');
if (isset($protocol))
{
// For protocol-relative links
if ($protocol === '')
{
$base_url = substr($base_url, strpos($base_url, '//'));
}
else
{
$base_url = $protocol.substr($base_url, strpos($base_url, '://'));
}
}
if (empty($uri))
{
return $base_url.$this->item('index_page');
}
$uri = $this->_uri_string($uri);
if ($this->item('enable_query_strings') === FALSE)
{
$suffix = isset($this->config['url_suffix']) ? $this->config['url_suffix'] : '';
if ($suffix !== '')
{
if (($offset = strpos($uri, '?')) !== FALSE)
{
$uri = substr($uri, 0, $offset).$suffix.substr($uri, $offset);
}
else
{
$uri .= $suffix;
}
}
return $base_url.$this->slash_item('index_page').$uri;
}
elseif (strpos($uri, '?') === FALSE)
{
$uri = '?'.$uri;
}
return $base_url.$this->item('index_page').$uri;
}
// -------------------------------------------------------------
/**
* Base URL
*
* Returns base_url [. uri_string]
*
* @uses CI_Config::_uri_string()
*
* @param string|string[] $uri URI string or an array of segments
* @param string $protocol
* @return string
*/
public function base_url($uri = '', $protocol = NULL)
{
$base_url = $this->slash_item('base_url');
if (isset($protocol))
{
// For protocol-relative links
if ($protocol === '')
{
$base_url = substr($base_url, strpos($base_url, '//'));
}
else
{
$base_url = $protocol.substr($base_url, strpos($base_url, '://'));
}
}
return $base_url.$this->_uri_string($uri);
}
// -------------------------------------------------------------
/**
* Build URI string
*
* @used-by CI_Config::site_url()
* @used-by CI_Config::base_url()
*
* @param string|string[] $uri URI string or an array of segments
* @return string
*/
protected function _uri_string($uri)
{
if ($this->item('enable_query_strings') === FALSE)
{
is_array($uri) && $uri = implode('/', $uri);
return ltrim($uri, '/');
}
elseif (is_array($uri))
{
return http_build_query($uri);
}
return $uri;
}
// --------------------------------------------------------------------
/**
* Set a config file item
*
* @param string $item Config item key
* @param string $value Config item value
* @return void
*/
public function set_item($item, $value)
{
$this->config[$item] = $value;
}
}
================================================
FILE: system/core/Controller.php
================================================
<?php
/**
* CodeIgniter
*
* An open source application development framework for PHP
*
* This content is released under the MIT License (MIT)
*
* Copyright (c) 2019 - 2022, CodeIgniter Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* @package CodeIgniter
* @author EllisLab Dev Team
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
* @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/)
* @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/)
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 1.0.0
* @filesource
*/
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* Application Controller Class
*
* This class object is the super class that every library in
* CodeIgniter will be assigned to.
*
* @package CodeIgniter
* @subpackage Libraries
* @category Libraries
* @author EllisLab Dev Team
* @link https://codeigniter.com/userguide3/general/controllers.html
*/
class CI_Controller {
/**
* Reference to the CI singleton
*
* @var object
*/
private static $instance;
/**
* CI_Loader
*
* @var CI_Loader
*/
public $load;
/**
* Class constructor
*
* @return void
*/
public function __construct()
{
self::$instance =& $this;
// Assign all the class objects that were instantiated by the
// bootstrap file (CodeIgniter.php) to local class variables
// so that CI can run as one big super object.
foreach (is_loaded() as $var => $class)
{
$this->$var =& load_class($class);
}
$this->load =& load_class('Loader', 'core');
$this->load->initialize();
log_message('info', 'Controller Class Initialized');
}
// --------------------------------------------------------------------
/**
* Get the CI singleton
*
* @static
* @return object
*/
public static function &get_instance()
{
return self::$instance;
}
}
================================================
FILE: system/core/Exceptions.php
================================================
<?php
/**
* CodeIgniter
*
* An open source application development framework for PHP
*
* This content is released under the MIT License (MIT)
*
* Copyright (c) 2019 - 2022, CodeIgniter Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* @package CodeIgniter
* @author EllisLab Dev Team
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
* @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/)
* @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/)
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 1.0.0
* @filesource
*/
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* Exceptions Class
*
* @package CodeIgniter
* @subpackage Libraries
* @category Exceptions
* @author EllisLab Dev Team
* @link https://codeigniter.com/userguide3/libraries/exceptions.html
*/
class CI_Exceptions {
/**
* Nesting level of the output buffering mechanism
*
* @var int
*/
public $ob_level;
/**
* List of available error levels
*
* @var array
*/
public $levels = array(
E_ERROR => 'Error',
E_WARNING => 'Warning',
E_PARSE => 'Parsing Error',
E_NOTICE => 'Notice',
E_CORE_ERROR => 'Core Error',
E_CORE_WARNING => 'Core Warning',
E_COMPILE_ERROR => 'Compile Error',
E_COMPILE_WARNING => 'Compile Warning',
E_USER_ERROR => 'User Error',
E_USER_WARNING => 'User Warning',
E_USER_NOTICE => 'User Notice',
E_STRICT => 'Runtime Notice'
);
/**
* Class constructor
*
* @return void
*/
public function __construct()
{
$this->ob_level = ob_get_level();
// Note: Do not log messages from this constructor.
}
// --------------------------------------------------------------------
/**
* Exception Logger
*
* Logs PHP generated error messages
*
* @param int $severity Log level
* @param string $message Error message
* @param string $filepath File path
* @param int $line Line number
* @return void
*/
public function log_exception($severity, $message, $filepath, $line)
{
$severity = isset($this->levels[$severity]) ? $this->levels[$severity] : $severity;
log_message('error', 'Severity: '.$severity.' --> '.$message.' '.$filepath.' '.$line);
}
// --------------------------------------------------------------------
/**
* 404 Error Handler
*
* @uses CI_Exceptions::show_error()
*
* @param string $page Page URI
* @param bool $log_error Whether to log the error
* @return void
*/
public function show_404($page = '', $log_error = TRUE)
{
if (is_cli())
{
$heading = 'Not Found';
$message = 'The controller/method pair you requested was not found.';
}
else
{
$heading = '404 Page Not Found';
$message = 'The page you requested was not found.';
}
// By default we log this, but allow a dev to skip it
if ($log_error)
{
log_message('error', $heading.': '.$page);
}
echo $this->show_error($heading, $message, 'error_404', 404);
exit(4); // EXIT_UNKNOWN_FILE
}
// --------------------------------------------------------------------
/**
* General Error Page
*
* Takes an error message as input (either as a string or an array)
* and displays it using the specified template.
*
* @param string $heading Page heading
* @param string|string[] $message Error message
* @param string $template Template name
* @param int $status_code (default: 500)
*
* @return string Error page output
*/
public function show_error($heading, $message, $template = 'error_general', $status_code = 500)
{
$templates_path = config_item('error_views_path');
if (empty($templates_path))
{
$templates_path = VIEWPATH.'errors'.DIRECTORY_SEPARATOR;
}
else
{
$templates_path = rtrim($templates_path, '/\\').DIRECTORY_SEPARATOR;
}
if (is_cli())
{
$message = "\t".(is_array($message) ? implode("\n\t", $message) : $message);
$template = 'cli'.DIRECTORY_SEPARATOR.$template;
}
else
{
set_status_header($status_code);
$message = '<p>'.(is_array($message) ? implode('</p><p>', $message) : $message).'</p>';
$template = 'html'.DIRECTORY_SEPARATOR.$template;
}
if (ob_get_level() > $this->ob_level + 1)
{
ob_end_flush();
}
ob_start();
include($templates_path.$template.'.php');
$buffer = ob_get_contents();
ob_end_clean();
return $buffer;
}
// --------------------------------------------------------------------
public function show_exception($exception)
{
$templates_path = config_item('error_views_path');
if (empty($templates_path))
{
$templates_path = VIEWPATH.'errors'.DIRECTORY_SEPARATOR;
}
else
{
$templates_path = rtrim($templates_path, '/\\').DIRECTORY_SEPARATOR;
}
$message = $exception->getMessage();
if (empty($message))
{
$message = '(null)';
}
if (is_cli())
{
$templates_path .= 'cli'.DIRECTORY_SEPARATOR;
}
else
{
$templates_path .= 'html'.DIRECTORY_SEPARATOR;
}
if (ob_get_level() > $this->ob_level + 1)
{
ob_end_flush();
}
ob_start();
include($templates_path.'error_exception.php');
$buffer = ob_get_contents();
ob_end_clean();
echo $buffer;
}
// --------------------------------------------------------------------
/**
* Native PHP error handler
*
* @param int $severity Error level
* @param string $message Error message
* @param string $filepath File path
* @param int $line Line number
* @return void
*/
public function show_php_error($severity, $message, $filepath, $line)
{
$templates_path = config_item('error_views_path');
if (empty($templates_path))
{
$templates_path = VIEWPATH.'errors'.DIRECTORY_SEPARATOR;
}
else
{
$templates_path = rtrim($templates_path, '/\\').DIRECTORY_SEPARATOR;
}
$severity = isset($this->levels[$severity]) ? $this->levels[$severity] : $severity;
// For safety reasons we don't show the full file path in non-CLI requests
if ( ! is_cli())
{
$filepath = str_replace('\\', '/', $filepath);
if (FALSE !== strpos($filepath, '/'))
{
$x = explode('/', $filepath);
$filepath = $x[count($x)-2].'/'.end($x);
}
$template = 'html'.DIRECTORY_SEPARATOR.'error_php';
}
else
{
$template = 'cli'.DIRECTORY_SEPARATOR.'error_php';
}
if (ob_get_level() > $this->ob_level + 1)
{
ob_end_flush();
}
ob_start();
include($templates_path.$template.'.php');
$buffer = ob_get_contents();
ob_end_clean();
echo $buffer;
}
}
================================================
FILE: system/core/Hooks.php
================================================
<?php
/**
* CodeIgniter
*
* An open source application development framework for PHP
*
* This content is released under the MIT License (MIT)
*
* Copyright (c) 2019 - 2022, CodeIgniter Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* @package CodeIgniter
* @author EllisLab Dev Team
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
* @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/)
* @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/)
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 1.0.0
* @filesource
*/
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* Hooks Class
*
* Provides a mechanism to extend the base system without hacking.
*
* @package CodeIgniter
* @subpackage Libraries
* @category Libraries
* @author EllisLab Dev Team
* @link https://codeigniter.com/userguide3/general/hooks.html
*/
class CI_Hooks {
/**
* Determines whether hooks are enabled
*
* @var bool
*/
public $enabled = FALSE;
/**
* List of all hooks set in config/hooks.php
*
* @var array
*/
public $hooks = array();
/**
* Array with class objects to use hooks methods
*
* @var array
*/
protected $_objects = array();
/**
* In progress flag
*
* Determines whether hook is in progress, used to prevent infinte loops
*
* @var bool
*/
protected $_in_progress = FALSE;
/**
* Class constructor
*
* @param CI_Config $config
* @return void
*/
public function __construct(CI_Config $config)
{
log_message('info', 'Hooks Class Initialized');
// If hooks are not enabled in the config file
// there is nothing else to do
if ($config->item('enable_hooks') === FALSE)
{
return;
}
// Grab the "hooks" definition file.
if (file_exists(APPPATH.'config/hooks.php'))
{
include(APPPATH.'config/hooks.php');
}
if (file_exists(APPPATH.'config/'.ENVIRONMENT.'/hooks.php'))
{
include(APPPATH.'config/'.ENVIRONMENT.'/hooks.php');
}
// If there are no hooks, we're done.
if ( ! isset($hook) OR ! is_array($hook))
{
return;
}
$this->hooks =& $hook;
$this->enabled = TRUE;
}
// --------------------------------------------------------------------
/**
* Call Hook
*
* Calls a particular hook. Called by CodeIgniter.php.
*
* @uses CI_Hooks::_run_hook()
*
* @param string $which Hook name
* @return bool TRUE on success or FALSE on failure
*/
public function call_hook($which = '')
{
if ( ! $this->enabled OR ! isset($this->hooks[$which]))
{
return FALSE;
}
if (is_array($this->hooks[$which]) && ! isset($this->hooks[$which]['function']))
{
foreach ($this->hooks[$which] as $val)
{
$this->_run_hook($val);
}
}
else
{
$this->_run_hook($this->hooks[$which]);
}
return TRUE;
}
// --------------------------------------------------------------------
/**
* Run Hook
*
* Runs a particular hook
*
* @param array $data Hook details
* @return bool TRUE on success or FALSE on failure
*/
protected function _run_hook($data)
{
// Closures/lambda functions and array($object, 'method') callables
if (is_callable($data))
{
is_array($data)
? $data[0]->{$data[1]}()
: $data();
return TRUE;
}
elseif ( ! is_array($data))
{
return FALSE;
}
// -----------------------------------
// Safety - Prevents run-away loops
// -----------------------------------
// If the script being called happens to have the same
// hook call within it a loop can happen
if ($this->_in_progress === TRUE)
{
return;
}
// -----------------------------------
// Set file path
// -----------------------------------
if ( ! isset($data['filepath'], $data['filename']))
{
return FALSE;
}
$filepath = APPPATH.$data['filepath'].'/'.$data['filename'];
if ( ! file_exists($filepath))
{
return FALSE;
}
// Determine and class and/or function names
$class = empty($data['class']) ? FALSE : $data['class'];
$function = empty($data['function']) ? FALSE : $data['function'];
$params = isset($data['params']) ? $data['params'] : '';
if (empty($function))
{
return FALSE;
}
// Set the _in_progress flag
$this->_in_progress = TRUE;
// Call the requested class and/or function
if ($class !== FALSE)
{
// The object is stored?
if (isset($this->_objects[$class]))
{
if (method_exists($this->_objects[$class], $function))
{
$this->_objects[$class]->$function($params);
}
else
{
return $this->_in_progress = FALSE;
}
}
else
{
class_exists($class, FALSE) OR require_once($filepath);
if ( ! class_exists($class, FALSE) OR ! method_exists($class, $function))
{
return $this->_in_progress = FALSE;
}
// Store the object and execute the method
$this->_objects[$class] = new $class();
$this->_objects[$class]->$function($params);
}
}
else
{
function_exists($function) OR require_once($filepath);
if ( ! function_exists($function))
{
return $this->_in_progress = FALSE;
}
$function($params);
}
$this->_in_progress = FALSE;
return TRUE;
}
}
================================================
FILE: system/core/Input.php
================================================
<?php
/**
* CodeIgniter
*
* An open source application development framework for PHP
*
* This content is released under the MIT License (MIT)
*
* Copyright (c) 2019 - 2022, CodeIgniter Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* @package CodeIgniter
* @author EllisLab Dev Team
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
* @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/)
* @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/)
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 1.0.0
* @filesource
*/
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* Input Class
*
* Pre-processes global input data for security
*
* @package CodeIgniter
* @subpackage Libraries
* @category Input
* @author EllisLab Dev Team
* @link https://codeigniter.com/userguide3/libraries/input.html
*/
class CI_Input {
/**
* IP address of the current user
*
* @var string
*/
protected $ip_address = FALSE;
/**
* List of all HTTP request headers
*
* @var array
*/
protected $headers = array();
/**
* Raw input stream data
*
* Holds a cache of php://input contents
*
* @var string
*/
protected $_raw_input_stream;
/**
* Parsed input stream data
*
* Parsed from php://input at runtime
*
* @see CI_Input::input_stream()
* @var array
*/
protected $_input_stream;
/**
* CI_Security instance
*
* Used for the optional $xss_filter parameter that most
* getter methods have here.
*
* @var CI_Security
*/
protected $security;
// --------------------------------------------------------------------
/**
* Class constructor
*
* Determines whether to globally enable the XSS processing
* and whether to allow the $_GET array.
*
* @return void
*/
public function __construct(CI_Security &$security)
{
$this->security = $security;
log_message('info', 'Input Class Initialized');
}
// --------------------------------------------------------------------
/**
* Fetch from array
*
* Internal method used to retrieve values from global arrays.
*
* @param array &$array $_GET, $_POST, $_COOKIE, $_SERVER, etc.
* @param mixed $index Index for item to be fetched from $array
* @param bool $xss_clean Whether to apply XSS filtering
* @return mixed
*/
protected function _fetch_from_array(&$array, $index = NULL, $xss_clean = FALSE)
{
// If $index is NULL, it means that the whole $array is requested
isset($index) OR $index = array_keys($array);
// allow fetching multiple keys at once
if (is_array($index))
{
$output = array();
foreach ($index as $key)
{
$output[$key] = $this->_fetch_from_array($array, $key, $xss_clean);
}
return $output;
}
if (isset($array[$index]))
{
$value = $array[$index];
}
elseif (($count = preg_match_all('/(?:^[^\[]+)|\[[^]]*\]/', $index, $matches)) > 1) // Does the index contain array notation
{
$value = $array;
for ($i = 0; $i < $count; $i++)
{
$key = trim($matches[0][$i], '[]');
if ($key === '') // Empty notation will return the value as array
{
break;
}
if (isset($value[$key]))
{
$value = $value[$key];
}
else
{
return NULL;
}
}
}
else
{
return NULL;
}
return ($xss_clean === TRUE)
? $this->security->xss_clean($value)
: $value;
}
// --------------------------------------------------------------------
/**
* Fetch an item from the GET array
*
* @param mixed $index Index for item to be fetched from $_GET
* @param bool $xss_clean Whether to apply XSS filtering
* @return mixed
*/
public function get($index = NULL, $xss_clean = FALSE)
{
return $this->_fetch_from_array($_GET, $index, $xss_clean);
}
// --------------------------------------------------------------------
/**
* Fetch an item from the POST array
*
* @param mixed $index Index for item to be fetched from $_POST
* @param bool $xss_clean Whether to apply XSS filtering
* @return mixed
*/
public function post($index = NULL, $xss_clean = FALSE)
{
return $this->_fetch_from_array($_POST, $index, $xss_clean);
}
// --------------------------------------------------------------------
/**
* Fetch an item from POST data with fallback to GET
*
* @param string $index Index for item to be fetched from $_POST or $_GET
* @param bool $xss_clean Whether to apply XSS filtering
* @return mixed
*/
public function post_get($index, $xss_clean = FALSE)
{
$output = $this->post($index, $xss_clean);
return isset($output) ? $output : $this->get($index, $xss_clean);
}
// --------------------------------------------------------------------
/**
* Fetch an item from GET data with fallback to POST
*
* @param string $index Index for item to be fetched from $_GET or $_POST
* @param bool $xss_clean Whether to apply XSS filtering
* @return mixed
*/
public function get_post($index, $xss_clean = FALSE)
{
$output = $this->get($index, $xss_clean);
return isset($output) ? $output : $this->post($index, $xss_clean);
}
// --------------------------------------------------------------------
/**
* Fetch an item from the COOKIE array
*
* @param mixed $index Index for item to be fetched from $_COOKIE
* @param bool $xss_clean Whether to apply XSS filtering
* @return mixed
*/
public function cookie($index = NULL, $xss_clean = FALSE)
{
return $this->_fetch_from_array($_COOKIE, $index, $xss_clean);
}
// --------------------------------------------------------------------
/**
* Fetch an item from the SERVER array
*
* @param mixed $index Index for item to be fetched from $_SERVER
* @param bool $xss_clean Whether to apply XSS filtering
* @return mixed
*/
public function server($index, $xss_clean = FALSE)
{
return $this->_fetch_from_array($_SERVER, $index, $xss_clean);
}
// ------------------------------------------------------------------------
/**
* Fetch an item from the php://input stream
*
* Useful when you need to access PUT, DELETE or PATCH request data.
*
* @param string $index Index for item to be fetched
* @param bool $xss_clean Whether to apply XSS filtering
* @return mixed
*/
public function input_stream($index = NULL, $xss_clean = FALSE)
{
// Prior to PHP 5.6, the input stream can only be read once,
// so we'll need to check if we have already done that first.
if ( ! is_array($this->_input_stream))
{
// $this->raw_input_stream will trigger __get().
parse_str($this->raw_input_stream, $this->_input_stream);
is_array($this->_input_stream) OR $this->_input_stream = array();
}
return $this->_fetch_from_array($this->_input_stream, $index, $xss_clean);
}
// ------------------------------------------------------------------------
/**
* Set cookie
*
* Accepts an arbitrary number of parameters (up to 7) or an associative
* array in the first parameter containing all the values.
*
* @param string|mixed[] $name Cookie name or an array containing parameters
* @param string $value Cookie value
* @param int $expire Cookie expiration time in seconds
* @param string $domain Cookie domain (e.g.: '.yourdomain.com')
* @param string $path Cookie path (default: '/')
* @param string $prefix Cookie name prefix
* @param bool $secure Whether to only transfer cookies via SSL
* @param bool $httponly Whether to only makes the cookie accessible via HTTP (no javascript)
* @param string $samesite SameSite attribute
* @return void
*/
public function set_cookie($name, $value = '', $expire = 0, $domain = '', $path = '/', $prefix = '', $secure = NULL, $httponly = NULL, $samesite = NULL)
{
if (is_array($name))
{
// always leave 'name' in last place, as the loop will break otherwise, due to $$item
foreach (array('value', 'expire', 'domain', 'path', 'prefix', 'secure', 'httponly', 'samesite', 'name') as $item)
{
if (isset($name[$item]))
{
$$item = $name[$item];
}
}
}
if ($prefix === '' && config_item('cookie_prefix') !== '')
{
$prefix = config_item('cookie_prefix');
}
if ($domain == '' && config_item('cookie_domain') != '')
{
$domain = config_item('cookie_domain');
}
if ($path === '/' && config_item('cookie_path') !== '/')
{
$path = config_item('cookie_path');
}
$secure = ($secure === NULL && config_item('cookie_secure') !== NULL)
? (bool) config_item('cookie_secure')
: (bool) $secure;
$httponly = ($httponly === NULL && config_item('cookie_httponly') !== NULL)
? (bool) config_item('cookie_httponly')
: (bool) $httponly;
if ( ! is_numeric($expire) OR $expire < 0)
{
$expire = 1;
}
else
{
$expire = ($expire > 0) ? time() + $expire : 0;
}
isset($samesite) OR $samesite = config_item('cookie_samesite');
if (isset($samesite))
{
$samesite = ucfirst(strtolower($samesite));
in_array($samesite, array('Lax', 'Strict', 'None'), TRUE) OR $samesite = 'Lax';
}
else
{
$samesite = 'Lax';
}
if ($samesite === 'None' && ! $secure)
{
log_message('error', $name.' cookie sent with SameSite=None, but without Secure attribute.');
}
if ( ! is_php('7.3'))
{
$maxage = $expire - time();
if ($maxage < 1)
{
$maxage = 0;
}
$cookie_header = 'Set-Cookie: '.$prefix.$name.'='.rawurlencode($value);
$cookie_header .= ($expire === 0 ? '' : '; Expires='.gmdate('D, d-M-Y H:i:s T', $expire)).'; Max-Age='.$maxage;
$cookie_header .= '; Path='.$path.($domain !== '' ? '; Domain='.$domain : '');
$cookie_header .= ($secure ? '; Secure' : '').($httponly ? '; HttpOnly' : '').'; SameSite='.$samesite;
header($cookie_header);
return;
}
$setcookie_options = array(
'expires' => $expire,
'path' => $path,
'domain' => $domain,
'secure' => $secure,
'httponly' => $httponly,
'samesite' => $samesite,
);
setcookie($prefix.$name, $value, $setcookie_options);
}
// --------------------------------------------------------------------
/**
* Fetch the IP Address
*
* Determines and validates the visitor's IP address.
*
* @return string IP address
*/
public function ip_address()
{
if ($this->ip_address !== FALSE)
{
return $this->ip_address;
}
$proxy_ips = config_item('proxy_ips');
if ( ! empty($proxy_ips) && ! is_array($proxy_ips))
{
$proxy_ips = explode(',', str_replace(' ', '', $proxy_ips));
}
$this->ip_address = $this->server('REMOTE_ADDR');
if ($proxy_ips)
{
foreach (array('HTTP_X_FORWARDED_FOR', 'HTTP_CLIENT_IP', 'HTTP_X_CLIENT_IP', 'HTTP_X_CLUSTER_CLIENT_IP') as $header)
{
if (($spoof = $this->server($header)) !== NULL)
{
// Some proxies typically list the whole chain of IP
// addresses through which the client has reached us.
// e.g. client_ip, proxy_ip1, proxy_ip2, etc.
sscanf($spoof, '%[^,]', $spoof);
if ( ! $this->valid_ip($spoof))
{
$spoof = NULL;
}
else
{
break;
}
}
}
if ($spoof)
{
for ($i = 0, $c = count($proxy_ips); $i < $c; $i++)
{
// Check if we have an IP address or a subnet
if (strpos($proxy_ips[$i], '/') === FALSE)
{
// An IP address (and not a subnet) is specified.
// We can compare right away.
if ($proxy_ips[$i] === $this->ip_address)
{
$this->ip_address = $spoof;
break;
}
continue;
}
// We have a subnet ... now the heavy lifting begins
isset($separator) OR $separator = $this->valid_ip($this->ip_address, 'ipv6') ? ':' : '.';
// If the proxy entry doesn't match the IP protocol - skip it
if (strpos($proxy_ips[$i], $separator) === FALSE)
{
continue;
}
// Convert the REMOTE_ADDR IP address to binary, if needed
if ( ! isset($ip, $sprintf))
{
if ($separator === ':')
{
// Make sure we're have the "full" IPv6 format
$ip = explode(':',
str_replace('::',
str_repeat(':', 9 - substr_count($this->ip_address, ':')),
$this->ip_address
)
);
for ($j = 0; $j < 8; $j++)
{
$ip[$j] = intval($ip[$j], 16);
}
$sprintf = '%016b%016b%016b%016b%016b%016b%016b%016b';
}
else
{
$ip = explode('.', $this->ip_address);
$sprintf = '%08b%08b%08b%08b';
}
$ip = vsprintf($sprintf, $ip);
}
/
gitextract_gk2rayde/
├── .editorconfig
├── .gitattributes
├── .github/
│ └── workflows/
│ └── test-phpunit.yml
├── .gitignore
├── DCO.txt
├── application/
│ ├── .htaccess
│ ├── cache/
│ │ └── index.html
│ ├── config/
│ │ ├── autoload.php
│ │ ├── config.php
│ │ ├── constants.php
│ │ ├── database.php
│ │ ├── doctypes.php
│ │ ├── foreign_chars.php
│ │ ├── hooks.php
│ │ ├── index.html
│ │ ├── memcached.php
│ │ ├── migration.php
│ │ ├── mimes.php
│ │ ├── profiler.php
│ │ ├── routes.php
│ │ └── user_agents.php
│ ├── controllers/
│ │ ├── Welcome.php
│ │ └── index.html
│ ├── core/
│ │ └── index.html
│ ├── helpers/
│ │ └── index.html
│ ├── hooks/
│ │ └── index.html
│ ├── index.html
│ ├── language/
│ │ ├── english/
│ │ │ └── index.html
│ │ └── index.html
│ ├── libraries/
│ │ └── index.html
│ ├── logs/
│ │ └── index.html
│ ├── models/
│ │ └── index.html
│ ├── third_party/
│ │ └── index.html
│ └── views/
│ ├── errors/
│ │ ├── cli/
│ │ │ ├── error_404.php
│ │ │ ├── error_db.php
│ │ │ ├── error_exception.php
│ │ │ ├── error_general.php
│ │ │ ├── error_php.php
│ │ │ └── index.html
│ │ ├── html/
│ │ │ ├── error_404.php
│ │ │ ├── error_db.php
│ │ │ ├── error_exception.php
│ │ │ ├── error_general.php
│ │ │ ├── error_php.php
│ │ │ └── index.html
│ │ └── index.html
│ ├── index.html
│ └── welcome_message.php
├── build-release.sh
├── composer.json
├── contributing.md
├── index.php
├── license.txt
├── phpdoc.dist.xml
├── readme.rst
├── system/
│ ├── .htaccess
│ ├── core/
│ │ ├── Benchmark.php
│ │ ├── CodeIgniter.php
│ │ ├── Common.php
│ │ ├── Config.php
│ │ ├── Controller.php
│ │ ├── Exceptions.php
│ │ ├── Hooks.php
│ │ ├── Input.php
│ │ ├── Lang.php
│ │ ├── Loader.php
│ │ ├── Log.php
│ │ ├── Model.php
│ │ ├── Output.php
│ │ ├── Router.php
│ │ ├── Security.php
│ │ ├── URI.php
│ │ ├── Utf8.php
│ │ ├── compat/
│ │ │ ├── hash.php
│ │ │ ├── index.html
│ │ │ ├── mbstring.php
│ │ │ ├── password.php
│ │ │ └── standard.php
│ │ └── index.html
│ ├── database/
│ │ ├── DB.php
│ │ ├── DB_cache.php
│ │ ├── DB_driver.php
│ │ ├── DB_forge.php
│ │ ├── DB_query_builder.php
│ │ ├── DB_result.php
│ │ ├── DB_utility.php
│ │ ├── drivers/
│ │ │ ├── cubrid/
│ │ │ │ ├── cubrid_driver.php
│ │ │ │ ├── cubrid_forge.php
│ │ │ │ ├── cubrid_result.php
│ │ │ │ ├── cubrid_utility.php
│ │ │ │ └── index.html
│ │ │ ├── ibase/
│ │ │ │ ├── ibase_driver.php
│ │ │ │ ├── ibase_forge.php
│ │ │ │ ├── ibase_result.php
│ │ │ │ ├── ibase_utility.php
│ │ │ │ └── index.html
│ │ │ ├── index.html
│ │ │ ├── mssql/
│ │ │ │ ├── index.html
│ │ │ │ ├── mssql_driver.php
│ │ │ │ ├── mssql_forge.php
│ │ │ │ ├── mssql_result.php
│ │ │ │ └── mssql_utility.php
│ │ │ ├── mysql/
│ │ │ │ ├── index.html
│ │ │ │ ├── mysql_driver.php
│ │ │ │ ├── mysql_forge.php
│ │ │ │ ├── mysql_result.php
│ │ │ │ └── mysql_utility.php
│ │ │ ├── mysqli/
│ │ │ │ ├── index.html
│ │ │ │ ├── mysqli_driver.php
│ │ │ │ ├── mysqli_forge.php
│ │ │ │ ├── mysqli_result.php
│ │ │ │ └── mysqli_utility.php
│ │ │ ├── oci8/
│ │ │ │ ├── index.html
│ │ │ │ ├── oci8_driver.php
│ │ │ │ ├── oci8_forge.php
│ │ │ │ ├── oci8_result.php
│ │ │ │ └── oci8_utility.php
│ │ │ ├── odbc/
│ │ │ │ ├── index.html
│ │ │ │ ├── odbc_driver.php
│ │ │ │ ├── odbc_forge.php
│ │ │ │ ├── odbc_result.php
│ │ │ │ └── odbc_utility.php
│ │ │ ├── pdo/
│ │ │ │ ├── index.html
│ │ │ │ ├── pdo_driver.php
│ │ │ │ ├── pdo_forge.php
│ │ │ │ ├── pdo_result.php
│ │ │ │ ├── pdo_utility.php
│ │ │ │ └── subdrivers/
│ │ │ │ ├── index.html
│ │ │ │ ├── pdo_4d_driver.php
│ │ │ │ ├── pdo_4d_forge.php
│ │ │ │ ├── pdo_cubrid_driver.php
│ │ │ │ ├── pdo_cubrid_forge.php
│ │ │ │ ├── pdo_dblib_driver.php
│ │ │ │ ├── pdo_dblib_forge.php
│ │ │ │ ├── pdo_firebird_driver.php
│ │ │ │ ├── pdo_firebird_forge.php
│ │ │ │ ├── pdo_ibm_driver.php
│ │ │ │ ├── pdo_ibm_forge.php
│ │ │ │ ├── pdo_informix_driver.php
│ │ │ │ ├── pdo_informix_forge.php
│ │ │ │ ├── pdo_mysql_driver.php
│ │ │ │ ├── pdo_mysql_forge.php
│ │ │ │ ├── pdo_oci_driver.php
│ │ │ │ ├── pdo_oci_forge.php
│ │ │ │ ├── pdo_odbc_driver.php
│ │ │ │ ├── pdo_odbc_forge.php
│ │ │ │ ├── pdo_pgsql_driver.php
│ │ │ │ ├── pdo_pgsql_forge.php
│ │ │ │ ├── pdo_sqlite_driver.php
│ │ │ │ ├── pdo_sqlite_forge.php
│ │ │ │ ├── pdo_sqlsrv_driver.php
│ │ │ │ └── pdo_sqlsrv_forge.php
│ │ │ ├── postgre/
│ │ │ │ ├── index.html
│ │ │ │ ├── postgre_driver.php
│ │ │ │ ├── postgre_forge.php
│ │ │ │ ├── postgre_result.php
│ │ │ │ └── postgre_utility.php
│ │ │ ├── sqlite3/
│ │ │ │ ├── index.html
│ │ │ │ ├── sqlite3_driver.php
│ │ │ │ ├── sqlite3_forge.php
│ │ │ │ ├── sqlite3_result.php
│ │ │ │ └── sqlite3_utility.php
│ │ │ └── sqlsrv/
│ │ │ ├── index.html
│ │ │ ├── sqlsrv_driver.php
│ │ │ ├── sqlsrv_forge.php
│ │ │ ├── sqlsrv_result.php
│ │ │ └── sqlsrv_utility.php
│ │ └── index.html
│ ├── fonts/
│ │ └── index.html
│ ├── helpers/
│ │ ├── array_helper.php
│ │ ├── captcha_helper.php
│ │ ├── cookie_helper.php
│ │ ├── date_helper.php
│ │ ├── directory_helper.php
│ │ ├── download_helper.php
│ │ ├── file_helper.php
│ │ ├── form_helper.php
│ │ ├── html_helper.php
│ │ ├── index.html
│ │ ├── inflector_helper.php
│ │ ├── language_helper.php
│ │ ├── number_helper.php
│ │ ├── path_helper.php
│ │ ├── security_helper.php
│ │ ├── string_helper.php
│ │ ├── text_helper.php
│ │ ├── typography_helper.php
│ │ ├── url_helper.php
│ │ └── xml_helper.php
│ ├── index.html
│ ├── language/
│ │ ├── english/
│ │ │ ├── calendar_lang.php
│ │ │ ├── date_lang.php
│ │ │ ├── db_lang.php
│ │ │ ├── email_lang.php
│ │ │ ├── form_validation_lang.php
│ │ │ ├── ftp_lang.php
│ │ │ ├── imglib_lang.php
│ │ │ ├── index.html
│ │ │ ├── migration_lang.php
│ │ │ ├── number_lang.php
│ │ │ ├── pagination_lang.php
│ │ │ ├── profiler_lang.php
│ │ │ ├── unit_test_lang.php
│ │ │ └── upload_lang.php
│ │ └── index.html
│ └── libraries/
│ ├── Cache/
│ │ ├── Cache.php
│ │ ├── drivers/
│ │ │ ├── Cache_apc.php
│ │ │ ├── Cache_apcu.php
│ │ │ ├── Cache_dummy.php
│ │ │ ├── Cache_file.php
│ │ │ ├── Cache_memcached.php
│ │ │ ├── Cache_redis.php
│ │ │ ├── Cache_wincache.php
│ │ │ └── index.html
│ │ └── index.html
│ ├── Calendar.php
│ ├── Driver.php
│ ├── Email.php
│ ├── Encryption.php
│ ├── Form_validation.php
│ ├── Ftp.php
│ ├── Image_lib.php
│ ├── Migration.php
│ ├── Pagination.php
│ ├── Parser.php
│ ├── Profiler.php
│ ├── Session/
│ │ ├── CI_Session_driver_interface.php
│ │ ├── OldSessionWrapper.php
│ │ ├── PHP8SessionWrapper.php
│ │ ├── Session.php
│ │ ├── SessionUpdateTimestampHandlerInterface.php
│ │ ├── Session_driver.php
│ │ ├── drivers/
│ │ │ ├── Session_database_driver.php
│ │ │ ├── Session_files_driver.php
│ │ │ ├── Session_memcached_driver.php
│ │ │ ├── Session_redis_driver.php
│ │ │ └── index.html
│ │ └── index.html
│ ├── Table.php
│ ├── Trackback.php
│ ├── Typography.php
│ ├── Unit_test.php
│ ├── Upload.php
│ ├── User_agent.php
│ ├── Xmlrpc.php
│ ├── Xmlrpcs.php
│ ├── Zip.php
│ └── index.html
├── tests/
│ ├── Bootstrap.php
│ ├── README.md
│ ├── codeigniter/
│ │ ├── Setup_test.php
│ │ ├── core/
│ │ │ ├── Benchmark_test.php
│ │ │ ├── Common_test.php
│ │ │ ├── Config_test.php
│ │ │ ├── Input_test.php
│ │ │ ├── Lang_test.php
│ │ │ ├── Loader_test.php
│ │ │ ├── Log_test.php
│ │ │ ├── Model_test.php
│ │ │ ├── Output_test.php
│ │ │ ├── Security_test.php
│ │ │ ├── URI_test.php
│ │ │ ├── Utf8_test.php
│ │ │ └── compat/
│ │ │ ├── hash_test.php
│ │ │ ├── mbstring_test.php
│ │ │ ├── password_test.php
│ │ │ └── standard_test.php
│ │ ├── database/
│ │ │ ├── DB_driver_test.php
│ │ │ ├── DB_test.php
│ │ │ └── query_builder/
│ │ │ ├── count_test.php
│ │ │ ├── delete_test.php
│ │ │ ├── distinct_test.php
│ │ │ ├── empty_test.php
│ │ │ ├── escape_test.php
│ │ │ ├── from_test.php
│ │ │ ├── get_test.php
│ │ │ ├── group_test.php
│ │ │ ├── insert_test.php
│ │ │ ├── join_test.php
│ │ │ ├── like_test.php
│ │ │ ├── limit_test.php
│ │ │ ├── order_test.php
│ │ │ ├── select_test.php
│ │ │ ├── truncate_test.php
│ │ │ ├── update_test.php
│ │ │ └── where_test.php
│ │ ├── helpers/
│ │ │ ├── array_helper_test.php
│ │ │ ├── captcha_helper_test.php
│ │ │ ├── cookie_helper_test.php
│ │ │ ├── date_helper_test.php
│ │ │ ├── directory_helper_test.php
│ │ │ ├── download_helper_test.php
│ │ │ ├── file_helper_test.php
│ │ │ ├── form_helper_test.php
│ │ │ ├── html_helper_test.php
│ │ │ ├── inflector_helper_test.php
│ │ │ ├── language_helper_test.php
│ │ │ ├── number_helper_test.php
│ │ │ ├── path_helper_test.php
│ │ │ ├── security_helper_test.php
│ │ │ ├── string_helper_test.php
│ │ │ ├── text_helper_test.php
│ │ │ ├── url_helper_test.php
│ │ │ └── xml_helper_test.php
│ │ └── libraries/
│ │ ├── Calendar_test.php
│ │ ├── Driver_test.php
│ │ ├── Encryption_test.php
│ │ ├── Form_validation_test.php
│ │ ├── Parser_test.php
│ │ ├── Session_test.php
│ │ ├── Table_test.php
│ │ ├── Typography_test.php
│ │ ├── Upload_test.php
│ │ └── Useragent_test.php
│ ├── mocks/
│ │ ├── autoloader.php
│ │ ├── ci_testcase.php
│ │ ├── ci_testconfig.php
│ │ ├── core/
│ │ │ ├── common.php
│ │ │ ├── security.php
│ │ │ └── uri.php
│ │ ├── database/
│ │ │ ├── config/
│ │ │ │ ├── mysql.php
│ │ │ │ ├── mysqli.php
│ │ │ │ ├── pdo/
│ │ │ │ │ ├── mysql.php
│ │ │ │ │ ├── pgsql.php
│ │ │ │ │ └── sqlite.php
│ │ │ │ ├── pgsql.php
│ │ │ │ └── sqlite.php
│ │ │ ├── db/
│ │ │ │ └── driver.php
│ │ │ ├── db.php
│ │ │ ├── drivers/
│ │ │ │ ├── mysql.php
│ │ │ │ ├── mysqli.php
│ │ │ │ ├── pdo.php
│ │ │ │ ├── postgre.php
│ │ │ │ └── sqlite.php
│ │ │ └── schema/
│ │ │ └── skeleton.php
│ │ └── libraries/
│ │ ├── driver.php
│ │ ├── encryption.php
│ │ ├── session.php
│ │ └── table.php
│ ├── phpunit.xml
│ └── travis/
│ ├── mysql.phpunit.xml
│ ├── mysqli.phpunit.xml
│ ├── pdo/
│ │ ├── mysql.phpunit.xml
│ │ ├── pgsql.phpunit.xml
│ │ └── sqlite.phpunit.xml
│ ├── pgsql.phpunit.xml
│ └── sqlite.phpunit.xml
└── user_guide_src/
├── Makefile
├── README.rst
├── cilexer/
│ ├── README
│ ├── cilexer/
│ │ ├── __init__.py
│ │ └── cilexer.py
│ └── setup.py
└── source/
├── DCO.rst
├── _themes/
│ └── sphinx_rtd_theme/
│ ├── LICENSE
│ ├── __init__.py
│ ├── breadcrumbs.html
│ ├── footer.html
│ ├── layout.html
│ ├── layout_old.html
│ ├── pulldown.html
│ ├── search.html
│ ├── searchbox.html
│ ├── static/
│ │ ├── css/
│ │ │ ├── badge_only.css
│ │ │ ├── citheme.css
│ │ │ └── theme.css
│ │ ├── fonts/
│ │ │ └── FontAwesome.otf
│ │ └── js/
│ │ ├── oldtheme.js
│ │ └── theme.js
│ ├── theme.conf
│ └── versions.html
├── changelog.rst
├── conf.py
├── contributing/
│ └── index.rst
├── database/
│ ├── caching.rst
│ ├── call_function.rst
│ ├── configuration.rst
│ ├── connecting.rst
│ ├── db_driver_reference.rst
│ ├── examples.rst
│ ├── forge.rst
│ ├── helpers.rst
│ ├── index.rst
│ ├── metadata.rst
│ ├── queries.rst
│ ├── query_builder.rst
│ ├── results.rst
│ ├── transactions.rst
│ └── utilities.rst
├── documentation/
│ └── index.rst
├── general/
│ ├── alternative_php.rst
│ ├── ancillary_classes.rst
│ ├── autoloader.rst
│ ├── caching.rst
│ ├── cli.rst
│ ├── common_functions.rst
│ ├── compatibility_functions.rst
│ ├── controllers.rst
│ ├── core_classes.rst
│ ├── creating_drivers.rst
│ ├── creating_libraries.rst
│ ├── credits.rst
│ ├── drivers.rst
│ ├── environments.rst
│ ├── errors.rst
│ ├── helpers.rst
│ ├── hooks.rst
│ ├── index.rst
│ ├── libraries.rst
│ ├── managing_apps.rst
│ ├── models.rst
│ ├── profiling.rst
│ ├── requirements.rst
│ ├── reserved_names.rst
│ ├── routing.rst
│ ├── security.rst
│ ├── styleguide.rst
│ ├── urls.rst
│ ├── views.rst
│ └── welcome.rst
├── helpers/
│ ├── array_helper.rst
│ ├── captcha_helper.rst
│ ├── cookie_helper.rst
│ ├── date_helper.rst
│ ├── directory_helper.rst
│ ├── download_helper.rst
│ ├── file_helper.rst
│ ├── form_helper.rst
│ ├── html_helper.rst
│ ├── index.rst
│ ├── inflector_helper.rst
│ ├── language_helper.rst
│ ├── number_helper.rst
│ ├── path_helper.rst
│ ├── security_helper.rst
│ ├── string_helper.rst
│ ├── text_helper.rst
│ ├── typography_helper.rst
│ ├── url_helper.rst
│ └── xml_helper.rst
├── index.rst
├── installation/
│ ├── downloads.rst
│ ├── index.rst
│ ├── troubleshooting.rst
│ ├── upgrade_120.rst
│ ├── upgrade_130.rst
│ ├── upgrade_131.rst
│ ├── upgrade_132.rst
│ ├── upgrade_133.rst
│ ├── upgrade_140.rst
│ ├── upgrade_141.rst
│ ├── upgrade_150.rst
│ ├── upgrade_152.rst
│ ├── upgrade_153.rst
│ ├── upgrade_154.rst
│ ├── upgrade_160.rst
│ ├── upgrade_161.rst
│ ├── upgrade_162.rst
│ ├── upgrade_163.rst
│ ├── upgrade_170.rst
│ ├── upgrade_171.rst
│ ├── upgrade_172.rst
│ ├── upgrade_200.rst
│ ├── upgrade_201.rst
│ ├── upgrade_202.rst
│ ├── upgrade_203.rst
│ ├── upgrade_210.rst
│ ├── upgrade_211.rst
│ ├── upgrade_212.rst
│ ├── upgrade_213.rst
│ ├── upgrade_214.rst
│ ├── upgrade_220.rst
│ ├── upgrade_221.rst
│ ├── upgrade_222.rst
│ ├── upgrade_223.rst
│ ├── upgrade_300.rst
│ ├── upgrade_301.rst
│ ├── upgrade_302.rst
│ ├── upgrade_303.rst
│ ├── upgrade_304.rst
│ ├── upgrade_305.rst
│ ├── upgrade_306.rst
│ ├── upgrade_310.rst
│ ├── upgrade_311.rst
│ ├── upgrade_3110.rst
│ ├── upgrade_3111.rst
│ ├── upgrade_3112.rst
│ ├── upgrade_3113.rst
│ ├── upgrade_3114.rst
│ ├── upgrade_312.rst
│ ├── upgrade_313.rst
│ ├── upgrade_314.rst
│ ├── upgrade_315.rst
│ ├── upgrade_316.rst
│ ├── upgrade_317.rst
│ ├── upgrade_318.rst
│ ├── upgrade_319.rst
│ ├── upgrade_320.rst
│ ├── upgrade_b11.rst
│ └── upgrading.rst
├── libraries/
│ ├── benchmark.rst
│ ├── caching.rst
│ ├── calendar.rst
│ ├── config.rst
│ ├── email.rst
│ ├── encryption.rst
│ ├── file_uploading.rst
│ ├── form_validation.rst
│ ├── ftp.rst
│ ├── image_lib.rst
│ ├── index.rst
│ ├── input.rst
│ ├── language.rst
│ ├── loader.rst
│ ├── migration.rst
│ ├── output.rst
│ ├── pagination.rst
│ ├── parser.rst
│ ├── security.rst
│ ├── sessions.rst
│ ├── table.rst
│ ├── trackback.rst
│ ├── typography.rst
│ ├── unit_testing.rst
│ ├── uri.rst
│ ├── user_agent.rst
│ ├── xmlrpc.rst
│ └── zip.rst
├── license.rst
├── overview/
│ ├── appflow.rst
│ ├── at_a_glance.rst
│ ├── features.rst
│ ├── getting_started.rst
│ ├── goals.rst
│ ├── index.rst
│ └── mvc.rst
└── tutorial/
├── conclusion.rst
├── create_news_items.rst
├── index.rst
├── news_section.rst
└── static_pages.rst
SYMBOL INDEX (2332 symbols across 239 files)
FILE: application/controllers/Welcome.php
class Welcome (line 4) | class Welcome extends CI_Controller {
method index (line 21) | public function index()
FILE: system/core/Benchmark.php
class CI_Benchmark (line 53) | class CI_Benchmark {
method mark (line 71) | public function mark($name)
method elapsed_time (line 96) | public function elapsed_time($point1 = '', $point2 = '', $decimals = 4)
method memory_usage (line 129) | public function memory_usage()
FILE: system/core/CodeIgniter.php
function get_instance (line 317) | function &get_instance()
FILE: system/core/Common.php
function is_php (line 63) | function is_php($version)
function is_really_writable (line 91) | function is_really_writable($file)
function load_class (line 141) | function &load_class($class, $directory = 'libraries', $param = NULL)
function is_loaded (line 212) | function &is_loaded($class = '')
function get_config (line 238) | function &get_config(Array $replace = array())
function config_item (line 293) | function config_item($item)
function get_mimes (line 316) | function &get_mimes()
function is_https (line 348) | function is_https()
function is_cli (line 379) | function is_cli()
function show_error (line 403) | function show_error($message, $status_code = 500, $heading = 'An Error W...
function show_404 (line 437) | function show_404($page = '', $log_error = TRUE)
function log_message (line 459) | function log_message($level, $message)
function set_status_header (line 484) | function set_status_header($code = 200, $text = '')
function _error_handler (line 600) | function _error_handler($severity, $message, $filepath, $line)
function _exception_handler (line 655) | function _exception_handler($exception)
function _shutdown_handler (line 688) | function _shutdown_handler()
function remove_invisible_characters (line 713) | function remove_invisible_characters($str, $url_encoded = TRUE)
function html_escape (line 749) | function html_escape($var, $double_encode = TRUE)
function _stringify_attributes (line 784) | function _stringify_attributes($attributes, $js = FALSE)
function function_usable (line 835) | function function_usable($function_name)
FILE: system/core/Config.php
class CI_Config (line 52) | class CI_Config {
method __construct (line 85) | public function __construct()
method load (line 127) | public function load($file = '', $use_sections = FALSE, $fail_graceful...
method item (line 198) | public function item($item, $index = '')
method slash_item (line 216) | public function slash_item($item)
method site_url (line 243) | public function site_url($uri = '', $protocol = NULL)
method base_url (line 306) | public function base_url($uri = '', $protocol = NULL)
method _uri_string (line 337) | protected function _uri_string($uri)
method set_item (line 361) | public function set_item($item, $value)
FILE: system/core/Controller.php
class CI_Controller (line 53) | class CI_Controller {
method __construct (line 74) | public function __construct()
method get_instance (line 99) | public static function &get_instance()
FILE: system/core/Exceptions.php
class CI_Exceptions (line 50) | class CI_Exceptions {
method __construct (line 84) | public function __construct()
method log_exception (line 103) | public function log_exception($severity, $message, $filepath, $line)
method show_404 (line 120) | public function show_404($page = '', $log_error = TRUE)
method show_error (line 158) | public function show_error($heading, $message, $template = 'error_gene...
method show_exception (line 195) | public function show_exception($exception)
method show_php_error (line 245) | public function show_php_error($severity, $message, $filepath, $line)
FILE: system/core/Hooks.php
class CI_Hooks (line 52) | class CI_Hooks {
method __construct (line 90) | public function __construct(CI_Config $config)
method call_hook (line 134) | public function call_hook($which = '')
method _run_hook (line 166) | protected function _run_hook($data)
FILE: system/core/Input.php
class CI_Input (line 52) | class CI_Input {
method __construct (line 107) | public function __construct(CI_Security &$security)
method _fetch_from_array (line 125) | protected function _fetch_from_array(&$array, $index = NULL, $xss_clea...
method get (line 186) | public function get($index = NULL, $xss_clean = FALSE)
method post (line 200) | public function post($index = NULL, $xss_clean = FALSE)
method post_get (line 214) | public function post_get($index, $xss_clean = FALSE)
method get_post (line 229) | public function get_post($index, $xss_clean = FALSE)
method cookie (line 244) | public function cookie($index = NULL, $xss_clean = FALSE)
method server (line 258) | public function server($index, $xss_clean = FALSE)
method input_stream (line 274) | public function input_stream($index = NULL, $xss_clean = FALSE)
method set_cookie (line 307) | public function set_cookie($name, $value = '', $expire = 0, $domain = ...
method ip_address (line 405) | public function ip_address()
method valid_ip (line 542) | public function valid_ip($ip, $which = '')
method user_agent (line 567) | public function user_agent($xss_clean = FALSE)
method request_headers (line 580) | public function request_headers($xss_clean = FALSE)
method get_request_header (line 624) | public function get_request_header($index, $xss_clean = FALSE)
method is_ajax_request (line 658) | public function is_ajax_request()
method method (line 674) | public function method($upper = FALSE)
method __get (line 691) | public function __get($name)
FILE: system/core/Lang.php
class CI_Lang (line 50) | class CI_Lang {
method __construct (line 71) | public function __construct()
method load (line 89) | public function load($langfile, $idiom = '', $return = FALSE, $add_suf...
method line (line 191) | public function line($line, $log_errors = TRUE)
FILE: system/core/Loader.php
class CI_Loader (line 52) | class CI_Loader {
method __construct (line 144) | public function __construct()
method initialize (line 163) | public function initialize()
method is_loaded (line 180) | public function is_loaded($class)
method library (line 198) | public function library($library, $params = NULL, $object_name = NULL)
method model (line 242) | public function model($model, $name = '', $db_conn = FALSE)
method database (line 382) | public function database($params = '', $return = FALSE)
method dbutil (line 418) | public function dbutil($db = NULL, $return = FALSE)
method dbforge (line 450) | public function dbforge($db = NULL, $return = FALSE)
method view (line 499) | public function view($view, $vars = array(), $return = FALSE)
method file (line 513) | public function file($path, $return = FALSE)
method vars (line 532) | public function vars($vars, $val = '')
method clear_vars (line 555) | public function clear_vars()
method get_var (line 571) | public function get_var($key)
method get_vars (line 585) | public function get_vars()
method helper (line 598) | public function helper($helpers = array())
method helpers (line 675) | public function helpers($helpers = array())
method language (line 691) | public function language($files, $lang = '')
method config (line 710) | public function config($file, $use_sections = FALSE, $fail_gracefully ...
method driver (line 729) | public function driver($library, $params = NULL, $object_name = NULL)
method add_package_path (line 785) | public function add_package_path($path, $view_cascade = TRUE)
method get_package_paths (line 812) | public function get_package_paths($include_base = FALSE)
method remove_package_path (line 829) | public function remove_package_path($path = '')
method _ci_load (line 888) | protected function _ci_load($_ci_data)
method _ci_load_library (line 1035) | protected function _ci_load_library($class, $params = NULL, $object_na...
method _ci_load_stock_library (line 1130) | protected function _ci_load_stock_library($library_name, $file_path, $...
method _ci_init_library (line 1217) | protected function _ci_init_library($class, $prefix, $config = FALSE, ...
method _ci_autoloader (line 1317) | protected function _ci_autoloader()
method _ci_prepare_view_vars (line 1399) | protected function _ci_prepare_view_vars($vars)
method _ci_get_component (line 1429) | protected function &_ci_get_component($component)
FILE: system/core/Log.php
class CI_Log (line 50) | class CI_Log {
method __construct (line 122) | public function __construct()
method write_log (line 173) | public function write_log($level, $msg)
method _format_line (line 255) | protected function _format_line($level, $date, $message)
method strlen (line 268) | protected static function strlen($str)
method substr (line 285) | protected static function substr($str, $start, $length = NULL)
FILE: system/core/Model.php
class CI_Model (line 50) | class CI_Model {
method __get (line 60) | public function __get($key)
FILE: system/core/Output.php
class CI_Output (line 52) | class CI_Output {
method __construct (line 140) | public function __construct()
method get_output (line 166) | public function get_output()
method set_output (line 181) | public function set_output($output)
method append_output (line 197) | public function append_output($output)
method set_header (line 217) | public function set_header($header, $replace = TRUE)
method set_content_type (line 241) | public function set_content_type($mime_type, $charset = NULL)
method get_content_type (line 280) | public function get_content_type()
method get_header (line 301) | public function get_header($header)
method set_status_header (line 343) | public function set_status_header($code = 200, $text = '')
method enable_profiler (line 357) | public function enable_profiler($val = TRUE)
method set_profiler_sections (line 374) | public function set_profiler_sections($sections)
method cache (line 398) | public function cache($time)
method _display (line 420) | public function _display($output = NULL)
method _write_cache (line 558) | public function _write_cache($output)
method _display_cache (line 661) | public function _display_cache(&$CFG, &$URI)
method delete_cache (line 737) | public function delete_cache($uri = '')
method set_cache_header (line 792) | public function set_cache_header($last_modified, $expiration)
method strlen (line 816) | protected static function strlen($str)
method substr (line 833) | protected static function substr($str, $start, $length = NULL)
FILE: system/core/Router.php
class CI_Router (line 52) | class CI_Router {
method __construct (line 125) | public function __construct($routing = NULL)
method _set_routing (line 156) | protected function _set_routing()
method _set_request (line 249) | protected function _set_request($segments = array())
method _set_default_controller (line 291) | protected function _set_default_controller()
method _validate_request (line 333) | protected function _validate_request($segments)
method _parse_routes (line 371) | protected function _parse_routes()
method set_class (line 435) | public function set_class($class)
method set_method (line 448) | public function set_method($method)
method set_directory (line 462) | public function set_directory($dir, $append = FALSE)
FILE: system/core/Security.php
class CI_Security (line 50) | class CI_Security {
method __construct (line 173) | public function __construct($charset)
method csrf_verify (line 210) | public function csrf_verify()
method csrf_set_cookie (line 267) | public function csrf_set_cookie()
method csrf_show_error (line 318) | public function csrf_show_error()
method get_csrf_hash (line 331) | public function get_csrf_hash()
method get_csrf_token_name (line 344) | public function get_csrf_token_name()
method xss_clean (line 377) | public function xss_clean($str, $is_image = FALSE)
method xss_hash (line 610) | public function xss_hash()
method get_random_bytes (line 631) | public function get_random_bytes($length)
method entity_decode (line 699) | public function entity_decode($str, $charset = NULL)
method sanitize_filename (line 751) | public function sanitize_filename($str, $relative_path = FALSE)
method strip_image_tags (line 781) | public function strip_image_tags($str)
method _urldecodespaces (line 802) | protected function _urldecodespaces($matches)
method _compact_exploded_words (line 823) | protected function _compact_exploded_words($matches)
method _sanitize_naughty_html (line 839) | protected function _sanitize_naughty_html($matches)
method _js_link_removal (line 934) | protected function _js_link_removal($match)
method _js_img_removal (line 962) | protected function _js_img_removal($match)
method _convert_attribute (line 984) | protected function _convert_attribute($match)
method _filter_attributes (line 1001) | protected function _filter_attributes($str)
method _decode_entity (line 1024) | protected function _decode_entity($match)
method _do_never_allowed (line 1047) | protected function _do_never_allowed($str)
method _csrf_set_hash (line 1066) | protected function _csrf_set_hash()
FILE: system/core/URI.php
class CI_URI (line 52) | class CI_URI {
method __construct (line 100) | public function __construct(CI_Config $config)
method _set_uri_string (line 148) | protected function _set_uri_string($str, $is_cli = FALSE)
method _parse_request_uri (line 216) | protected function _parse_request_uri()
method _parse_query_string (line 274) | protected function _parse_query_string()
method _parse_argv (line 303) | protected function _parse_argv()
method _remove_relative_directory (line 319) | protected function _remove_relative_directory($uri)
method filter_uri (line 345) | public function filter_uri(&$str)
method segment (line 363) | public function segment($n, $no_result = NULL)
method rsegment (line 383) | public function rsegment($n, $no_result = NULL)
method uri_to_assoc (line 410) | public function uri_to_assoc($n = 3, $default = array())
method ruri_to_assoc (line 428) | public function ruri_to_assoc($n = 3, $default = array())
method _uri_to_assoc (line 447) | protected function _uri_to_assoc($n = 3, $default = array(), $which = ...
method assoc_to_uri (line 515) | public function assoc_to_uri($array)
method slash_segment (line 538) | public function slash_segment($n, $where = 'trailing')
method slash_rsegment (line 554) | public function slash_rsegment($n, $where = 'trailing')
method _slash_segment (line 574) | protected function _slash_segment($n, $where = 'trailing', $which = 's...
method segment_array (line 597) | public function segment_array()
method rsegment_array (line 609) | public function rsegment_array()
method total_segments (line 621) | public function total_segments()
method total_rsegments (line 633) | public function total_rsegments()
method uri_string (line 645) | public function uri_string()
method ruri_string (line 657) | public function ruri_string()
FILE: system/core/Utf8.php
class CI_Utf8 (line 52) | class CI_Utf8 {
method __construct (line 61) | public function __construct($charset)
method clean_string (line 91) | public function clean_string($str)
method safe_ascii_for_xml (line 120) | public function safe_ascii_for_xml($str)
method convert_to_utf8 (line 136) | public function convert_to_utf8($str, $encoding)
method is_ascii (line 160) | public function is_ascii($str)
FILE: system/core/compat/hash.php
function hash_equals (line 71) | function hash_equals($known_string, $user_string)
function hash_pbkdf2 (line 121) | function hash_pbkdf2($algo, $password, $salt, $iterations, $length = 0, ...
FILE: system/core/compat/mbstring.php
function mb_strlen (line 74) | function mb_strlen($str, $encoding = NULL)
function mb_strpos (line 103) | function mb_strpos($haystack, $needle, $offset = 0, $encoding = NULL)
function mb_substr (line 132) | function mb_substr($str, $start, $length = NULL, $encoding = NULL)
FILE: system/core/compat/password.php
function password_get_info (line 75) | function password_get_info($hash)
function password_hash (line 96) | function password_hash($password, $algo, array $options = array())
function password_needs_rehash (line 204) | function password_needs_rehash($hash, $algo, array $options = array())
function password_verify (line 237) | function password_verify($password, $hash)
FILE: system/core/compat/standard.php
function array_column (line 71) | function array_column(array $array, $column_key, $index_key = NULL)
FILE: system/database/DB.php
function DB (line 50) | function &DB($params = '')
FILE: system/database/DB_cache.php
class CI_DB_Cache (line 48) | class CI_DB_Cache {
method __construct (line 75) | public function __construct(&$db)
method check_path (line 93) | public function check_path($path = '')
method read (line 141) | public function read($sql)
method write (line 164) | public function write($sql, $object)
method delete (line 194) | public function delete($segment_one = '', $segment_two = '')
method delete_all (line 217) | public function delete_all()
FILE: system/database/DB_driver.php
class CI_DB_driver (line 54) | abstract class CI_DB_driver {
method __construct (line 366) | public function __construct($params)
method initialize (line 387) | public function initialize()
method db_connect (line 448) | public function db_connect()
method db_pconnect (line 460) | public function db_pconnect()
method reconnect (line 478) | public function reconnect()
method db_select (line 492) | public function db_select()
method error (line 504) | public function error()
method platform (line 516) | public function platform()
method version (line 531) | public function version()
method _version (line 554) | protected function _version()
method query (line 575) | public function query($sql, $binds = FALSE, $return_object = NULL)
method simple_query (line 727) | public function simple_query($sql)
method trans_off (line 741) | public function trans_off()
method trans_strict (line 761) | public function trans_strict($mode = TRUE)
method trans_start (line 774) | public function trans_start($test_mode = FALSE)
method trans_complete (line 791) | public function trans_complete()
method trans_status (line 825) | public function trans_status()
method trans_active (line 837) | public function trans_active()
method trans_begin (line 850) | public function trans_begin($test_mode = FALSE)
method trans_commit (line 885) | public function trans_commit()
method trans_rollback (line 908) | public function trans_rollback()
method compile_binds (line 933) | public function compile_binds($sql, $binds)
method is_write_type (line 997) | public function is_write_type($sql)
method elapsed_time (line 1010) | public function elapsed_time($decimals = 6)
method total_queries (line 1022) | public function total_queries()
method last_query (line 1034) | public function last_query()
method escape (line 1050) | public function escape($str)
method escape_str (line 1082) | public function escape_str($str, $like = FALSE)
method escape_like_str (line 1120) | public function escape_like_str($str)
method _escape_str (line 1133) | protected function _escape_str($str)
method primary (line 1149) | public function primary($table)
method count_all (line 1166) | public function count_all($table = '')
method list_tables (line 1192) | public function list_tables($constrain_by_prefix = FALSE)
method table_exists (line 1247) | public function table_exists($table_name)
method list_fields (line 1260) | public function list_fields($table)
method field_exists (line 1305) | public function field_exists($field_name, $table_name)
method field_data (line 1318) | public function field_data($table)
method escape_identifiers (line 1335) | public function escape_identifiers($item, $split = TRUE)
method insert_string (line 1398) | public function insert_string($table, $data)
method _insert (line 1423) | protected function _insert($table, $keys, $values)
method update_string (line 1438) | public function update_string($table, $data, $where)
method _update (line 1469) | protected function _update($table, $values)
method _has_operator (line 1490) | protected function _has_operator($str)
method _get_operator (line 1503) | protected function _get_operator($str)
method call_function (line 1542) | public function call_function($function)
method cache_set_path (line 1569) | public function cache_set_path($path = '')
method cache_on (line 1581) | public function cache_on()
method cache_off (line 1593) | public function cache_off()
method cache_delete (line 1607) | public function cache_delete($segment_one = '', $segment_two = '')
method cache_delete_all (line 1621) | public function cache_delete_all()
method _cache_init (line 1635) | protected function _cache_init()
method close (line 1657) | public function close()
method _close (line 1675) | protected function _close()
method display_error (line 1690) | public function display_error($error = '', $swap = '', $native = FALSE)
method protect_identifiers (line 1763) | public function protect_identifiers($item, $prefix_single = FALSE, $pr...
method _reset_select (line 1936) | protected function _reset_select()
FILE: system/database/DB_forge.php
class CI_DB_forge (line 48) | abstract class CI_DB_forge {
method __construct (line 168) | public function __construct(&$db)
method create_database (line 182) | public function create_database($db_name)
method drop_database (line 209) | public function drop_database($db_name)
method add_key (line 241) | public function add_key($key, $primary = FALSE)
method add_field (line 279) | public function add_field($field)
method create_table (line 323) | public function create_table($table, $if_not_exists = FALSE, array $at...
method _create_table (line 381) | protected function _create_table($table, $if_not_exists, $attributes)
method _create_table_attr (line 433) | protected function _create_table_attr($attributes)
method drop_table (line 457) | public function drop_table($table_name, $if_exists = FALSE)
method _drop_table (line 495) | protected function _drop_table($table, $if_exists)
method rename_table (line 526) | public function rename_table($table_name, $new_table_name)
method add_column (line 564) | public function add_column($table, $field)
method drop_column (line 601) | public function drop_column($table, $column_name)
method modify_column (line 621) | public function modify_column($table, $field)
method _alter_table (line 664) | protected function _alter_table($alter_type, $table, $field)
method _process_fields (line 696) | protected function _process_fields($create_table = FALSE)
method _process_column (line 799) | protected function _process_column($field)
method _attr_type (line 820) | protected function _attr_type(&$attributes)
method _attr_unsigned (line 843) | protected function _attr_unsigned(&$attributes, &$field)
method _attr_default (line 884) | protected function _attr_default(&$attributes, &$field)
method _attr_unique (line 929) | protected function _attr_unique(&$attributes, &$field)
method _attr_auto_increment (line 946) | protected function _attr_auto_increment(&$attributes, &$field)
method _process_primary_keys (line 962) | protected function _process_primary_keys($table)
method _process_indexes (line 991) | protected function _process_indexes($table)
method _reset (line 1033) | protected function _reset()
FILE: system/database/DB_query_builder.php
class CI_DB_query_builder (line 53) | abstract class CI_DB_query_builder extends CI_DB_driver {
method select (line 285) | public function select($select = '*', $escape = NULL)
method select_max (line 327) | public function select_max($select = '', $alias = '')
method select_min (line 343) | public function select_min($select = '', $alias = '')
method select_avg (line 359) | public function select_avg($select = '', $alias = '')
method select_sum (line 375) | public function select_sum($select = '', $alias = '')
method _max_min_avg_sum (line 395) | protected function _max_min_avg_sum($select = '', $alias = '', $type =...
method _create_alias_from_table (line 436) | protected function _create_alias_from_table($item)
method distinct (line 457) | public function distinct($val = TRUE)
method from (line 473) | public function from($from)
method join (line 527) | public function join($table, $cond, $type = '', $escape = NULL)
method where (line 615) | public function where($key, $value = NULL, $escape = NULL)
method or_where (line 633) | public function or_where($key, $value = NULL, $escape = NULL)
method _wh (line 655) | protected function _wh($qb_key, $key, $value = NULL, $type = 'AND ', $...
method where_in (line 721) | public function where_in($key, array $values, $escape = NULL)
method or_where_in (line 739) | public function or_where_in($key, array $values, $escape = NULL)
method where_not_in (line 757) | public function where_not_in($key, array $values, $escape = NULL)
method or_where_not_in (line 775) | public function or_where_not_in($key, array $values, $escape = NULL)
method having_in (line 793) | public function having_in($key, array $values, $escape = NULL)
method or_having_in (line 811) | public function or_having_in($key, array $values, $escape = NULL)
method having_not_in (line 829) | public function having_not_in($key, array $values, $escape = NULL)
method or_having_not_in (line 847) | public function or_having_not_in($key, array $values, $escape = NULL)
method _wh_in (line 874) | protected function _wh_in($qb_key, $key, array $values, $not = FALSE, ...
method like (line 939) | public function like($field, $match = '', $side = 'both', $escape = NULL)
method not_like (line 958) | public function not_like($field, $match = '', $side = 'both', $escape ...
method or_like (line 977) | public function or_like($field, $match = '', $side = 'both', $escape =...
method or_not_like (line 996) | public function or_not_like($field, $match = '', $side = 'both', $esca...
method _like (line 1019) | protected function _like($field, $match = '', $type = 'AND ', $side = ...
method group_start (line 1084) | public function group_start($not = '', $type = 'AND ')
method or_group_start (line 1112) | public function or_group_start()
method not_group_start (line 1124) | public function not_group_start()
method or_not_group_start (line 1136) | public function or_not_group_start()
method group_end (line 1148) | public function group_end()
method _group_get_type (line 1179) | protected function _group_get_type($type)
method group_by (line 1199) | public function group_by($by, $escape = NULL)
method having (line 1242) | public function having($key, $value = NULL, $escape = NULL)
method or_having (line 1259) | public function or_having($key, $value = NULL, $escape = NULL)
method order_by (line 1274) | public function order_by($orderby, $direction = '', $escape = NULL)
method limit (line 1332) | public function limit($value, $offset = 0)
method offset (line 1348) | public function offset($offset)
method _limit (line 1364) | protected function _limit($sql)
method set (line 1381) | public function set($key, $value = '', $escape = NULL)
method get_compiled_select (line 1412) | public function get_compiled_select($table = '', $reset = TRUE)
method get (line 1443) | public function get($table = '', $limit = NULL, $offset = NULL)
method count_all_results (line 1473) | public function count_all_results($table = '', $reset = TRUE)
method get_where (line 1524) | public function get_where($table = '', $where = NULL, $limit = NULL, $...
method insert_batch (line 1558) | public function insert_batch($table, $set = NULL, $escape = NULL, $bat...
method _insert_batch (line 1613) | protected function _insert_batch($table, $keys, $values)
method set_insert_batch (line 1628) | public function set_insert_batch($key, $value = '', $escape = NULL)
method get_compiled_insert (line 1687) | public function get_compiled_insert($table = '', $reset = TRUE)
method insert (line 1722) | public function insert($table = '', $set = NULL, $escape = NULL)
method _validate_insert (line 1758) | protected function _validate_insert($table = '')
method replace (line 1788) | public function replace($table = '', $set = NULL)
method _replace (line 1828) | protected function _replace($table, $keys, $values)
method _from_tables (line 1845) | protected function _from_tables()
method get_compiled_update (line 1861) | public function get_compiled_update($table = '', $reset = TRUE)
method update (line 1894) | public function update($table = '', $set = NULL, $where = NULL, $limit...
method _validate_update (line 1936) | protected function _validate_update($table)
method update_batch (line 1967) | public function update_batch($table, $set = NULL, $index = NULL, $batc...
method _update_batch (line 2032) | protected function _update_batch($table, $values, $index)
method set_update_batch (line 2071) | public function set_update_batch($key, $index = '', $escape = NULL)
method empty_table (line 2120) | public function empty_table($table = '')
method truncate (line 2153) | public function truncate($table = '')
method _truncate (line 2187) | protected function _truncate($table)
method get_compiled_delete (line 2203) | public function get_compiled_delete($table = '', $reset = TRUE)
method delete (line 2224) | public function delete($table = '', $where = '', $limit = NULL, $reset...
method _delete (line 2288) | protected function _delete($table)
method dbprefix (line 2304) | public function dbprefix($table = '')
method set_dbprefix (line 2324) | public function set_dbprefix($prefix = '')
method _track_aliases (line 2339) | protected function _track_aliases($table)
method _compile_select (line 2390) | protected function _compile_select($select_override = FALSE)
method _compile_wh (line 2463) | protected function _compile_wh($qb_key)
method _compile_group_by (line 2538) | protected function _compile_group_by()
method _compile_order_by (line 2574) | protected function _compile_order_by()
method _object_to_array (line 2609) | protected function _object_to_array($object)
method _object_to_array_batch (line 2639) | protected function _object_to_array_batch($object)
method start_cache (line 2675) | public function start_cache()
method stop_cache (line 2690) | public function stop_cache()
method flush_cache (line 2705) | public function flush_cache()
method _merge_cache (line 2734) | protected function _merge_cache()
method _is_literal (line 2781) | protected function _is_literal($str)
method reset_query (line 2810) | public function reset_query()
method _reset_run (line 2825) | protected function _reset_run($qb_reset_items)
method _reset_select (line 2840) | protected function _reset_select()
method _reset_write (line 2867) | protected function _reset_write()
FILE: system/database/DB_result.php
class CI_DB_result (line 52) | class CI_DB_result {
method __construct (line 118) | public function __construct(&$driver_object)
method num_rows (line 131) | public function num_rows()
method result (line 157) | public function result($type = 'object')
method custom_result_object (line 179) | public function custom_result_object($class_name)
method result_object (line 234) | public function result_object()
method result_array (line 275) | public function result_array()
method row (line 320) | public function row($n = 0, $type = 'object')
method set_row (line 351) | public function set_row($key, $value = NULL)
method custom_row_object (line 383) | public function custom_row_object($n, $type)
method row_object (line 408) | public function row_object($n = 0)
method row_array (line 432) | public function row_array($n = 0)
method first_row (line 456) | public function first_row($type = 'object')
method last_row (line 470) | public function last_row($type = 'object')
method next_row (line 484) | public function next_row($type = 'object')
method previous_row (line 505) | public function previous_row($type = 'object')
method unbuffered_row (line 528) | public function unbuffered_row($type = 'object')
method num_fields (line 563) | public function num_fields()
method list_fields (line 579) | public function list_fields()
method field_data (line 595) | public function field_data()
method free_result (line 609) | public function free_result()
method data_seek (line 628) | public function data_seek($n = 0)
method _fetch_assoc (line 644) | protected function _fetch_assoc()
method _fetch_object (line 661) | protected function _fetch_object($class_name = 'stdClass')
FILE: system/database/DB_utility.php
class CI_DB_utility (line 48) | abstract class CI_DB_utility {
method __construct (line 88) | public function __construct(&$db)
method list_databases (line 101) | public function list_databases()
method database_exists (line 137) | public function database_exists($database_name)
method optimize_table (line 150) | public function optimize_table($table_name)
method optimize_database (line 174) | public function optimize_database()
method repair_table (line 211) | public function repair_table($table_name)
method csv_from_result (line 239) | public function csv_from_result(CI_DB_result $query, $delim = ',', $ne...
method xml_from_result (line 273) | public function xml_from_result(CI_DB_result $query, $params = array())
method backup (line 313) | public function backup($params = array())
FILE: system/database/drivers/cubrid/cubrid_driver.php
class CI_DB_cubrid_driver (line 54) | class CI_DB_cubrid_driver extends CI_DB {
method __construct (line 94) | public function __construct($params)
method db_connect (line 120) | public function db_connect($persistent = FALSE)
method reconnect (line 146) | public function reconnect()
method version (line 161) | public function version()
method _execute (line 181) | protected function _execute($sql)
method _trans_begin (line 193) | protected function _trans_begin()
method _trans_commit (line 214) | protected function _trans_commit()
method _trans_rollback (line 236) | protected function _trans_rollback()
method _escape_str (line 259) | protected function _escape_str($str)
method affected_rows (line 271) | public function affected_rows()
method insert_id (line 283) | public function insert_id()
method _list_tables (line 298) | protected function _list_tables($prefix_limit = FALSE)
method _list_columns (line 320) | protected function _list_columns($table = '')
method field_data (line 333) | public function field_data($table)
method error (line 369) | public function error()
method _from_tables (line 384) | protected function _from_tables()
method _close (line 401) | protected function _close()
FILE: system/database/drivers/cubrid/cubrid_forge.php
class CI_DB_cubrid_forge (line 48) | class CI_DB_cubrid_forge extends CI_DB_forge {
method _alter_table (line 106) | protected function _alter_table($alter_type, $table, $field)
method _process_column (line 139) | protected function _process_column($field)
method _attr_type (line 170) | protected function _attr_type(&$attributes)
method _process_indexes (line 197) | protected function _process_indexes($table)
FILE: system/database/drivers/cubrid/cubrid_result.php
class CI_DB_cubrid_result (line 50) | class CI_DB_cubrid_result extends CI_DB_result {
method num_rows (line 57) | public function num_rows()
method num_fields (line 71) | public function num_fields()
method list_fields (line 85) | public function list_fields()
method field_data (line 99) | public function field_data()
method free_result (line 122) | public function free_result()
method data_seek (line 144) | public function data_seek($n = 0)
method _fetch_assoc (line 158) | protected function _fetch_assoc()
method _fetch_object (line 173) | protected function _fetch_object($class_name = 'stdClass')
FILE: system/database/drivers/cubrid/cubrid_utility.php
class CI_DB_cubrid_utility (line 48) | class CI_DB_cubrid_utility extends CI_DB_utility {
method list_databases (line 55) | public function list_databases()
method _backup (line 73) | protected function _backup($params = array())
FILE: system/database/drivers/ibase/ibase_driver.php
class CI_DB_ibase_driver (line 54) | class CI_DB_ibase_driver extends CI_DB {
method db_connect (line 87) | public function db_connect($persistent = FALSE)
method version (line 101) | public function version()
method _execute (line 128) | protected function _execute($sql)
method _trans_begin (line 140) | protected function _trans_begin()
method _trans_commit (line 158) | protected function _trans_commit()
method _trans_rollback (line 176) | protected function _trans_rollback()
method affected_rows (line 194) | public function affected_rows()
method insert_id (line 208) | public function insert_id($generator_name, $inc_by = 0)
method _list_tables (line 224) | protected function _list_tables($prefix_limit = FALSE)
method _list_columns (line 247) | protected function _list_columns($table = '')
method field_data (line 260) | public function field_data($table)
method error (line 302) | public function error()
method _update (line 318) | protected function _update($table, $values)
method _truncate (line 337) | protected function _truncate($table)
method _delete (line 352) | protected function _delete($table)
method _limit (line 368) | protected function _limit($sql)
method _insert_batch (line 397) | protected function _insert_batch($table, $keys, $values)
method _close (line 409) | protected function _close()
FILE: system/database/drivers/ibase/ibase_forge.php
class CI_DB_ibase_forge (line 48) | class CI_DB_ibase_forge extends CI_DB_forge {
method create_database (line 97) | public function create_database($db_name)
method drop_database (line 115) | public function drop_database($db_name)
method _alter_table (line 143) | protected function _alter_table($alter_type, $table, $field)
method _process_column (line 197) | protected function _process_column($field)
method _attr_type (line 216) | protected function _attr_type(&$attributes)
method _attr_auto_increment (line 247) | protected function _attr_auto_increment(&$attributes, &$field)
FILE: system/database/drivers/ibase/ibase_result.php
class CI_DB_ibase_result (line 50) | class CI_DB_ibase_result extends CI_DB_result {
method num_fields (line 57) | public function num_fields()
method list_fields (line 71) | public function list_fields()
method field_data (line 92) | public function field_data()
method free_result (line 115) | public function free_result()
method _fetch_assoc (line 129) | protected function _fetch_assoc()
method _fetch_object (line 144) | protected function _fetch_object($class_name = 'stdClass')
FILE: system/database/drivers/ibase/ibase_utility.php
class CI_DB_ibase_utility (line 48) | class CI_DB_ibase_utility extends CI_DB_utility {
method _backup (line 56) | protected function _backup($filename)
FILE: system/database/drivers/mssql/mssql_driver.php
class CI_DB_mssql_driver (line 54) | class CI_DB_mssql_driver extends CI_DB {
method __construct (line 92) | public function __construct($params)
method db_connect (line 110) | public function db_connect($persistent = FALSE)
method db_select (line 151) | public function db_select($database = '')
method _execute (line 178) | protected function _execute($sql)
method _trans_begin (line 190) | protected function _trans_begin()
method _trans_commit (line 202) | protected function _trans_commit()
method _trans_rollback (line 214) | protected function _trans_rollback()
method affected_rows (line 226) | public function affected_rows()
method insert_id (line 240) | public function insert_id()
method _version (line 258) | protected function _version()
method _list_tables (line 273) | protected function _list_tables($prefix_limit = FALSE)
method _list_columns (line 298) | protected function _list_columns($table = '')
method field_data (line 313) | public function field_data($table)
method error (line 348) | public function error()
method _update (line 376) | protected function _update($table, $values)
method _truncate (line 396) | protected function _truncate($table)
method _delete (line 411) | protected function _delete($table)
method _limit (line 431) | protected function _limit($sql)
method _insert_batch (line 484) | protected function _insert_batch($table, $keys, $values)
method _close (line 502) | protected function _close()
FILE: system/database/drivers/mssql/mssql_forge.php
class CI_DB_mssql_forge (line 50) | class CI_DB_mssql_forge extends CI_DB_forge {
method _alter_table (line 88) | protected function _alter_table($alter_type, $table, $field)
method _attr_type (line 115) | protected function _attr_type(&$attributes)
method _attr_auto_increment (line 144) | protected function _attr_auto_increment(&$attributes, &$field)
FILE: system/database/drivers/mssql/mssql_result.php
class CI_DB_mssql_result (line 52) | class CI_DB_mssql_result extends CI_DB_result {
method num_rows (line 59) | public function num_rows()
method num_fields (line 73) | public function num_fields()
method list_fields (line 87) | public function list_fields()
method field_data (line 108) | public function field_data()
method free_result (line 131) | public function free_result()
method data_seek (line 152) | public function data_seek($n = 0)
method _fetch_assoc (line 166) | protected function _fetch_assoc()
method _fetch_object (line 181) | protected function _fetch_object($class_name = 'stdClass')
FILE: system/database/drivers/mssql/mssql_utility.php
class CI_DB_mssql_utility (line 50) | class CI_DB_mssql_utility extends CI_DB_utility {
method _backup (line 72) | protected function _backup($params = array())
FILE: system/database/drivers/mysql/mysql_driver.php
class CI_DB_mysql_driver (line 54) | class CI_DB_mysql_driver extends CI_DB {
method __construct (line 107) | public function __construct($params)
method db_connect (line 125) | public function db_connect($persistent = FALSE)
method reconnect (line 198) | public function reconnect()
method db_select (line 214) | public function db_select($database = '')
method version (line 238) | public function version()
method _execute (line 261) | protected function _execute($sql)
method _prep_query (line 276) | protected function _prep_query($sql)
method _trans_begin (line 295) | protected function _trans_begin()
method _trans_commit (line 308) | protected function _trans_commit()
method _trans_rollback (line 326) | protected function _trans_rollback()
method _escape_str (line 345) | protected function _escape_str($str)
method affected_rows (line 357) | public function affected_rows()
method insert_id (line 369) | public function insert_id()
method _list_tables (line 384) | protected function _list_tables($prefix_limit = FALSE)
method _list_columns (line 406) | protected function _list_columns($table = '')
method field_data (line 419) | public function field_data($table)
method error (line 455) | public function error()
method _from_tables (line 470) | protected function _from_tables()
method _close (line 487) | protected function _close()
FILE: system/database/drivers/mysql/mysql_forge.php
class CI_DB_mysql_forge (line 48) | class CI_DB_mysql_forge extends CI_DB_forge {
method _create_table_attr (line 102) | protected function _create_table_attr($attributes)
method _alter_table (line 137) | protected function _alter_table($alter_type, $table, $field)
method _process_column (line 179) | protected function _process_column($field)
method _process_indexes (line 209) | protected function _process_indexes($table)
FILE: system/database/drivers/mysql/mysql_result.php
class CI_DB_mysql_result (line 50) | class CI_DB_mysql_result extends CI_DB_result {
method __construct (line 58) | public function __construct(&$driver_object)
method num_rows (line 74) | public function num_rows()
method num_fields (line 86) | public function num_fields()
method list_fields (line 100) | public function list_fields()
method field_data (line 121) | public function field_data()
method free_result (line 143) | public function free_result()
method data_seek (line 164) | public function data_seek($n = 0)
method _fetch_assoc (line 180) | protected function _fetch_assoc()
method _fetch_object (line 195) | protected function _fetch_object($class_name = 'stdClass')
FILE: system/database/drivers/mysql/mysql_utility.php
class CI_DB_mysql_utility (line 48) | class CI_DB_mysql_utility extends CI_DB_utility {
method _backup (line 79) | protected function _backup($params = array())
FILE: system/database/drivers/mysqli/mysqli_driver.php
class CI_DB_mysqli_driver (line 54) | class CI_DB_mysqli_driver extends CI_DB {
method db_connect (line 118) | public function db_connect($persistent = FALSE)
method reconnect (line 249) | public function reconnect()
method db_select (line 265) | public function db_select($database = '')
method version (line 289) | public function version()
method _execute (line 307) | protected function _execute($sql)
method _prep_query (line 322) | protected function _prep_query($sql)
method _trans_begin (line 341) | protected function _trans_begin()
method _trans_commit (line 356) | protected function _trans_commit()
method _trans_rollback (line 374) | protected function _trans_rollback()
method _escape_str (line 393) | protected function _escape_str($str)
method affected_rows (line 405) | public function affected_rows()
method insert_id (line 417) | public function insert_id()
method _list_tables (line 432) | protected function _list_tables($prefix_limit = FALSE)
method _list_columns (line 454) | protected function _list_columns($table = '')
method field_data (line 467) | public function field_data($table)
method error (line 503) | public function error()
method _from_tables (line 526) | protected function _from_tables()
method _close (line 543) | protected function _close()
FILE: system/database/drivers/mysqli/mysqli_forge.php
class CI_DB_mysqli_forge (line 50) | class CI_DB_mysqli_forge extends CI_DB_forge {
method _create_table_attr (line 104) | protected function _create_table_attr($attributes)
method _alter_table (line 139) | protected function _alter_table($alter_type, $table, $field)
method _process_column (line 181) | protected function _process_column($field)
method _process_indexes (line 211) | protected function _process_indexes($table)
FILE: system/database/drivers/mysqli/mysqli_result.php
class CI_DB_mysqli_result (line 52) | class CI_DB_mysqli_result extends CI_DB_result {
method num_rows (line 59) | public function num_rows()
method num_fields (line 73) | public function num_fields()
method list_fields (line 87) | public function list_fields()
method field_data (line 108) | public function field_data()
method _get_field_type (line 137) | private static function _get_field_type($type)
method free_result (line 178) | public function free_result()
method data_seek (line 199) | public function data_seek($n = 0)
method _fetch_assoc (line 213) | protected function _fetch_assoc()
method _fetch_object (line 228) | protected function _fetch_object($class_name = 'stdClass')
FILE: system/database/drivers/mysqli/mysqli_utility.php
class CI_DB_mysqli_utility (line 50) | class CI_DB_mysqli_utility extends CI_DB_utility {
method _backup (line 81) | protected function _backup($params = array())
FILE: system/database/drivers/oci8/oci8_driver.php
class CI_DB_oci8_driver (line 63) | class CI_DB_oci8_driver extends CI_DB {
method __construct (line 145) | public function __construct($params)
method db_connect (line 232) | public function db_connect($persistent = FALSE)
method version (line 247) | public function version()
method _execute (line 274) | protected function _execute($sql)
method _trans_begin (line 301) | protected function _trans_begin()
method _trans_commit (line 314) | protected function _trans_commit()
method _trans_rollback (line 328) | protected function _trans_rollback()
method affected_rows (line 341) | public function affected_rows()
method insert_id (line 353) | public function insert_id()
method _list_tables (line 369) | protected function _list_tables($prefix_limit = FALSE)
method _list_columns (line 392) | protected function _list_columns($table = '')
method field_data (line 416) | public function field_data($table)
method error (line 474) | public function error()
method _insert_batch (line 510) | protected function _insert_batch($table, $keys, $values)
method _truncate (line 536) | protected function _truncate($table)
method _delete (line 551) | protected function _delete($table)
method _limit (line 572) | protected function _limit($sql)
method _close (line 594) | protected function _close()
method _reset_select (line 612) | protected function _reset_select()
FILE: system/database/drivers/oci8/oci8_forge.php
class CI_DB_oci8_forge (line 48) | class CI_DB_oci8_forge extends CI_DB_forge {
method _alter_table (line 102) | protected function _alter_table($alter_type, $table, $field)
method _attr_auto_increment (line 161) | protected function _attr_auto_increment(&$attributes, &$field)
method _process_column (line 177) | protected function _process_column($field)
method _attr_type (line 198) | protected function _attr_type(&$attributes)
FILE: system/database/drivers/oci8/oci8_result.php
class CI_DB_oci8_result (line 50) | class CI_DB_oci8_result extends CI_DB_result {
method __construct (line 74) | public function __construct(&$driver_object)
method num_fields (line 91) | public function num_fields()
method list_fields (line 108) | public function list_fields()
method field_data (line 127) | public function field_data()
method free_result (line 150) | public function free_result()
method _fetch_assoc (line 168) | protected function _fetch_assoc()
method _fetch_object (line 183) | protected function _fetch_object($class_name = 'stdClass')
method __destruct (line 211) | public function __destruct()
FILE: system/database/drivers/oci8/oci8_utility.php
class CI_DB_oci8_utility (line 48) | class CI_DB_oci8_utility extends CI_DB_utility {
method _backup (line 63) | protected function _backup($params = array())
FILE: system/database/drivers/odbc/odbc_driver.php
class CI_DB_odbc_driver (line 54) | class CI_DB_odbc_driver extends CI_DB_driver {
method __construct (line 119) | public function __construct($params)
method db_connect (line 138) | public function db_connect($persistent = FALSE)
method compile_binds (line 154) | public function compile_binds($sql, $binds)
method _execute (line 221) | protected function _execute($sql)
method _trans_begin (line 251) | protected function _trans_begin()
method _trans_commit (line 263) | protected function _trans_commit()
method _trans_rollback (line 281) | protected function _trans_rollback()
method is_write_type (line 300) | public function is_write_type($sql)
method _escape_str (line 318) | protected function _escape_str($str)
method affected_rows (line 330) | public function affected_rows()
method insert_id (line 342) | public function insert_id()
method _list_tables (line 357) | protected function _list_tables($prefix_limit = FALSE)
method _list_columns (line 380) | protected function _list_columns($table = '')
method _field_data (line 395) | protected function _field_data($table)
method error (line 410) | public function error()
method _close (line 422) | protected function _close()
FILE: system/database/drivers/odbc/odbc_forge.php
class CI_DB_odbc_forge (line 50) | class CI_DB_odbc_forge extends CI_DB_forge {
method _attr_auto_increment (line 82) | protected function _attr_auto_increment(&$attributes, &$field)
FILE: system/database/drivers/odbc/odbc_result.php
class CI_DB_odbc_result (line 52) | class CI_DB_odbc_result extends CI_DB_result {
method num_rows (line 59) | public function num_rows()
method num_fields (line 90) | public function num_fields()
method list_fields (line 104) | public function list_fields()
method field_data (line 129) | public function field_data()
method free_result (line 152) | public function free_result()
method _fetch_assoc (line 170) | protected function _fetch_assoc()
method _fetch_object (line 185) | protected function _fetch_object($class_name = 'stdClass')
function odbc_fetch_array (line 219) | function odbc_fetch_array(&$result, $rownumber = 1)
function odbc_fetch_object (line 252) | function odbc_fetch_object(&$result, $rownumber = 1)
FILE: system/database/drivers/odbc/odbc_utility.php
class CI_DB_odbc_utility (line 50) | class CI_DB_odbc_utility extends CI_DB_utility {
method _backup (line 58) | protected function _backup($params = array())
FILE: system/database/drivers/pdo/pdo_driver.php
class CI_DB_pdo_driver (line 54) | class CI_DB_pdo_driver extends CI_DB {
method __construct (line 80) | public function __construct($params)
method db_connect (line 128) | public function db_connect($persistent = FALSE)
method version (line 165) | public function version()
method _execute (line 191) | protected function _execute($sql)
method _trans_begin (line 203) | protected function _trans_begin()
method _trans_commit (line 215) | protected function _trans_commit()
method _trans_rollback (line 227) | protected function _trans_rollback()
method _escape_str (line 240) | protected function _escape_str($str)
method affected_rows (line 258) | public function affected_rows()
method insert_id (line 271) | public function insert_id($name = NULL)
method _field_data (line 286) | protected function _field_data($table)
method error (line 301) | public function error()
method _truncate (line 333) | protected function _truncate($table)
method _close (line 345) | protected function _close()
FILE: system/database/drivers/pdo/pdo_forge.php
class CI_DB_pdo_forge (line 50) | class CI_DB_pdo_forge extends CI_DB_forge {
FILE: system/database/drivers/pdo/pdo_result.php
class CI_DB_pdo_result (line 52) | class CI_DB_pdo_result extends CI_DB_result {
method num_rows (line 59) | public function num_rows()
method num_fields (line 88) | public function num_fields()
method list_fields (line 102) | public function list_fields()
method field_data (line 125) | public function field_data()
method free_result (line 162) | public function free_result()
method _fetch_assoc (line 179) | protected function _fetch_assoc()
method _fetch_object (line 194) | protected function _fetch_object($class_name = 'stdClass')
FILE: system/database/drivers/pdo/pdo_utility.php
class CI_DB_pdo_utility (line 50) | class CI_DB_pdo_utility extends CI_DB_utility {
method _backup (line 58) | protected function _backup($params = array())
FILE: system/database/drivers/pdo/subdrivers/pdo_4d_driver.php
class CI_DB_pdo_4d_driver (line 54) | class CI_DB_pdo_4d_driver extends CI_DB_pdo_driver {
method __construct (line 80) | public function __construct($params)
method _list_tables (line 108) | protected function _list_tables($prefix_limit = FALSE)
method _list_columns (line 131) | protected function _list_columns($table = '')
method _field_data (line 147) | protected function _field_data($table)
method _update (line 163) | protected function _update($table, $values)
method _delete (line 180) | protected function _delete($table)
method _limit (line 196) | protected function _limit($sql)
FILE: system/database/drivers/pdo/subdrivers/pdo_4d_forge.php
class CI_DB_pdo_4d_forge (line 48) | class CI_DB_pdo_4d_forge extends CI_DB_pdo_forge {
method _alter_table (line 114) | protected function _alter_table($alter_type, $table, $field)
method _process_column (line 133) | protected function _process_column($field)
method _attr_type (line 152) | protected function _attr_type(&$attributes)
method _attr_unique (line 183) | protected function _attr_unique(&$attributes, &$field)
method _attr_auto_increment (line 203) | protected function _attr_auto_increment(&$attributes, &$field)
FILE: system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php
class CI_DB_pdo_cubrid_driver (line 54) | class CI_DB_pdo_cubrid_driver extends CI_DB_pdo_driver {
method __construct (line 87) | public function __construct($params)
method _list_tables (line 111) | protected function _list_tables($prefix_limit = FALSE)
method _list_columns (line 133) | protected function _list_columns($table = '')
method field_data (line 146) | public function field_data($table)
method _truncate (line 185) | protected function _truncate($table)
method _from_tables (line 200) | protected function _from_tables()
FILE: system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php
class CI_DB_pdo_cubrid_forge (line 48) | class CI_DB_pdo_cubrid_forge extends CI_DB_pdo_forge {
method _alter_table (line 106) | protected function _alter_table($alter_type, $table, $field)
method _process_column (line 139) | protected function _process_column($field)
method _attr_type (line 170) | protected function _attr_type(&$attributes)
method _process_indexes (line 197) | protected function _process_indexes($table)
FILE: system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php
class CI_DB_pdo_dblib_driver (line 54) | class CI_DB_pdo_dblib_driver extends CI_DB_pdo_driver {
method __construct (line 92) | public function __construct($params)
method db_connect (line 128) | public function db_connect($persistent = FALSE)
method _list_tables (line 161) | protected function _list_tables($prefix_limit = FALSE)
method _list_columns (line 186) | protected function _list_columns($table = '')
method field_data (line 201) | public function field_data($table)
method _update (line 237) | protected function _update($table, $values)
method _delete (line 254) | protected function _delete($table)
method _limit (line 274) | protected function _limit($sql)
method _insert_batch (line 327) | protected function _insert_batch($table, $keys, $values)
method version (line 345) | public function version()
FILE: system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php
class CI_DB_pdo_dblib_forge (line 48) | class CI_DB_pdo_dblib_forge extends CI_DB_pdo_forge {
method _alter_table (line 86) | protected function _alter_table($alter_type, $table, $field)
method _attr_type (line 113) | protected function _attr_type(&$attributes)
method _attr_auto_increment (line 142) | protected function _attr_auto_increment(&$attributes, &$field)
FILE: system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php
class CI_DB_pdo_firebird_driver (line 54) | class CI_DB_pdo_firebird_driver extends CI_DB_pdo_driver {
method __construct (line 82) | public function __construct($params)
method _list_tables (line 118) | protected function _list_tables($prefix_limit = FALSE)
method _list_columns (line 141) | protected function _list_columns($table = '')
method field_data (line 154) | public function field_data($table)
method _update (line 197) | protected function _update($table, $values)
method _truncate (line 216) | protected function _truncate($table)
method _delete (line 231) | protected function _delete($table)
method _limit (line 247) | protected function _limit($sql)
method _insert_batch (line 276) | protected function _insert_batch($table, $keys, $values)
FILE: system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php
class CI_DB_pdo_firebird_forge (line 48) | class CI_DB_pdo_firebird_forge extends CI_DB_pdo_forge {
method create_database (line 83) | public function create_database($db_name)
method drop_database (line 101) | public function drop_database($db_name)
method _alter_table (line 129) | protected function _alter_table($alter_type, $table, $field)
method _process_column (line 183) | protected function _process_column($field)
method _attr_type (line 202) | protected function _attr_type(&$attributes)
method _attr_auto_increment (line 233) | protected function _attr_auto_increment(&$attributes, &$field)
FILE: system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php
class CI_DB_pdo_ibm_driver (line 54) | class CI_DB_pdo_ibm_driver extends CI_DB_pdo_driver {
method __construct (line 73) | public function __construct($params)
method _list_tables (line 139) | protected function _list_tables($prefix_limit = FALSE)
method _list_columns (line 163) | protected function _list_columns($table = '')
method field_data (line 178) | public function field_data($table)
method _update (line 203) | protected function _update($table, $values)
method _delete (line 220) | protected function _delete($table)
method _limit (line 236) | protected function _limit($sql)
FILE: system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php
class CI_DB_pdo_ibm_forge (line 48) | class CI_DB_pdo_ibm_forge extends CI_DB_pdo_forge {
method _alter_table (line 85) | protected function _alter_table($alter_type, $table, $field)
method _attr_type (line 105) | protected function _attr_type(&$attributes)
method _attr_unique (line 130) | protected function _attr_unique(&$attributes, &$field)
method _attr_auto_increment (line 150) | protected function _attr_auto_increment(&$attributes, &$field)
FILE: system/database/drivers/pdo/subdrivers/pdo_informix_driver.php
class CI_DB_pdo_informix_driver (line 54) | class CI_DB_pdo_informix_driver extends CI_DB_pdo_driver {
method __construct (line 82) | public function __construct($params)
method _list_tables (line 141) | protected function _list_tables($prefix_limit = FALSE)
method _list_columns (line 165) | protected function _list_columns($table = '')
method field_data (line 191) | public function field_data($table)
method _update (line 253) | protected function _update($table, $values)
method _truncate (line 273) | protected function _truncate($table)
method _delete (line 288) | protected function _delete($table)
method _limit (line 304) | protected function _limit($sql)
FILE: system/database/drivers/pdo/subdrivers/pdo_informix_forge.php
class CI_DB_pdo_informix_forge (line 48) | class CI_DB_pdo_informix_forge extends CI_DB_pdo_forge {
method _alter_table (line 87) | protected function _alter_table($alter_type, $table, $field)
method _attr_type (line 107) | protected function _attr_type(&$attributes)
method _attr_unique (line 142) | protected function _attr_unique(&$attributes, &$field)
method _attr_auto_increment (line 159) | protected function _attr_auto_increment(&$attributes, &$field)
FILE: system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php
class CI_DB_pdo_mysql_driver (line 54) | class CI_DB_pdo_mysql_driver extends CI_DB_pdo_driver {
method __construct (line 98) | public function __construct($params)
method db_connect (line 124) | public function db_connect($persistent = FALSE)
method db_select (line 205) | public function db_select($database = '')
method _trans_begin (line 229) | protected function _trans_begin()
method _trans_commit (line 242) | protected function _trans_commit()
method _trans_rollback (line 260) | protected function _trans_rollback()
method _list_tables (line 281) | protected function _list_tables($prefix_limit = FALSE)
method _list_columns (line 303) | protected function _list_columns($table = '')
method field_data (line 316) | public function field_data($table)
method _truncate (line 355) | protected function _truncate($table)
method _from_tables (line 370) | protected function _from_tables()
FILE: system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php
class CI_DB_pdo_mysql_forge (line 48) | class CI_DB_pdo_mysql_forge extends CI_DB_pdo_forge {
method _create_table_attr (line 116) | protected function _create_table_attr($attributes)
method _alter_table (line 151) | protected function _alter_table($alter_type, $table, $field)
method _process_column (line 193) | protected function _process_column($field)
method _process_indexes (line 223) | protected function _process_indexes($table)
FILE: system/database/drivers/pdo/subdrivers/pdo_oci_driver.php
class CI_DB_pdo_oci_driver (line 54) | class CI_DB_pdo_oci_driver extends CI_DB_pdo_driver {
method __construct (line 101) | public function __construct($params)
method version (line 138) | public function version()
method _list_tables (line 164) | protected function _list_tables($prefix_limit = FALSE)
method _list_columns (line 187) | protected function _list_columns($table = '')
method field_data (line 211) | public function field_data($table)
method _insert_batch (line 269) | protected function _insert_batch($table, $keys, $values)
method _delete (line 292) | protected function _delete($table)
method _limit (line 313) | protected function _limit($sql)
FILE: system/database/drivers/pdo/subdrivers/pdo_oci_forge.php
class CI_DB_pdo_oci_forge (line 48) | class CI_DB_pdo_oci_forge extends CI_DB_pdo_forge {
method _alter_table (line 95) | protected function _alter_table($alter_type, $table, $field)
method _attr_auto_increment (line 152) | protected function _attr_auto_increment(&$attributes, &$field)
method _process_column (line 168) | protected function _process_column($field)
method _attr_type (line 189) | protected function _attr_type(&$attributes)
FILE: system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php
class CI_DB_pdo_odbc_driver (line 54) | class CI_DB_pdo_odbc_driver extends CI_DB_pdo_driver {
method __construct (line 105) | public function __construct($params)
method _escape_str (line 170) | protected function _escape_str($str)
method is_write_type (line 183) | public function is_write_type($sql)
method _list_tables (line 203) | protected function _list_tables($prefix_limit = FALSE)
method _list_columns (line 226) | protected function _list_columns($table = '')
FILE: system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php
class CI_DB_pdo_odbc_forge (line 48) | class CI_DB_pdo_odbc_forge extends CI_DB_pdo_forge {
method _attr_auto_increment (line 66) | protected function _attr_auto_increment(&$attributes, &$field)
FILE: system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php
class CI_DB_pdo_pgsql_driver (line 54) | class CI_DB_pdo_pgsql_driver extends CI_DB_pdo_driver {
method __construct (line 89) | public function __construct($params)
method db_connect (line 116) | public function db_connect($persistent = FALSE)
method insert_id (line 136) | public function insert_id($name = NULL)
method is_write_type (line 156) | public function is_write_type($sql)
method escape (line 176) | public function escape($str)
method order_by (line 196) | public function order_by($orderby, $direction = '', $escape = NULL)
method _list_tables (line 231) | protected function _list_tables($prefix_limit = FALSE)
method _list_columns (line 255) | protected function _list_columns($table = '')
method field_data (line 270) | public function field_data($table)
method _update (line 306) | protected function _update($table, $values)
method _update_batch (line 325) | protected function _update_batch($table, $values, $index)
method _delete (line 364) | protected function _delete($table)
method _limit (line 380) | protected function _limit($sql)
FILE: system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php
class CI_DB_pdo_pgsql_forge (line 48) | class CI_DB_pdo_pgsql_forge extends CI_DB_pdo_forge {
method __construct (line 96) | public function __construct(&$db)
method _alter_table (line 116) | protected function _alter_table($alter_type, $table, $field)
method _attr_type (line 177) | protected function _attr_type(&$attributes)
method _attr_auto_increment (line 208) | protected function _attr_auto_increment(&$attributes, &$field)
FILE: system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php
class CI_DB_pdo_sqlite_driver (line 54) | class CI_DB_pdo_sqlite_driver extends CI_DB_pdo_driver {
method __construct (line 82) | public function __construct($params)
method _list_tables (line 109) | protected function _list_tables($prefix_limit = FALSE)
method list_fields (line 130) | public function list_fields($table)
method field_data (line 154) | public function field_data($table)
method _replace (line 191) | protected function _replace($table, $keys, $values)
method _truncate (line 209) | protected function _truncate($table)
FILE: system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php
class CI_DB_pdo_sqlite_forge (line 48) | class CI_DB_pdo_sqlite_forge extends CI_DB_pdo_forge {
method __construct (line 86) | public function __construct(&$db)
method create_database (line 105) | public function create_database($db_name)
method drop_database (line 120) | public function drop_database($db_name)
method _alter_table (line 156) | protected function _alter_table($alter_type, $table, $field)
method _process_column (line 184) | protected function _process_column($field)
method _attr_type (line 204) | protected function _attr_type(&$attributes)
method _attr_auto_increment (line 225) | protected function _attr_auto_increment(&$attributes, &$field)
FILE: system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php
class CI_DB_pdo_sqlsrv_driver (line 54) | class CI_DB_pdo_sqlsrv_driver extends CI_DB_pdo_driver {
method __construct (line 92) | public function __construct($params)
method db_connect (line 152) | public function db_connect($persistent = FALSE)
method _list_tables (line 185) | protected function _list_tables($prefix_limit = FALSE)
method _list_columns (line 210) | protected function _list_columns($table = '')
method field_data (line 225) | public function field_data($table)
method _update (line 261) | protected function _update($table, $values)
method _delete (line 278) | protected function _delete($table)
method _limit (line 298) | protected function _limit($sql)
method _insert_batch (line 359) | protected function _insert_batch($table, $keys, $values)
FILE: system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php
class CI_DB_pdo_sqlsrv_forge (line 48) | class CI_DB_pdo_sqlsrv_forge extends CI_DB_pdo_forge {
method _alter_table (line 86) | protected function _alter_table($alter_type, $table, $field)
method _attr_type (line 113) | protected function _attr_type(&$attributes)
method _attr_auto_increment (line 142) | protected function _attr_auto_increment(&$attributes, &$field)
FILE: system/database/drivers/postgre/postgre_driver.php
class CI_DB_postgre_driver (line 54) | class CI_DB_postgre_driver extends CI_DB {
method _build_dsn (line 86) | protected function _build_dsn()
method db_connect (line 141) | public function db_connect($persistent = FALSE)
method reconnect (line 181) | public function reconnect()
method version (line 196) | public function version()
method _execute (line 226) | protected function _execute($sql)
method _trans_begin (line 238) | protected function _trans_begin()
method _trans_commit (line 250) | protected function _trans_commit()
method _trans_rollback (line 262) | protected function _trans_rollback()
method is_write_type (line 275) | public function is_write_type($sql)
method _escape_str (line 293) | protected function _escape_str($str)
method escape (line 308) | public function escape($str)
method affected_rows (line 329) | public function affected_rows()
method insert_id (line 341) | public function insert_id()
method _list_tables (line 389) | protected function _list_tables($prefix_limit = FALSE)
method _list_columns (line 413) | protected function _list_columns($table = '')
method field_data (line 428) | public function field_data($table)
method error (line 463) | public function error()
method order_by (line 478) | public function order_by($orderby, $direction = '', $escape = NULL)
method _update (line 514) | protected function _update($table, $values)
method _update_batch (line 533) | protected function _update_batch($table, $values, $index)
method _delete (line 572) | protected function _delete($table)
method _limit (line 588) | protected function _limit($sql)
method _close (line 600) | protected function _close()
FILE: system/database/drivers/postgre/postgre_forge.php
class CI_DB_postgre_forge (line 50) | class CI_DB_postgre_forge extends CI_DB_forge {
method __construct (line 84) | public function __construct(&$db)
method _alter_table (line 104) | protected function _alter_table($alter_type, $table, $field)
method _attr_type (line 165) | protected function _attr_type(&$attributes)
method _attr_auto_increment (line 196) | protected function _attr_auto_increment(&$attributes, &$field)
FILE: system/database/drivers/postgre/postgre_result.php
class CI_DB_postgre_result (line 52) | class CI_DB_postgre_result extends CI_DB_result {
method num_rows (line 59) | public function num_rows()
method num_fields (line 73) | public function num_fields()
method list_fields (line 87) | public function list_fields()
method field_data (line 107) | public function field_data()
method free_result (line 128) | public function free_result()
method data_seek (line 149) | public function data_seek($n = 0)
method _fetch_assoc (line 163) | protected function _fetch_assoc()
method _fetch_object (line 178) | protected function _fetch_object($class_name = 'stdClass')
FILE: system/database/drivers/postgre/postgre_utility.php
class CI_DB_postgre_utility (line 50) | class CI_DB_postgre_utility extends CI_DB_utility {
method _backup (line 74) | protected function _backup($params = array())
FILE: system/database/drivers/sqlite3/sqlite3_driver.php
class CI_DB_sqlite3_driver (line 54) | class CI_DB_sqlite3_driver extends CI_DB {
method db_connect (line 80) | public function db_connect($persistent = FALSE)
method version (line 106) | public function version()
method _execute (line 126) | protected function _execute($sql)
method _trans_begin (line 140) | protected function _trans_begin()
method _trans_commit (line 152) | protected function _trans_commit()
method _trans_rollback (line 164) | protected function _trans_rollback()
method _escape_str (line 177) | protected function _escape_str($str)
method affected_rows (line 189) | public function affected_rows()
method insert_id (line 201) | public function insert_id()
method _list_tables (line 216) | protected function _list_tables($prefix_limit = FALSE)
method list_fields (line 232) | public function list_fields($table)
method field_data (line 256) | public function field_data($table)
method error (line 293) | public function error()
method _replace (line 310) | protected function _replace($table, $keys, $values)
method _truncate (line 328) | protected function _truncate($table)
method _close (line 340) | protected function _close()
FILE: system/database/drivers/sqlite3/sqlite3_forge.php
class CI_DB_sqlite3_forge (line 48) | class CI_DB_sqlite3_forge extends CI_DB_forge {
method __construct (line 72) | public function __construct(&$db)
method create_database (line 91) | public function create_database($db_name)
method drop_database (line 106) | public function drop_database($db_name)
method _alter_table (line 143) | protected function _alter_table($alter_type, $table, $field)
method _process_column (line 171) | protected function _process_column($field)
method _attr_type (line 191) | protected function _attr_type(&$attributes)
method _attr_auto_increment (line 212) | protected function _attr_auto_increment(&$attributes, &$field)
FILE: system/database/drivers/sqlite3/sqlite3_result.php
class CI_DB_sqlite3_result (line 50) | class CI_DB_sqlite3_result extends CI_DB_result {
method num_fields (line 57) | public function num_fields()
method list_fields (line 71) | public function list_fields()
method field_data (line 91) | public function field_data()
method free_result (line 123) | public function free_result()
method _fetch_assoc (line 141) | protected function _fetch_assoc()
method _fetch_object (line 156) | protected function _fetch_object($class_name = 'stdClass')
method data_seek (line 189) | public function data_seek($n = 0)
FILE: system/database/drivers/sqlite3/sqlite3_utility.php
class CI_DB_sqlite3_utility (line 48) | class CI_DB_sqlite3_utility extends CI_DB_utility {
method _backup (line 56) | protected function _backup($params = array())
FILE: system/database/drivers/sqlsrv/sqlsrv_driver.php
class CI_DB_sqlsrv_driver (line 54) | class CI_DB_sqlsrv_driver extends CI_DB {
method __construct (line 102) | public function __construct($params)
method db_connect (line 123) | public function db_connect($pooling = FALSE)
method db_select (line 165) | public function db_select($database = '')
method _execute (line 190) | protected function _execute($sql)
method _trans_begin (line 204) | protected function _trans_begin()
method _trans_commit (line 216) | protected function _trans_commit()
method _trans_rollback (line 228) | protected function _trans_rollback()
method affected_rows (line 240) | public function affected_rows()
method insert_id (line 254) | public function insert_id()
method version (line 266) | public function version()
method _list_tables (line 291) | protected function _list_tables($prefix_limit = FALSE)
method _list_columns (line 316) | protected function _list_columns($table = '')
method field_data (line 331) | public function field_data($table)
method error (line 366) | public function error()
method _update (line 405) | protected function _update($table, $values)
method _truncate (line 425) | protected function _truncate($table)
method _delete (line 440) | protected function _delete($table)
method _limit (line 460) | protected function _limit($sql)
method _insert_batch (line 521) | protected function _insert_batch($table, $keys, $values)
method _close (line 539) | protected function _close()
FILE: system/database/drivers/sqlsrv/sqlsrv_forge.php
class CI_DB_sqlsrv_forge (line 48) | class CI_DB_sqlsrv_forge extends CI_DB_forge {
method _alter_table (line 86) | protected function _alter_table($alter_type, $table, $field)
method _attr_type (line 113) | protected function _attr_type(&$attributes)
method _attr_auto_increment (line 142) | protected function _attr_auto_increment(&$attributes, &$field)
FILE: system/database/drivers/sqlsrv/sqlsrv_result.php
class CI_DB_sqlsrv_result (line 50) | class CI_DB_sqlsrv_result extends CI_DB_result {
method __construct (line 67) | public function __construct(&$driver_object)
method num_rows (line 81) | public function num_rows()
method num_fields (line 101) | public function num_fields()
method list_fields (line 115) | public function list_fields()
method field_data (line 135) | public function field_data()
method free_result (line 156) | public function free_result()
method _fetch_assoc (line 174) | protected function _fetch_assoc()
method _fetch_object (line 189) | protected function _fetch_object($class_name = 'stdClass')
FILE: system/database/drivers/sqlsrv/sqlsrv_utility.php
class CI_DB_sqlsrv_utility (line 48) | class CI_DB_sqlsrv_utility extends CI_DB_utility {
method _backup (line 72) | protected function _backup($params = array())
FILE: system/helpers/array_helper.php
function element (line 66) | function element($item, array $array, $default = NULL)
function random_element (line 82) | function random_element($array)
function elements (line 103) | function elements($items, array $array, $default = NULL)
FILE: system/helpers/captcha_helper.php
function create_captcha (line 61) | function create_captcha($data)
FILE: system/helpers/cookie_helper.php
function set_cookie (line 71) | function set_cookie($name, $value = '', $expire = 0, $domain = '', $path...
function get_cookie (line 89) | function get_cookie($index, $xss_clean = FALSE)
function delete_cookie (line 109) | function delete_cookie($name, $domain = '', $path = '/', $prefix = '')
FILE: system/helpers/date_helper.php
function now (line 64) | function now($timezone = NULL)
function mdate (line 103) | function mdate($datestr = '', $time = '')
function timespan (line 139) | function timespan($seconds = 1, $time = '', $units = 7)
function days_in_month (line 242) | function days_in_month($month = 0, $year = '')
function local_to_gmt (line 286) | function local_to_gmt($time = '')
function gmt_to_local (line 320) | function gmt_to_local($time = '', $timezone = 'UTC', $dst = FALSE)
function mysql_to_unix (line 343) | function mysql_to_unix($time = '')
function unix_to_human (line 377) | function unix_to_human($time = '', $seconds = FALSE, $fmt = 'us')
function human_to_unix (line 416) | function human_to_unix($datestr = '')
function timezone_menu (line 467) | function timezone_menu($default = 'UTC', $class = '', $name = 'timezones...
function timezones (line 506) | function timezones($tz = '')
function date_range (line 582) | function date_range($unix_start = '', $mixed = '', $is_unix = TRUE, $for...
FILE: system/helpers/directory_helper.php
function directory_map (line 68) | function directory_map($source_dir, $directory_depth = 0, $hidden = FALSE)
FILE: system/helpers/download_helper.php
function force_download (line 65) | function force_download($filename = '', $data = '', $set_mime = FALSE)
FILE: system/helpers/file_helper.php
function write_file (line 66) | function write_file($path, $data, $mode = 'wb')
function delete_files (line 108) | function delete_files($path, $del_dir = FALSE, $htdocs = FALSE, $_level ...
function get_filenames (line 158) | function get_filenames($source_dir, $include_path = FALSE, $_recursion =...
function get_dir_file_info (line 208) | function get_dir_file_info($source_dir, $top_level_only = TRUE, $_recurs...
function get_file_info (line 261) | function get_file_info($file, $returned_values = array('name', 'server_p...
function get_mime_by_extension (line 324) | function get_mime_by_extension($filename)
function symbolic_permissions (line 364) | function symbolic_permissions($perms)
function octal_permissions (line 431) | function octal_permissions($perms)
FILE: system/helpers/form_helper.php
function form_open (line 65) | function form_open($action = '', $attributes = array(), $hidden = array())
function form_open_multipart (line 155) | function form_open_multipart($action = '', $attributes = array(), $hidde...
function form_hidden (line 185) | function form_hidden($name, $value = '', $recursing = FALSE)
function form_input (line 233) | function form_input($data = '', $value = '', $extra = '')
function form_password (line 259) | function form_password($data = '', $value = '', $extra = '')
function form_upload (line 280) | function form_upload($data = '', $extra = '')
function form_textarea (line 302) | function form_textarea($data = '', $value = '', $extra = '')
function form_multiselect (line 339) | function form_multiselect($name = '', $options = array(), $selected = ar...
function form_dropdown (line 364) | function form_dropdown($data = '', $options = array(), $selected = array...
function form_checkbox (line 459) | function form_checkbox($data = '', $value = '', $checked = FALSE, $extra...
function form_radio (line 503) | function form_radio($data = '', $value = '', $checked = FALSE, $extra = '')
function form_submit (line 524) | function form_submit($data = '', $value = '', $extra = '')
function form_reset (line 548) | function form_reset($data = '', $value = '', $extra = '')
function form_button (line 572) | function form_button($data = '', $content = '', $extra = '')
function form_label (line 603) | function form_label($label_text = '', $id = '', $attributes = array())
function form_fieldset (line 633) | function form_fieldset($legend_text = '', $attributes = array())
function form_fieldset_close (line 655) | function form_fieldset_close($extra = '')
function form_close (line 671) | function form_close($extra = '')
function set_value (line 693) | function set_value($field, $default = '', $html_escape = TRUE)
function set_select (line 721) | function set_select($field, $value = '', $default = FALSE)
function set_checkbox (line 768) | function set_checkbox($field, $value = '', $default = FALSE)
function set_radio (line 820) | function set_radio($field, $value = '', $default = FALSE)
function form_error (line 872) | function form_error($field = '', $prefix = '', $suffix = '')
function validation_errors (line 897) | function validation_errors($prefix = '', $suffix = '')
function _parse_form_attributes (line 921) | function _parse_form_attributes($attributes, $default)
function _attributes_to_string (line 972) | function _attributes_to_string($attributes)
function _get_validation_object (line 1017) | function &_get_validation_object()
FILE: system/helpers/html_helper.php
function heading (line 65) | function heading($data = '', $h = '1', $attributes = '')
function ul (line 84) | function ul($list, $attributes = '')
function ol (line 103) | function ol($list, $attributes = '')
function _list (line 124) | function _list($type = 'ul', $list = array(), $attributes = '', $depth = 0)
function img (line 178) | function img($src = '', $index_page = FALSE, $attributes = '')
function doctype (line 232) | function doctype($type = 'html5')
function link_tag (line 278) | function link_tag($href = '', $rel = 'stylesheet', $type = 'text/css', $...
function meta (line 349) | function meta($name = '', $content = '', $type = 'name', $newline = "\n")
FILE: system/helpers/inflector_helper.php
function singular (line 63) | function singular($str)
function plural (line 128) | function plural($str)
function camelize (line 185) | function camelize($str)
function underscore (line 203) | function underscore($str)
function humanize (line 222) | function humanize($str, $separator = '_')
function word_is_countable (line 238) | function word_is_countable($word)
function is_countable (line 283) | function is_countable($word)
function ordinal_format (line 300) | function ordinal_format($number)
FILE: system/helpers/language_helper.php
function lang (line 65) | function lang($line, $for = '', $attributes = array())
FILE: system/helpers/number_helper.php
function byte_format (line 62) | function byte_format($num, $precision = 1)
FILE: system/helpers/path_helper.php
function set_realpath (line 62) | function set_realpath($path, $check_existance = FALSE)
FILE: system/helpers/security_helper.php
function xss_clean (line 62) | function xss_clean($str, $is_image = FALSE)
function sanitize_filename (line 78) | function sanitize_filename($filename)
function strip_image_tags (line 94) | function strip_image_tags($str)
function encode_php_tags (line 110) | function encode_php_tags($str)
FILE: system/helpers/string_helper.php
function strip_slashes (line 63) | function strip_slashes($str)
function strip_quotes (line 91) | function strip_quotes($str)
function quotes_to_entities (line 109) | function quotes_to_entities($str)
function reduce_double_slashes (line 134) | function reduce_double_slashes($str)
function reduce_multiples (line 160) | function reduce_multiples($str, $character = ',', $trim = FALSE)
function random_string (line 178) | function random_string($type = 'alnum', $len = 8)
function increment_string (line 224) | function increment_string($str, $separator = '_', $first = 1)
function alternator (line 243) | function alternator()
FILE: system/helpers/text_helper.php
function word_limiter (line 65) | function word_limiter($str, $limit = 100, $end_char = '…')
function character_limiter (line 98) | function character_limiter($str, $n = 500, $end_char = '…')
function ascii_to_entities (line 139) | function ascii_to_entities($str)
function entities_to_ascii (line 207) | function entities_to_ascii($str, $all = TRUE)
function word_censor (line 265) | function word_censor($str, $censored, $replacement = '')
function highlight_code (line 323) | function highlight_code($str)
function highlight_phrase (line 381) | function highlight_phrase($str, $phrase, $tag_open = '<mark>', $tag_clos...
function convert_accented_characters (line 399) | function convert_accented_characters($str)
function word_wrap (line 446) | function word_wrap($str, $charlim = 76)
function ellipsize (line 543) | function ellipsize($str, $max_length, $position = 1, $ellipsis = '&helli...
FILE: system/helpers/typography_helper.php
function nl2br_except_pre (line 61) | function nl2br_except_pre($str)
function auto_typography (line 80) | function auto_typography($str, $reduce_linebreaks = FALSE)
function entity_decode (line 101) | function entity_decode($str, $charset = NULL)
FILE: system/helpers/url_helper.php
function site_url (line 65) | function site_url($uri = '', $protocol = NULL)
function base_url (line 86) | function base_url($uri = '', $protocol = NULL)
function current_url (line 104) | function current_url()
function uri_string (line 122) | function uri_string()
function index_page (line 139) | function index_page()
function anchor (line 159) | function anchor($uri = '', $title = '', $attributes = '')
function anchor_popup (line 196) | function anchor_popup($uri = '', $title = '', $attributes = FALSE)
function mailto (line 254) | function mailto($email, $title = '', $attributes = '')
function safe_mailto (line 281) | function safe_mailto($email, $title = '', $attributes = '')
function auto_link (line 394) | function auto_link($str, $type = 'both', $popup = FALSE)
function prep_url (line 445) | function prep_url($str = '')
function url_title (line 479) | function url_title($str, $separator = '-', $lowercase = FALSE)
function redirect (line 522) | function redirect($uri = '', $method = 'auto', $code = NULL)
FILE: system/helpers/xml_helper.php
function xml_convert (line 62) | function xml_convert($str, $protect_all = FALSE)
FILE: system/libraries/Cache/Cache.php
class CI_Cache (line 50) | class CI_Cache extends CI_Driver_Library {
method __construct (line 103) | public function __construct($config = array())
method get (line 138) | public function get($id)
method save (line 154) | public function save($id, $data, $ttl = 60, $raw = FALSE)
method delete (line 167) | public function delete($id)
method increment (line 181) | public function increment($id, $offset = 1)
method decrement (line 195) | public function decrement($id, $offset = 1)
method clean (line 207) | public function clean()
method cache_info (line 220) | public function cache_info($type = 'user')
method get_metadata (line 233) | public function get_metadata($id)
method is_supported (line 246) | public function is_supported($driver)
method get_loaded_driver (line 265) | public function get_loaded_driver()
FILE: system/libraries/Cache/drivers/Cache_apc.php
class CI_Cache_apc (line 50) | class CI_Cache_apc extends CI_Driver {
method __construct (line 60) | public function __construct()
method get (line 79) | public function get($id)
method save (line 98) | public function save($id, $data, $ttl = 60, $raw = FALSE)
method delete (line 111) | public function delete($id)
method increment (line 125) | public function increment($id, $offset = 1)
method decrement (line 139) | public function decrement($id, $offset = 1)
method clean (line 151) | public function clean()
method cache_info (line 164) | public function cache_info($type = NULL)
method get_metadata (line 177) | public function get_metadata($id)
method is_supported (line 214) | public function is_supported()
FILE: system/libraries/Cache/drivers/Cache_apcu.php
class CI_Cache_apcu (line 48) | class CI_Cache_apcu extends CI_Driver {
method __construct (line 58) | public function __construct()
method get (line 77) | public function get($id)
method save (line 103) | public function save($id, $data, $ttl = 60, $raw = FALSE)
method delete (line 122) | public function delete($id)
method increment (line 136) | public function increment($id, $offset = 1)
method decrement (line 150) | public function decrement($id, $offset = 1)
method clean (line 162) | public function clean()
method cache_info (line 174) | public function cache_info()
method get_metadata (line 187) | public function get_metadata($id)
method is_supported (line 215) | public function is_supported()
FILE: system/libraries/Cache/drivers/Cache_dummy.php
class CI_Cache_dummy (line 50) | class CI_Cache_dummy extends CI_Driver {
method get (line 60) | public function get($id)
method save (line 76) | public function save($id, $data, $ttl = 60, $raw = FALSE)
method delete (line 89) | public function delete($id)
method increment (line 103) | public function increment($id, $offset = 1)
method decrement (line 117) | public function decrement($id, $offset = 1)
method clean (line 129) | public function clean()
method cache_info (line 142) | public function cache_info($type = NULL)
method get_metadata (line 155) | public function get_metadata($id)
method is_supported (line 168) | public function is_supported()
FILE: system/libraries/Cache/drivers/Cache_file.php
class CI_Cache_file (line 50) | class CI_Cache_file extends CI_Driver {
method __construct (line 64) | public function __construct()
method get (line 80) | public function get($id)
method save (line 97) | public function save($id, $data, $ttl = 60, $raw = FALSE)
method delete (line 122) | public function delete($id)
method increment (line 136) | public function increment($id, $offset = 1)
method decrement (line 164) | public function decrement($id, $offset = 1)
method clean (line 190) | public function clean()
method cache_info (line 205) | public function cache_info($type = NULL)
method get_metadata (line 218) | public function get_metadata($id)
method is_supported (line 254) | public function is_supported()
method _get (line 269) | protected function _get($id)
FILE: system/libraries/Cache/drivers/Cache_memcached.php
class CI_Cache_memcached (line 50) | class CI_Cache_memcached extends CI_Driver {
method __construct (line 81) | public function __construct()
method get (line 153) | public function get($id)
method save (line 171) | public function save($id, $data, $ttl = 60, $raw = FALSE)
method delete (line 198) | public function delete($id)
method increment (line 212) | public function increment($id, $offset = 1)
method decrement (line 231) | public function decrement($id, $offset = 1)
method clean (line 248) | public function clean()
method cache_info (line 260) | public function cache_info()
method get_metadata (line 273) | public function get_metadata($id)
method is_supported (line 301) | public function is_supported()
method __destruct (line 315) | public function __destruct()
FILE: system/libraries/Cache/drivers/Cache_redis.php
class CI_Cache_redis (line 50) | class CI_Cache_redis extends CI_Driver
method __construct (line 101) | public function __construct()
method get (line 162) | public function get($key)
method save (line 201) | public function save($id, $data, $ttl = 60, $raw = FALSE)
method delete (line 240) | public function delete($key)
method increment (line 261) | public function increment($id, $offset = 1)
method decrement (line 275) | public function decrement($id, $offset = 1)
method clean (line 288) | public function clean()
method cache_info (line 304) | public function cache_info($type = NULL)
method get_metadata (line 317) | public function get_metadata($key)
method is_supported (line 339) | public function is_supported()
method __destruct (line 353) | public function __destruct()
FILE: system/libraries/Cache/drivers/Cache_wincache.php
class CI_Cache_wincache (line 53) | class CI_Cache_wincache extends CI_Driver {
method __construct (line 63) | public function __construct()
method get (line 82) | public function get($id)
method save (line 102) | public function save($id, $data, $ttl = 60, $raw = FALSE)
method delete (line 115) | public function delete($id)
method increment (line 129) | public function increment($id, $offset = 1)
method decrement (line 146) | public function decrement($id, $offset = 1)
method clean (line 161) | public function clean()
method cache_info (line 173) | public function cache_info()
method get_metadata (line 186) | public function get_metadata($id)
method is_supported (line 214) | public function is_supported()
FILE: system/libraries/Calendar.php
class CI_Calendar (line 52) | class CI_Calendar {
method __construct (line 131) | public function __construct($config = array())
method initialize (line 151) | public function initialize($config = array())
method generate (line 180) | public function generate($year = '', $month = '', $data = array())
method get_month_name (line 354) | public function get_month_name($month)
method get_day_names (line 381) | public function get_day_names($day_type = '')
method adjust_date (line 423) | public function adjust_date($month, $year)
method get_total_days (line 459) | public function get_total_days($month, $year)
method default_template (line 474) | public function default_template()
method parse_template (line 514) | public function parse_template()
FILE: system/libraries/Driver.php
class CI_Driver_Library (line 53) | class CI_Driver_Library {
method __get (line 78) | public function __get($child)
method load_driver (line 92) | public function load_driver($child)
class CI_Driver (line 209) | class CI_Driver {
method decorate (line 248) | public function decorate($parent)
method __call (line 296) | public function __call($method, $args = array())
method __get (line 316) | public function __get($var)
method __set (line 335) | public function __set($var, $val)
FILE: system/libraries/Email.php
class CI_Email (line 52) | class CI_Email {
method __construct (line 388) | public function __construct(array $config = array())
method initialize (line 406) | public function initialize(array $config = array())
method clear (line 441) | public function clear($clear_attachments = FALSE)
method from (line 474) | public function from($from, $name = '', $return_path = NULL)
method reply_to (line 522) | public function reply_to($replyto, $name = '')
method to (line 562) | public function to($to)
method cc (line 590) | public function cc($cc)
method bcc (line 618) | public function bcc($bcc, $limit = '')
method subject (line 653) | public function subject($subject)
method message (line 668) | public function message($body)
method attach (line 685) | public function attach($file, $disposition = '', $newname = NULL, $mim...
method attachment_cid (line 731) | public function attachment_cid($filename)
method set_header (line 755) | public function set_header($header, $value)
method _str_to_array (line 769) | protected function _str_to_array($email)
method set_alt_message (line 789) | public function set_alt_message($str)
method set_mailtype (line 803) | public function set_mailtype($type = 'text')
method set_wordwrap (line 817) | public function set_wordwrap($wordwrap = TRUE)
method set_protocol (line 831) | public function set_protocol($protocol = 'mail')
method set_priority (line 845) | public function set_priority($n = 3)
method set_newline (line 859) | public function set_newline($newline = "\n")
method set_crlf (line 873) | public function set_crlf($crlf = "\n")
method _get_message_id (line 886) | protected function _get_message_id()
method _get_protocol (line 899) | protected function _get_protocol()
method _get_encoding (line 913) | protected function _get_encoding()
method _get_content_type (line 935) | protected function _get_content_type()
method _set_date (line 956) | protected function _set_date()
method _get_mime_message (line 973) | protected function _get_mime_message()
method validate_email (line 986) | public function validate_email($email)
method valid_email (line 1014) | public function valid_email($email)
method clean_email (line 1039) | public function clean_email($email)
method _get_alt_message (line 1068) | protected function _get_alt_message()
method word_wrap (line 1102) | public function word_wrap($str, $charlim = NULL)
method _build_headers (line 1192) | protected function _build_headers()
method _write_headers (line 1209) | protected function _write_headers()
method _build_message (line 1246) | protected function _build_message()
method _attachments_have_multipart (line 1415) | protected function _attachments_have_multipart($type)
method _append_attachments (line 1438) | protected function _append_attachments(&$body, $boundary, $multipart =...
method _prep_quoted_printable (line 1476) | protected function _prep_quoted_printable($str)
method _prep_q_encoding (line 1584) | protected function _prep_q_encoding($str)
method send (line 1659) | public function send($auto_clear = TRUE)
method batch_bcc_send (line 1712) | public function batch_bcc_send()
method _unwrap_specials (line 1765) | protected function _unwrap_specials()
method _remove_nl_callback (line 1778) | protected function _remove_nl_callback($matches)
method _spool_email (line 1795) | protected function _spool_email()
method _validate_email_for_shell (line 1828) | protected function _validate_email_for_shell(&$email)
method _send_with_mail (line 1853) | protected function _send_with_mail()
method _send_with_sendmail (line 1881) | protected function _send_with_sendmail()
method _send_with_smtp (line 1924) | protected function _send_with_smtp()
method _smtp_end (line 2003) | protected function _smtp_end()
method _smtp_connect (line 2015) | protected function _smtp_connect()
method _send_command (line 2079) | protected function _send_command($cmd, $data = '')
method _smtp_authenticate (line 2153) | protected function _smtp_authenticate()
method _send_data (line 2213) | protected function _send_data($data)
method _get_smtp_data (line 2258) | protected function _get_smtp_data()
method _get_hostname (line 2288) | protected function _get_hostname()
method print_debugger (line 2307) | public function print_debugger($include = array('headers', 'subject', ...
method _set_error_message (line 2331) | protected function _set_error_message($msg, $val = '')
method _mime_types (line 2354) | protected function _mime_types($ext = '')
method __destruct (line 2377) | public function __destruct()
method strlen (line 2390) | protected static function strlen($str)
method substr (line 2407) | protected static function substr($str, $start, $length = NULL)
FILE: system/libraries/Encryption.php
class CI_Encryption (line 52) | class CI_Encryption {
method __construct (line 153) | public function __construct(array $params = array())
method initialize (line 184) | public function initialize(array $params)
method _mcrypt_initialize (line 228) | protected function _mcrypt_initialize($params)
method _openssl_initialize (line 287) | protected function _openssl_initialize($params)
method create_key (line 337) | public function create_key($length)
method encrypt (line 372) | public function encrypt($data, array $params = NULL)
method _mcrypt_encrypt (line 406) | protected function _mcrypt_encrypt($data, $params)
method _openssl_encrypt (line 471) | protected function _openssl_encrypt($data, $params)
method decrypt (line 507) | public function decrypt($data, array $params = NULL)
method _mcrypt_decrypt (line 565) | protected function _mcrypt_decrypt($data, $params)
method _openssl_decrypt (line 627) | protected function _openssl_decrypt($data, $params)
method _get_params (line 658) | protected function _get_params($params)
method _mcrypt_get_handle (line 741) | protected function _mcrypt_get_handle($cipher, $mode)
method _openssl_get_handle (line 755) | protected function _openssl_get_handle($cipher, $mode)
method _cipher_alias (line 773) | protected function _cipher_alias(&$cipher)
method hkdf (line 851) | public function hkdf($key, $digest = 'sha512', $salt = NULL, $length =...
method __get (line 888) | public function __get($key)
method strlen (line 911) | protected static function strlen($str)
method substr (line 928) | protected static function substr($str, $start, $length = NULL)
FILE: system/libraries/Form_validation.php
class CI_Form_validation (line 50) | class CI_Form_validation {
method __construct (line 121) | public function __construct($rules = array())
method set_rules (line 161) | public function set_rules($field, $label = null, $rules = null, $error...
method set_data (line 265) | public function set_data(array $data)
method set_message (line 287) | public function set_message($lang, $val = '')
method set_error_delimiters (line 309) | public function set_error_delimiters($prefix = '<p>', $suffix = '</p>')
method error (line 328) | public function error($field, $prefix = '', $suffix = '')
method error_array (line 357) | public function error_array()
method error_string (line 373) | public function error_string($prefix = '', $suffix = '')
method run (line 415) | public function run($config = NULL, &$data = NULL)
method _prepare_rules (line 513) | protected function _prepare_rules($rules)
method _reduce_array (line 565) | protected function _reduce_array($array, $keys, $i = 0)
method _reset_data_array (line 583) | protected function _reset_data_array(&$data)
method _execute (line 627) | protected function _execute($row, $rules, $postdata = NULL, $cycles = 0)
method _get_error_message (line 839) | protected function _get_error_message($rule, $field)
method _translate_fieldname (line 867) | protected function _translate_fieldname($fieldname)
method _build_error_msg (line 889) | protected function _build_error_msg($line, $field = '', $param = '')
method has_rule (line 910) | public function has_rule($field)
method set_value (line 927) | public function set_value($field = '', $default = '')
method set_select (line 957) | public function set_select($field = '', $value = '', $default = FALSE)
method set_radio (line 1000) | public function set_radio($field = '', $value = '', $default = FALSE)
method set_checkbox (line 1043) | public function set_checkbox($field = '', $value = '', $default = FALSE)
method required (line 1057) | public function required($str)
method regex_match (line 1073) | public function regex_match($str, $regex)
method matches (line 1087) | public function matches($str, $field)
method differs (line 1103) | public function differs($str, $field)
method is_unique (line 1120) | public function is_unique($str, $field)
method min_length (line 1137) | public function min_length($str, $val)
method max_length (line 1156) | public function max_length($str, $val)
method exact_length (line 1175) | public function exact_length($str, $val)
method valid_url (line 1193) | public function valid_url($str)
method valid_email (line 1239) | public function valid_email($str)
method valid_emails (line 1264) | public function valid_emails($str)
method valid_ip (line 1291) | public function valid_ip($ip, $which = '')
method valid_mac (line 1304) | public function valid_mac($mac)
method alpha (line 1329) | public function alpha($str)
method alpha_numeric (line 1342) | public function alpha_numeric($str)
method alpha_numeric_spaces (line 1355) | public function alpha_numeric_spaces($str)
method alpha_dash (line 1368) | public function alpha_dash($str)
method numeric (line 1381) | public function numeric($str)
method integer (line 1395) | public function integer($str)
method decimal (line 1408) | public function decimal($str)
method greater_than (line 1422) | public function greater_than($str, $min)
method greater_than_equal_to (line 1436) | public function greater_than_equal_to($str, $min)
method less_than (line 1450) | public function less_than($str, $max)
method less_than_equal_to (line 1464) | public function less_than_equal_to($str, $max)
method in_list (line 1478) | public function in_list($value, $list)
method is_natural (line 1491) | public function is_natural($str)
method is_natural_no_zero (line 1504) | public function is_natural_no_zero($str)
method valid_base64 (line 1520) | public function valid_base64($str)
method prep_url (line 1533) | public function prep_url($str = '')
method strip_image_tags (line 1551) | public function strip_image_tags($str)
method encode_php_tags (line 1564) | public function encode_php_tags($str)
method reset_validation (line 1579) | public function reset_validation()
FILE: system/libraries/Ftp.php
class CI_FTP (line 50) | class CI_FTP {
method __construct (line 113) | public function __construct($config = array())
method initialize (line 127) | public function initialize($config = array())
method connect (line 149) | public function connect($config = array())
method _login (line 192) | protected function _login()
method _is_conn (line 204) | protected function _is_conn()
method changedir (line 234) | public function changedir($path, $suppress_debug = FALSE)
method mkdir (line 265) | public function mkdir($path, $permissions = NULL)
method upload (line 304) | public function upload($locpath, $rempath, $mode = 'auto', $permission...
method download (line 358) | public function download($rempath, $locpath, $mode = 'auto')
method rename (line 400) | public function rename($old_file, $new_file, $move = FALSE)
method move (line 431) | public function move($old_file, $new_file)
method delete_file (line 444) | public function delete_file($filepath)
method delete_dir (line 475) | public function delete_dir($filepath)
method chmod (line 521) | public function chmod($path, $perm)
method list_files (line 549) | public function list_files($path = '.')
method mirror (line 570) | public function mirror($locpath, $rempath)
method _getext (line 617) | protected function _getext($filename)
method _settype (line 632) | protected function _settype($ext)
method close (line 646) | public function close()
method _error (line 661) | protected function _error($line)
FILE: system/libraries/Image_lib.php
class CI_Image_lib (line 50) | class CI_Image_lib {
method __construct (line 389) | public function __construct($props = array())
method clear (line 418) | public function clear()
method initialize (line 461) | public function initialize($props = array())
method resize (line 676) | public function resize()
method crop (line 692) | public function crop()
method rotate (line 708) | public function rotate()
method image_process_gd (line 753) | public function image_process_gd($action = 'resize')
method image_process_imagemagick (line 857) | public function image_process_imagemagick($action = 'resize')
method image_process_netpbm (line 927) | public function image_process_netpbm($action = 'resize')
method image_rotate_gd (line 1016) | public function image_rotate_gd()
method image_mirror_gd (line 1062) | public function image_mirror_gd()
method watermark (line 1141) | public function watermark()
method overlay_watermark (line 1153) | public function overlay_watermark()
method text_watermark (line 1267) | public function text_watermark()
method image_create_gd (line 1442) | public function image_create_gd($path = '', $image_type = '')
method image_save_gd (line 1505) | public function image_save_gd($resource)
method image_display_gd (line 1578) | public function image_display_gd($resource)
method image_reproportion (line 1623) | public function image_reproportion()
method get_image_properties (line 1675) | public function get_image_properties($path = '', $return = FALSE)
method size_calculator (line 1740) | public function size_calculator($vals)
method explode_name (line 1789) | public function explode_name($source_image)
method gd_loaded (line 1804) | public function gd_loaded()
method gd_version (line 1824) | public function gd_version()
method set_error (line 1843) | public function set_error($msg)
method display_errors (line 1874) | public function display_errors($open = '<p>', $close = '</p>')
FILE: system/libraries/Migration.php
class CI_Migration (line 53) | class CI_Migration {
method __construct (line 117) | public function __construct($config = array())
method version (line 197) | public function version($target_version)
method latest (line 331) | public function latest()
method current (line 355) | public function current()
method error_string (line 367) | public function error_string()
method find_migrations (line 379) | public function find_migrations()
method _get_migration_number (line 416) | protected function _get_migration_number($migration)
method _get_migration_name (line 430) | protected function _get_migration_name($migration)
method _get_version (line 444) | protected function _get_version()
method _update_version (line 458) | protected function _update_version($migration)
method __get (line 473) | public function __get($var)
FILE: system/libraries/Pagination.php
class CI_Pagination (line 50) | class CI_Pagination {
method __construct (line 331) | public function __construct($params = array())
method initialize (line 359) | public function initialize(array $params = array())
method create_links (line 395) | public function create_links()
method _parse_attributes (line 662) | protected function _parse_attributes($attributes)
method _attr_rel (line 686) | protected function _attr_rel($type)
FILE: system/libraries/Parser.php
class CI_Parser (line 50) | class CI_Parser {
method __construct (line 80) | public function __construct()
method parse (line 99) | public function parse($template, $data, $return = FALSE)
method parse_string (line 119) | public function parse_string($template, $data, $return = FALSE)
method _parse (line 137) | protected function _parse($template, $data, $return = FALSE)
method set_delimiters (line 175) | public function set_delimiters($l = '{', $r = '}')
method _parse_single (line 191) | protected function _parse_single($key, $val, $string)
method _parse_pair (line 208) | protected function _parse_pair($variable, $data, $string)
FILE: system/libraries/Profiler.php
class CI_Profiler (line 56) | class CI_Profiler {
method __construct (line 99) | public function __construct($config = array())
method set_sections (line 127) | public function set_sections($config)
method _compile_benchmarks (line 156) | protected function _compile_benchmarks()
method _compile_queries (line 198) | protected function _compile_queries()
method _compile_get (line 301) | protected function _compile_get()
method _compile_post (line 341) | protected function _compile_post()
method _compile_uri_string (line 393) | protected function _compile_uri_string()
method _compile_controller_info (line 411) | protected function _compile_controller_info()
method _compile_memory_usage (line 430) | protected function _compile_memory_usage()
method _compile_http_headers (line 450) | protected function _compile_http_headers()
method _compile_config (line 478) | protected function _compile_config()
method _compile_session_data (line 513) | protected function _compile_session_data()
method run (line 551) | public function run()
FILE: system/libraries/Session/CI_Session_driver_interface.php
type CI_Session_driver_interface (line 50) | interface CI_Session_driver_interface {
method open (line 52) | public function open($save_path, $name);
method close (line 53) | public function close();
method read (line 54) | public function read($session_id);
method write (line 55) | public function write($session_id, $session_data);
method destroy (line 56) | public function destroy($session_id);
method gc (line 57) | public function gc($maxlifetime);
method updateTimestamp (line 58) | public function updateTimestamp($session_id, $data);
method validateId (line 59) | public function validateId($session_id);
FILE: system/libraries/Session/OldSessionWrapper.php
class CI_SessionWrapper (line 50) | class CI_SessionWrapper implements SessionHandlerInterface, SessionUpdat...
method __construct (line 54) | public function __construct(CI_Session_driver_interface $driver)
method open (line 59) | public function open($save_path, $name)
method close (line 64) | public function close()
method read (line 69) | public function read($id)
method write (line 74) | public function write($id, $data)
method destroy (line 79) | public function destroy($id)
method gc (line 84) | public function gc($maxlifetime)
method updateTimestamp (line 89) | public function updateTimestamp($id, $data)
method validateId (line 94) | public function validateId($id)
FILE: system/libraries/Session/PHP8SessionWrapper.php
class CI_SessionWrapper (line 50) | class CI_SessionWrapper implements SessionHandlerInterface, SessionUpdat...
method __construct (line 54) | public function __construct(CI_Session_driver_interface $driver)
method open (line 59) | public function open(string $save_path, string $name): bool
method close (line 64) | public function close(): bool
method read (line 69) | #[\ReturnTypeWillChange]
method write (line 75) | public function write(string $id, string $data): bool
method destroy (line 80) | public function destroy(string $id): bool
method gc (line 85) | #[\ReturnTypeWillChange]
method updateTimestamp (line 91) | public function updateTimestamp(string $id, string$data): bool
method validateId (line 96) | public function validateId(string $id): bool
FILE: system/libraries/Session/Session.php
class CI_Session (line 50) | class CI_Session {
method __construct (line 71) | public function __construct(array $params = array())
method _ci_load_classes (line 206) | protected function _ci_load_classes($driver)
method _configure (line 280) | protected function _configure(&$params)
method _configure_sid_length (line 388) | protected function _configure_sid_length()
method _ci_init_vars (line 455) | protected function _ci_init_vars()
method mark_as_flash (line 490) | public function mark_as_flash($key)
method get_flash_keys (line 527) | public function get_flash_keys()
method unmark_flash (line 551) | public function unmark_flash($key)
method mark_as_temp (line 583) | public function mark_as_temp($key, $ttl = 300)
method get_temp_keys (line 635) | public function get_temp_keys()
method unmark_temp (line 659) | public function unmark_temp($key)
method __get (line 690) | public function __get($key)
method __isset (line 714) | public function __isset($key)
method __set (line 733) | public function __set($key, $value)
method sess_destroy (line 747) | public function sess_destroy()
method sess_regenerate (line 762) | public function sess_regenerate($destroy = FALSE)
method get_userdata (line 777) | public function &get_userdata()
method userdata (line 792) | public function userdata($key = NULL)
method set_userdata (line 832) | public function set_userdata($data, $value = NULL)
method unset_userdata (line 857) | public function unset_userdata($key)
method all_userdata (line 881) | public function all_userdata()
method has_userdata (line 896) | public function has_userdata($key)
method flashdata (line 911) | public function flashdata($key = NULL)
method set_flashdata (line 944) | public function set_flashdata($data, $value = NULL)
method keep_flashdata (line 960) | public function keep_flashdata($key)
method tempdata (line 975) | public function tempdata($key = NULL)
method set_tempdata (line 1009) | public function set_tempdata($data, $value = NULL, $ttl = 300)
method unset_tempdata (line 1025) | public function unset_tempdata($key)
FILE: system/libraries/Session/SessionUpdateTimestampHandlerInterface.php
type SessionUpdateTimestampHandlerInterface (line 52) | interface SessionUpdateTimestampHandlerInterface {
method updateTimestamp (line 54) | public function updateTimestamp($session_id, $data);
method validateId (line 55) | public function validateId($session_id);
FILE: system/libraries/Session/Session_driver.php
class CI_Session_driver (line 50) | abstract class CI_Session_driver {
method __construct (line 98) | public function __construct(&$params)
method php5_validate_id (line 123) | public function php5_validate_id()
method _cookie_destroy (line 141) | protected function _cookie_destroy()
method _get_lock (line 180) | protected function _get_lock($session_id)
method _release_lock (line 193) | protected function _release_lock()
FILE: system/libraries/Session/drivers/Session_database_driver.php
class CI_Session_database_driver (line 50) | class CI_Session_database_driver extends CI_Session_driver implements CI...
method __construct (line 81) | public function __construct(&$params)
method open (line 130) | public function open($save_path, $name)
method read (line 152) | public function read($session_id)
method write (line 208) | public function write($session_id, $session_data)
method close (line 280) | public function close()
method destroy (line 297) | public function destroy($session_id)
method gc (line 335) | public function gc($maxlifetime)
method updateTimestamp (line 356) | public function updateTimestamp($id, $unknown)
method validateId (line 381) | public function validateId($id)
method _get_lock (line 404) | protected function _get_lock($session_id)
method _release_lock (line 441) | protected function _release_lock()
FILE: system/libraries/Session/drivers/Session_files_driver.php
class CI_Session_files_driver (line 50) | class CI_Session_files_driver extends CI_Session_driver implements CI_Se...
method __construct (line 102) | public function __construct(&$params)
method open (line 133) | public function open($save_path, $name)
method read (line 169) | public function read($session_id)
method write (line 242) | public function write($session_id, $session_data)
method close (line 299) | public function close()
method destroy (line 322) | public function destroy($session_id)
method gc (line 363) | public function gc($maxlifetime)
method updateTimestamp (line 412) | public function updateTimestamp($id, $unknown)
method validateId (line 428) | public function validateId($id)
method strlen (line 443) | protected static function strlen($str)
FILE: system/libraries/Session/drivers/Session_memcached_driver.php
class CI_Session_memcached_driver (line 50) | class CI_Session_memcached_driver extends CI_Session_driver implements C...
method __construct (line 81) | public function __construct(&$params)
method open (line 107) | public function open($save_path, $name)
method read (line 164) | public function read($session_id)
method write (line 190) | public function write($session_id, $session_data)
method close (line 241) | public function close()
method destroy (line 268) | public function destroy($session_id)
method gc (line 290) | public function gc($maxlifetime)
method updateTimestamp (line 307) | public function updateTimestamp($id, $unknown)
method validateId (line 323) | public function validateId($id)
method _get_lock (line 339) | protected function _get_lock($session_id)
method _release_lock (line 398) | protected function _release_lock()
FILE: system/libraries/Session/drivers/Session_redis_driver.php
class CI_Session_redis_driver (line 50) | class CI_Session_redis_driver extends CI_Session_driver implements CI_Se...
method __construct (line 115) | public function __construct(&$params)
method open (line 185) | public function open($save_path, $name)
method read (line 238) | public function read($session_id)
method write (line 269) | public function write($session_id, $session_data)
method close (line 314) | public function close()
method destroy (line 350) | public function destroy($session_id)
method gc (line 376) | public function gc($maxlifetime)
method updateTimestamp (line 393) | public function updateTimestamp($id, $unknown)
method validateId (line 409) | public function validateId($id)
method _get_lock (line 424) | protected function _get_lock($session_id)
method _release_lock (line 485) | protected function _release_lock()
FILE: system/libraries/Table.php
class CI_Table (line 52) | class CI_Table {
method __construct (line 116) | public function __construct($config = array())
method set_template (line 135) | public function set_template($template)
method set_heading (line 156) | public function set_heading($args = array())
method make_columns (line 174) | public function make_columns($array = array(), $col_limit = 0)
method set_empty (line 220) | public function set_empty($value)
method add_row (line 236) | public function add_row($args = array())
method _prep_args (line 252) | protected function _prep_args($args)
method set_caption (line 278) | public function set_caption($caption)
method generate (line 292) | public function generate($table_data = NULL)
method clear (line 426) | public function clear()
method _set_from_db_result (line 443) | protected function _set_from_db_result($object)
method _set_from_array (line 465) | protected function _set_from_array($data)
method _compile_template (line 485) | protected function _compile_template()
method _default_template (line 510) | protected function _default_template()
FILE: system/libraries/Trackback.php
class CI_Trackback (line 52) | class CI_Trackback {
method __construct (line 105) | public function __construct()
method send (line 118) | public function send($tb_data)
method receive (line 192) | public function receive()
method send_error (line 241) | public function send_error($message = 'Incomplete Information')
method send_success (line 256) | public function send_success()
method data (line 269) | public function data($item)
method process (line 286) | public function process($url, $data)
method extract_urls (line 348) | public function extract_urls($urls)
method validate_url (line 370) | public function validate_url(&$url)
method get_id (line 388) | public function get_id($url)
method convert_xml (line 429) | public function convert_xml($str)
method limit_characters (line 454) | public function limit_characters($str, $n = 500, $end_char = '…')
method convert_ascii (line 490) | public function convert_ascii($str)
method set_error (line 537) | public function set_error($msg)
method display_errors (line 552) | public function display_errors($open = '<p>', $close = '</p>')
FILE: system/libraries/Typography.php
class CI_Typography (line 50) | class CI_Typography {
method auto_typography (line 109) | public function auto_typography($str, $reduce_linebreaks = FALSE)
method format_characters (line 294) | public function format_characters($str)
method _format_newlines (line 357) | protected function _format_newlines($str)
method _protect_characters (line 397) | protected function _protect_characters($match)
method nl2br_except_pre (line 410) | public function nl2br_except_pre($str)
FILE: system/libraries/Unit_test.php
class CI_Unit_test (line 52) | class CI_Unit_test {
method __construct (line 113) | public function __construct()
method set_test_items (line 128) | public function set_test_items($items)
method run (line 149) | public function run($test, $expected = TRUE, $test_name = 'undefined',...
method report (line 194) | public function report($result = array())
method use_strict (line 244) | public function use_strict($state = TRUE)
method active (line 259) | public function active($state = TRUE)
method result (line 274) | public function result($results = array())
method set_template (line 321) | public function set_template($template)
method _backtrace (line 335) | protected function _backtrace()
method _default_template (line 351) | protected function _default_template()
method _parse_template (line 368) | protected function _parse_template()
function is_true (line 393) | function is_true($test)
function is_false (line 404) | function is_false($test)
FILE: system/libraries/Upload.php
class CI_Upload (line 50) | class CI_Upload {
method __construct (line 293) | public function __construct($config = array())
method initialize (line 312) | public function initialize(array $config = array(), $reset = TRUE)
method do_upload (line 375) | public function do_upload($field = 'userfile')
method data (line 598) | public function data($index = NULL)
method set_upload_path (line 633) | public function set_upload_path($path)
method set_filename (line 653) | public function set_filename($path, $filename)
method set_max_filesize (line 694) | public function set_max_filesize($n)
method set_max_size (line 711) | protected function set_max_size($n)
method set_max_filename (line 724) | public function set_max_filename($n)
method set_max_width (line 738) | public function set_max_width($n)
method set_max_height (line 752) | public function set_max_height($n)
method set_min_width (line 766) | public function set_min_width($n)
method set_min_height (line 780) | public function set_min_height($n)
method set_allowed_types (line 794) | public function set_allowed_types($types)
method set_image_properties (line 812) | public function set_image_properties($path = '')
method set_xss_clean (line 841) | public function set_xss_clean($flag = FALSE)
method is_image (line 854) | public function is_image()
method is_allowed_filetype (line 884) | public function is_allowed_filetype($ignore_mime = FALSE)
method is_allowed_filesize (line 932) | public function is_allowed_filesize()
method is_allowed_dimensions (line 944) | public function is_allowed_dimensions()
method validate_upload_path (line 988) | public function validate_upload_path()
method get_extension (line 1025) | public function get_extension($filename)
method limit_filename_length (line 1047) | public function limit_filename_length($filename, $length)
method do_xss_clean (line 1076) | public function do_xss_clean()
method set_error (line 1150) | public function set_error($msg, $log_level = 'error')
method display_errors (line 1174) | public function display_errors($open = '<p>', $close = '</p>')
method _prep_filename (line 1192) | protected function _prep_filename($filename)
method _file_mime_type (line 1215) | protected function _file_mime_type($file)
FILE: system/libraries/User_agent.php
class CI_User_agent (line 52) | class CI_User_agent {
method __construct (line 175) | public function __construct()
method _load_agent_file (line 195) | protected function _load_agent_file()
method _compile_data (line 253) | protected function _compile_data()
method _set_platform (line 273) | protected function _set_platform()
method _set_browser (line 298) | protected function _set_browser()
method _set_robot (line 325) | protected function _set_robot()
method _set_mobile (line 351) | protected function _set_mobile()
method _set_languages (line 376) | protected function _set_languages()
method _set_charsets (line 396) | protected function _set_charsets()
method is_browser (line 417) | public function is_browser($key = NULL)
method is_robot (line 442) | public function is_robot($key = NULL)
method is_mobile (line 467) | public function is_mobile($key = NULL)
method is_referral (line 491) | public function is_referral()
method agent_string (line 518) | public function agent_string()
method platform (line 530) | public function platform()
method browser (line 542) | public function browser()
method version (line 554) | public function version()
method robot (line 566) | public function robot()
method mobile (line 577) | public function mobile()
method referrer (line 589) | public function referrer()
method languages (line 601) | public function languages()
method charsets (line 618) | public function charsets()
method accept_lang (line 636) | public function accept_lang($lang = 'en')
method accept_charset (line 649) | public function accept_charset($charset = 'utf-8')
method parse (line 662) | public function parse($string)
FILE: system/libraries/Xmlrpc.php
class CI_Xmlrpc (line 57) | class CI_Xmlrpc {
method __construct (line 265) | public function __construct($config = array())
method initialize (line 329) | public function initialize($config = array())
method server (line 354) | public function server($url, $port = 80, $proxy = FALSE, $proxy_port =...
method timeout (line 386) | public function timeout($seconds = 5)
method method (line 402) | public function method($function)
method request (line 415) | public function request($incoming)
method set_debug (line 439) | public function set_debug($flag = TRUE)
method values_parsing (line 452) | public function values_parsing($value)
method send_request (line 488) | public function send_request()
method display_error (line 510) | public function display_error()
method display_response (line 522) | public function display_response()
method send_error_message (line 536) | public function send_error_message($number, $message)
method send_response (line 549) | public function send_response($response)
class XML_RPC_Client (line 565) | class XML_RPC_Client extends CI_Xmlrpc
method __construct (line 657) | public function __construct($path, $server, $port = 80, $proxy = FALSE...
method send (line 684) | public function send($msg)
method sendPayload (line 703) | public function sendPayload($msg)
class XML_RPC_Response (line 786) | class XML_RPC_Response
method __construct (line 834) | public function __construct($val, $code = 0, $fstr = '')
method faultCode (line 861) | public function faultCode()
method faultString (line 873) | public function faultString()
method value (line 885) | public function value()
method prepare_response (line 897) | public function prepare_response()
method decode (line 927) | public function decode($array = NULL)
method xmlrpc_decoder (line 970) | public function xmlrpc_decoder($xmlrpc_val)
method iso8601_decode (line 1013) | public function iso8601_decode($time, $utc = FALSE)
class XML_RPC_Message (line 1034) | class XML_RPC_Message extends CI_Xmlrpc
method __construct (line 1074) | public function __construct($method, $pars = FALSE)
method createPayload (line 1096) | public function createPayload()
method parseResponse (line 1120) | public function parseResponse($fp)
method open_tag (line 1280) | public function open_tag($the_parser, $name)
method closing_tag (line 1381) | public function closing_tag($the_parser, $name)
method character_data (line 1515) | public function character_data($the_parser, $data)
method addParam (line 1546) | public function addParam($par)
method output_parameters (line 1559) | public function output_parameters(array $array = array())
method decode_message (line 1609) | public function decode_message($param)
class XML_RPC_Values (line 1653) | class XML_RPC_Values extends CI_Xmlrpc
method __construct (line 1678) | public function __construct($val = -1, $type = '')
method addScalar (line 1710) | public function addScalar($val, $type = 'string')
method addArray (line 1756) | public function addArray($vals)
method addStruct (line 1777) | public function addStruct($vals)
method kindOf (line 1796) | public function kindOf()
method serializedata (line 1816) | public function serializedata($typ, $val)
method serialize_class (line 1872) | public function serialize_class()
method serializeval (line 1885) | public function serializeval($o)
method scalarval (line 1899) | public function scalarval()
method iso8601_encode (line 1914) | public function iso8601_encode($time, $utc = FALSE)
FILE: system/libraries/Xmlrpcs.php
class CI_Xmlrpcs (line 62) | class CI_Xmlrpcs extends CI_Xmlrpc {
method __construct (line 98) | public function __construct($config = array())
method initialize (line 119) | public function initialize($config = array())
method set_system_methods (line 149) | public function set_system_methods()
method serve (line 178) | public function serve()
method add_to_map (line 199) | public function add_to_map($methodname, $function, $sig, $doc)
method parseRequest (line 216) | public function parseRequest($data = '')
method _execute (line 317) | protected function _execute($m)
method listMethods (line 421) | public function listMethods($m)
method methodSignature (line 448) | public function methodSignature($m)
method methodHelp (line 488) | public function methodHelp($m)
method multicall (line 511) | public function multicall($m)
method multicall_error (line 552) | public function multicall_error($err)
method do_multicall (line 571) | public function do_multicall($call)
FILE: system/libraries/Zip.php
class CI_Zip (line 56) | class CI_Zip {
method __construct (line 121) | public function __construct()
method add_dir (line 139) | public function add_dir($directory)
method _get_mod_time (line 163) | protected function _get_mod_time($dir)
method _add_dir (line 184) | protected function _add_dir($dir, $file_mtime, $file_mdate)
method add_data (line 236) | public function add_data($filepath, $data = NULL)
method _add_data (line 264) | protected function _add_data($filepath, $data, $file_mtime, $file_mdate)
method read_file (line 315) | public function read_file($path, $archive_filepath = FALSE)
method read_dir (line 354) | public function read_dir($path, $preserve_filepath = TRUE, $root_path ...
method get_zip (line 402) | public function get_zip()
method archive (line 430) | public function archive($filepath)
method download (line 461) | public function download($filename = 'backup.zip')
method clear_data (line 485) | public function clear_data()
method strlen (line 503) | protected static function strlen($str)
method substr (line 520) | protected static function substr($str, $start, $length = NULL)
FILE: tests/codeigniter/Setup_test.php
class Setup_test (line 3) | class Setup_test extends \PHPUnit\Framework\TestCase {
method test_bootstrap_constants (line 5) | public function test_bootstrap_constants()
FILE: tests/codeigniter/core/Benchmark_test.php
class Benchmark_test (line 3) | class Benchmark_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test_mark (line 12) | public function test_mark()
method test_elapsed_time (line 24) | public function test_elapsed_time()
method test_memory_usage (line 62) | public function test_memory_usage()
FILE: tests/codeigniter/core/Common_test.php
class Common_test (line 3) | class Common_test extends CI_TestCase {
method test_is_php (line 5) | public function test_is_php()
method test_stringify_attributes (line 13) | public function test_stringify_attributes()
method test_stringify_js_attributes (line 32) | public function test_stringify_js_attributes()
method test_html_escape (line 44) | public function test_html_escape()
method test_remove_invisible_characters (line 59) | public function test_remove_invisible_characters()
FILE: tests/codeigniter/core/Config_test.php
class Config_test (line 3) | class Config_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test_item (line 22) | public function test_item()
method test_set_item (line 36) | public function test_set_item()
method test_slash_item (line 46) | public function test_slash_item()
method test_base_url (line 57) | public function test_base_url()
method test_site_url (line 113) | public function test_site_url()
method test_load (line 155) | public function test_load()
method test_load_nonexistent (line 219) | public function test_load_nonexistent()
FILE: tests/codeigniter/core/Input_test.php
class Input_test (line 3) | class Input_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method tear_down (line 21) | public function tear_down()
method test_get_not_exists (line 29) | public function test_get_not_exists()
method test_get_exist (line 37) | public function test_get_exist()
method test_get_exist_with_xss_clean (line 48) | public function test_get_exist_with_xss_clean()
method test_post_not_exists (line 60) | public function test_post_not_exists()
method test_post_exist (line 68) | public function test_post_exist()
method test_post_exist_with_xss_clean (line 79) | public function test_post_exist_with_xss_clean()
method test_post_get (line 91) | public function test_post_get()
method test_post_get_array_notation (line 101) | public function test_post_get_array_notation()
method test_get_post (line 118) | public function test_get_post()
method test_get_post_array_notation (line 128) | public function test_get_post_array_notation()
method test_cookie (line 145) | public function test_cookie()
method test_server (line 154) | public function test_server()
method test_fetch_from_array (line 161) | public function test_fetch_from_array()
method test_valid_ip (line 190) | public function test_valid_ip()
method test_method (line 215) | public function test_method()
method test_is_ajax_request (line 227) | public function test_is_ajax_request()
method test_input_stream (line 238) | public function test_input_stream()
method test_set_cookie (line 245) | public function test_set_cookie()
method test_get_request_header (line 252) | public function test_get_request_header()
method test_ip_address (line 259) | public function test_ip_address()
method test_user_agent (line 320) | public function test_user_agent()
FILE: tests/codeigniter/core/Lang_test.php
class Lang_test (line 3) | class Lang_test extends CI_TestCase {
method set_up (line 7) | public function set_up()
method test_load (line 17) | public function test_load()
method test_non_alpha_idiom (line 47) | public function test_non_alpha_idiom()
method test_multiple_file_load (line 64) | public function test_multiple_file_load()
method test_alternative_path_load (line 81) | public function test_alternative_path_load()
method test_line (line 93) | public function test_line()
FILE: tests/codeigniter/core/Loader_test.php
class Loader_test (line 3) | class Loader_test extends CI_TestCase {
method set_up (line 7) | public function set_up()
method test_library (line 23) | public function test_library()
method test_bad_library (line 64) | public function test_bad_library()
method test_library_extension (line 77) | public function test_library_extension()
method test_library_config (line 123) | public function test_library_config()
method test_load_library_in_application_dir (line 163) | public function test_load_library_in_application_dir()
method test_driver (line 181) | public function test_driver()
method test_models (line 211) | public function test_models()
method test_model_subdir (line 233) | public function test_model_subdir()
method test_non_existent_model (line 268) | public function test_non_existent_model()
method test_invalid_model (line 280) | public function test_invalid_model()
method test_load_view (line 307) | public function test_load_view()
method test_non_existent_view (line 346) | public function test_non_existent_view()
method test_file (line 358) | public function test_file()
method test_vars (line 381) | public function test_vars()
method test_clear_vars (line 395) | public function test_clear_vars()
method test_helper (line 413) | public function test_helper()
method test_non_existent_helper (line 445) | public function test_non_existent_helper()
method test_loading_multiple_helpers (line 456) | public function test_loading_multiple_helpers()
method test_language (line 482) | public function test_language()
method test_packages (line 494) | public function test_packages()
method test_remove_package_path (line 537) | public function test_remove_package_path()
method test_load_config (line 555) | public function test_load_config()
method test_initialize (line 564) | public function test_initialize()
FILE: tests/codeigniter/core/Log_test.php
class Log_test (line 2) | class Log_test extends CI_TestCase {
method test_configuration (line 4) | public function test_configuration()
method test_format_line (line 50) | public function test_format_line()
FILE: tests/codeigniter/core/Model_test.php
class Model_test (line 3) | class Model_test extends CI_TestCase {
method set_up (line 7) | public function set_up()
method test__get (line 29) | public function test__get()
FILE: tests/codeigniter/core/Output_test.php
class Output_test (line 3) | class Output_test extends CI_TestCase {
method set_up (line 8) | public function set_up()
method test_set_get_append_output (line 27) | public function test_set_get_append_output()
method test_get_content_type (line 42) | public function test_get_content_type()
method test_get_header (line 49) | public function test_get_header()
FILE: tests/codeigniter/core/Security_test.php
class Security_test (line 3) | class Security_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test_csrf_verify (line 21) | public function test_csrf_verify()
method test_csrf_verify_invalid (line 30) | public function test_csrf_verify_invalid()
method test_csrf_verify_valid (line 42) | public function test_csrf_verify_valid()
method test_get_csrf_hash (line 52) | public function test_get_csrf_hash()
method test_get_csrf_token_name (line 59) | public function test_get_csrf_token_name()
method test_xss_clean (line 66) | public function test_xss_clean()
method test_xss_clean_string_array (line 77) | public function test_xss_clean_string_array()
method test_xss_clean_image_valid (line 94) | public function test_xss_clean_image_valid()
method test_xss_clean_image_invalid (line 105) | public function test_xss_clean_image_invalid()
method test_xss_clean_entity_double_encoded (line 116) | public function test_xss_clean_entity_double_encoded()
method text_xss_clean_js_link_removal (line 124) | public function text_xss_clean_js_link_removal()
method test_xss_clean_js_img_removal (line 135) | public function test_xss_clean_js_img_removal()
method test_xss_clean_sanitize_naughty_html_tags (line 143) | public function test_xss_clean_sanitize_naughty_html_tags()
method test_xss_clean_sanitize_naughty_html_attributes (line 167) | public function test_xss_clean_sanitize_naughty_html_attributes()
method test_naughty_html_plus_evil_attributes (line 239) | public function test_naughty_html_plus_evil_attributes()
method test_xss_hash (line 249) | public function test_xss_hash()
method test_get_random_bytes (line 264) | public function test_get_random_bytes()
method test_entity_decode (line 275) | public function test_entity_decode()
method test_sanitize_filename (line 297) | public function test_sanitize_filename()
method test_strip_image_tags (line 307) | public function test_strip_image_tags()
method test_csrf_set_hash (line 341) | public function test_csrf_set_hash()
FILE: tests/codeigniter/core/URI_test.php
class URI_test (line 3) | class URI_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test_filter_uri_passing (line 125) | public function test_filter_uri_passing()
method test_filter_uri_throws_error (line 140) | public function test_filter_uri_throws_error()
method test_segment (line 153) | public function test_segment()
method test_rsegment (line 162) | public function test_rsegment()
method test_uri_to_assoc (line 171) | public function test_uri_to_assoc()
method test_ruri_to_assoc (line 205) | public function test_ruri_to_assoc()
method test_assoc_to_uri (line 239) | public function test_assoc_to_uri()
method test_slash_segment (line 247) | public function test_slash_segment()
FILE: tests/codeigniter/core/Utf8_test.php
class Utf8_test (line 6) | class Utf8_test extends CI_TestCase {
method test___constructUTF8_ENABLED (line 8) | public function test___constructUTF8_ENABLED()
method test__constructUTF8_DISABLED (line 21) | public function test__constructUTF8_DISABLED()
method test_is_ascii (line 34) | public function test_is_ascii()
method test_clean_string (line 49) | public function test_clean_string()
method test_convert_to_utf8 (line 77) | public function test_convert_to_utf8()
FILE: tests/codeigniter/core/compat/hash_test.php
class hash_test (line 3) | class hash_test extends CI_TestCase {
method test_bootstrap (line 5) | public function test_bootstrap()
method test_hash_equals (line 25) | public function test_hash_equals()
method test_hash_pbkdf2 (line 45) | public function test_hash_pbkdf2()
FILE: tests/codeigniter/core/compat/mbstring_test.php
class mbstring_test (line 3) | class mbstring_test extends CI_TestCase {
method test_bootstrap (line 5) | public function test_bootstrap()
method test_mb_strlen (line 21) | public function test_mb_strlen()
method test_mb_strpos (line 32) | public function test_mb_strpos()
method test_mb_substr (line 44) | public function test_mb_substr()
FILE: tests/codeigniter/core/compat/password_test.php
class password_test (line 3) | class password_test extends CI_TestCase {
method test_bootstrap (line 5) | public function test_bootstrap()
method test_password_get_info (line 42) | public function test_password_get_info()
method test_password_hash (line 80) | public function test_password_hash()
method test_password_needs_rehash (line 115) | public function test_password_needs_rehash()
method test_password_verify (line 151) | public function test_password_verify()
FILE: tests/codeigniter/core/compat/standard_test.php
class standard_test (line 3) | class standard_test extends CI_TestCase {
method test_bootstrap (line 5) | public function test_bootstrap()
method test_array_column (line 24) | public function test_array_column()
class Foo (line 332) | class Foo {
method __toString (line 334) | public function __toString()
class Bar (line 340) | class Bar {
method __toString (line 342) | public function __toString()
FILE: tests/codeigniter/database/DB_driver_test.php
class DB_driver_test (line 3) | class DB_driver_test extends CI_TestCase {
method test_initialize (line 5) | public function test_initialize()
method pdo (line 12) | protected function pdo($config)
method mysql (line 17) | protected function mysql($config)
method mysqli (line 22) | protected function mysqli($config)
method sqlite (line 27) | protected function sqlite($config)
method pgsql (line 32) | protected function pgsql($config)
FILE: tests/codeigniter/database/DB_test.php
class DB_test (line 3) | class DB_test extends CI_TestCase {
method test_db_invalid (line 5) | public function test_db_invalid()
method test_db_valid (line 25) | public function test_db_valid()
FILE: tests/codeigniter/database/query_builder/count_test.php
class Count_test (line 3) | class Count_test extends CI_TestCase {
method set_up (line 10) | public function set_up()
method test_count_all (line 23) | public function test_count_all()
method test_count_all_results (line 33) | public function test_count_all_results()
method test_count_all_results_limit (line 43) | public function test_count_all_results_limit()
FILE: tests/codeigniter/database/query_builder/delete_test.php
class Delete_test (line 3) | class Delete_test extends CI_TestCase {
method set_up (line 10) | public function set_up()
method test_delete (line 23) | public function test_delete()
method test_delete_several_tables (line 44) | public function test_delete_several_tables()
FILE: tests/codeigniter/database/query_builder/distinct_test.php
class Distinct_test (line 3) | class Distinct_test extends CI_TestCase {
method set_up (line 10) | public function set_up()
method test_distinct (line 23) | public function test_distinct()
FILE: tests/codeigniter/database/query_builder/empty_test.php
class Empty_test (line 3) | class Empty_test extends CI_TestCase {
method set_up (line 10) | public function set_up()
method test_empty_table (line 23) | public function test_empty_table()
FILE: tests/codeigniter/database/query_builder/escape_test.php
class Escape_test (line 3) | class Escape_test extends CI_TestCase {
method set_up (line 10) | public function set_up()
method test_escape_like_percent_sign (line 23) | public function test_escape_like_percent_sign()
method test_escape_like_backslash_sign (line 48) | public function test_escape_like_backslash_sign()
FILE: tests/codeigniter/database/query_builder/from_test.php
class From_test (line 3) | class From_test extends CI_TestCase {
method set_up (line 10) | public function set_up()
method test_from_simple (line 23) | public function test_from_simple()
method test_from_with_where (line 37) | public function test_from_with_where()
FILE: tests/codeigniter/database/query_builder/get_test.php
class Get_test (line 3) | class Get_test extends CI_TestCase {
method set_up (line 10) | public function set_up()
method test_get_simple (line 23) | public function test_get_simple()
method test_get_where (line 42) | public function test_get_where()
FILE: tests/codeigniter/database/query_builder/group_test.php
class Group_test (line 3) | class Group_test extends CI_TestCase {
method set_up (line 10) | public function set_up()
method test_group_by (line 23) | public function test_group_by()
method test_having_by (line 39) | public function test_having_by()
method test_having_in (line 56) | public function test_having_in()
method test_or_having_in (line 73) | public function test_or_having_in()
method test_having_not_in (line 91) | public function test_having_not_in()
method test_or_having_not_in (line 108) | public function test_or_having_not_in()
FILE: tests/codeigniter/database/query_builder/insert_test.php
class Insert_test (line 3) | class Insert_test extends CI_TestCase {
method set_up (line 11) | public function set_up()
method test_insert (line 26) | public function test_insert()
method test_insert_batch (line 45) | public function test_insert_batch()
FILE: tests/codeigniter/database/query_builder/join_test.php
class Join_test (line 3) | class Join_test extends CI_TestCase {
method set_up (line 10) | public function set_up()
method test_join_simple (line 23) | public function test_join_simple()
method test_join_escape_is_null (line 40) | public function test_join_escape_is_null()
method test_join_escape_multiple_conditions (line 63) | public function test_join_escape_multiple_conditions()
method test_join_escape_multiple_conditions_with_parentheses (line 83) | public function test_join_escape_multiple_conditions_with_parentheses()
FILE: tests/codeigniter/database/query_builder/like_test.php
class Like_test (line 3) | class Like_test extends CI_TestCase {
method set_up (line 10) | public function set_up()
method test_like (line 23) | public function test_like()
method test_or_like (line 39) | public function test_or_like()
method test_not_like (line 58) | public function test_not_like()
method test_or_not_like (line 76) | public function test_or_not_like()
method test_like_spaces_and_tabs (line 97) | public function test_like_spaces_and_tabs()
method test_like_set_side (line 113) | public function test_like_set_side($str, $side, $expected_name)
method like_set_side_provider (line 120) | public function like_set_side_provider()
FILE: tests/codeigniter/database/query_builder/limit_test.php
class Limit_test (line 3) | class Limit_test extends CI_TestCase {
method set_up (line 10) | public function set_up()
method test_limit (line 23) | public function test_limit()
method test_limit_and_offset (line 37) | public function test_limit_and_offset()
FILE: tests/codeigniter/database/query_builder/order_test.php
class Order_test (line 3) | class Order_test extends CI_TestCase {
method set_up (line 10) | public function set_up()
method test_order_ascending (line 23) | public function test_order_ascending()
method test_order_descending (line 42) | public function test_order_descending()
FILE: tests/codeigniter/database/query_builder/select_test.php
class Select_test (line 3) | class Select_test extends CI_TestCase {
method set_up (line 10) | public function set_up()
method test_select_only_one_collumn (line 23) | public function test_select_only_one_collumn()
method test_select_min (line 40) | public function test_select_min()
method test_select_max (line 55) | public function test_select_max()
method test_select_avg (line 70) | public function test_select_avg()
method test_select_sum (line 85) | public function test_select_sum()
FILE: tests/codeigniter/database/query_builder/truncate_test.php
class Truncate_test (line 3) | class Truncate_test extends CI_TestCase {
method set_up (line 10) | public function set_up()
method test_truncate (line 23) | public function test_truncate()
method test_truncate_with_from (line 42) | public function test_truncate_with_from()
FILE: tests/codeigniter/database/query_builder/update_test.php
class Update_test (line 3) | class Update_test extends CI_TestCase {
method set_up (line 10) | public function set_up()
method test_update (line 23) | public function test_update()
method test_update_with_set (line 42) | public function test_update_with_set()
FILE: tests/codeigniter/database/query_builder/where_test.php
class Where_test (line 3) | class Where_test extends CI_TestCase {
method set_up (line 10) | public function set_up()
method test_where_simple_key_value (line 23) | public function test_where_simple_key_value()
method test_where_custom_key_value (line 36) | public function test_where_custom_key_value()
method test_where_associative_array (line 47) | public function test_where_associative_array()
method test_where_custom_string (line 64) | public function test_where_custom_string()
method test_where_or (line 81) | public function test_where_or()
method test_where_in (line 99) | public function test_where_in()
method test_where_not_in (line 115) | public function test_where_not_in()
method test_issue4093 (line 128) | public function test_issue4093()
FILE: tests/codeigniter/helpers/array_helper_test.php
class Array_helper_test (line 3) | class Array_helper_test extends CI_TestCase {
method set_up (line 12) | public function set_up()
method test_element_with_existing_item (line 19) | public function test_element_with_existing_item()
method test_random_element (line 28) | public function test_random_element()
method test_elements (line 39) | public function test_elements()
FILE: tests/codeigniter/helpers/captcha_helper_test.php
class Captcha_helper_test (line 3) | class Captcha_helper_test extends CI_TestCase {
method test_create_captcha (line 5) | public function test_create_captcha()
FILE: tests/codeigniter/helpers/cookie_helper_test.php
class Cookie_helper_test (line 3) | class Cookie_helper_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test_set_cookie (line 12) | function test_set_cookie()
method test_get_cookie (line 27) | function test_get_cookie()
method test_delete_cookie (line 46) | function test_delete_cookie()
FILE: tests/codeigniter/helpers/date_helper_test.php
class Date_helper_test (line 3) | class Date_helper_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test_now_local (line 13) | public function test_now_local()
method test_now_utc (line 35) | public function test_now_utc()
method test_mdate (line 58) | public function test_mdate()
method test_timespan (line 68) | public function test_timespan()
method test_days_in_month (line 86) | public function test_days_in_month()
method test_local_to_gmt (line 95) | public function test_local_to_gmt()
method test_gmt_to_local (line 108) | public function test_gmt_to_local()
method test_mysql_to_unix (line 115) | public function test_mysql_to_unix()
method test_unix_to_human (line 122) | public function test_unix_to_human()
method test_human_to_unix (line 131) | public function test_human_to_unix()
method test_timezones (line 140) | public function test_timezones()
method test_date_range (line 196) | public function test_date_range()
FILE: tests/codeigniter/helpers/directory_helper_test.php
class Directory_helper_test (line 3) | class Directory_helper_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test_directory_map (line 15) | public function test_directory_map()
FILE: tests/codeigniter/helpers/download_helper_test.php
class Download_helper_test (line 3) | class Download_helper_test extends CI_TestCase {
method test_force_download (line 5) | public function test_force_download()
FILE: tests/codeigniter/helpers/file_helper_test.php
class File_helper_Test (line 3) | class File_helper_Test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test_octal_permissions (line 14) | public function test_octal_permissions()
method test_symbolic_permissions (line 31) | public function test_symbolic_permissions()
method test_get_mime_by_extension (line 45) | public function test_get_mime_by_extension()
method test_get_file_info (line 69) | public function test_get_file_info()
method _test_get_file_info (line 88) | private function _test_get_file_info($vals)
method test_write_file (line 119) | public function test_write_file()
FILE: tests/codeigniter/helpers/form_helper_test.php
class Form_helper_test (line 3) | class Form_helper_test extends CI_TestCase
method set_up (line 5) | public function set_up()
method test_form_hidden (line 12) | public function test_form_hidden()
method test_form_input (line 25) | public function test_form_input()
method test_form_password (line 46) | public function test_form_password()
method test_form_upload (line 58) | public function test_form_upload()
method test_form_textarea (line 70) | public function test_form_textarea()
method test_form_dropdown (line 82) | public function test_form_dropdown()
method test_form_multiselect (line 147) | public function test_form_multiselect()
method test_form_fieldset (line 171) | public function test_form_fieldset()
method test_form_fieldset_close (line 184) | public function test_form_fieldset_close()
method test_form_checkbox (line 195) | public function test_form_checkbox()
method test_form_radio (line 207) | public function test_form_radio()
method test_form_submit (line 219) | public function test_form_submit()
method test_form_label (line 231) | public function test_form_label()
method test_form_reset (line 242) | public function test_form_reset()
method test_form_button (line 254) | public function test_form_button()
method test_form_close (line 266) | public function test_form_close()
FILE: tests/codeigniter/helpers/html_helper_test.php
class Html_helper_test (line 3) | class Html_helper_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test_heading (line 12) | public function test_heading()
method test_heading_array_attributes (line 18) | public function test_heading_array_attributes()
method test_heading_object_attributes (line 24) | public function test_heading_object_attributes()
method test_img (line 36) | public function test_img()
method test_Ul (line 50) | public function test_Ul()
method test_meta (line 82) | public function test_meta()
FILE: tests/codeigniter/helpers/inflector_helper_test.php
class Inflector_helper_test (line 3) | class Inflector_helper_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test_singular (line 10) | public function test_singular()
method test_plural (line 28) | public function test_plural()
method test_camelize (line 47) | public function test_camelize()
method test_underscore (line 64) | public function test_underscore()
method test_humanize (line 81) | public function test_humanize()
method test_ordinal_format (line 98) | public function test_ordinal_format()
FILE: tests/codeigniter/helpers/language_helper_test.php
class Language_helper_test (line 3) | class Language_helper_test extends CI_TestCase {
method test_lang (line 5) | public function test_lang()
FILE: tests/codeigniter/helpers/number_helper_test.php
class Number_helper_test (line 3) | class Number_helper_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test_byte_format (line 28) | public function test_byte_format()
method test_kb_format (line 33) | public function test_kb_format()
method test_kb_format_medium (line 38) | public function test_kb_format_medium()
method test_kb_format_large (line 43) | public function test_kb_format_large()
method test_mb_format (line 48) | public function test_mb_format()
method test_gb_format (line 53) | public function test_gb_format()
method test_tb_format (line 58) | public function test_tb_format()
FILE: tests/codeigniter/helpers/path_helper_test.php
class Path_helper_test (line 3) | class Path_helper_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test_set_realpath (line 10) | public function test_set_realpath()
method test_set_realpath_nonexistent_directory (line 15) | public function test_set_realpath_nonexistent_directory()
method test_set_realpath_error_trigger (line 21) | public function test_set_realpath_error_trigger()
FILE: tests/codeigniter/helpers/security_helper_test.php
class Security_helper_tests (line 3) | class Security_helper_tests extends CI_TestCase {
method setUp (line 5) | function setUp()
method test_xss_clean (line 13) | function test_xss_clean()
method test_sanitize_filename (line 20) | function test_sanitize_filename()
method test_strip_image_tags (line 28) | function test_strip_image_tags()
method test_encode_php_tags (line 35) | function test_encode_php_tags()
FILE: tests/codeigniter/helpers/string_helper_test.php
class String_helper_test (line 3) | class String_helper_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test_strip_slashes (line 10) | public function test_strip_slashes()
method test_strip_quotes (line 27) | public function test_strip_quotes()
method test_quotes_to_entities (line 42) | public function test_quotes_to_entities()
method test_reduce_double_slashes (line 57) | public function test_reduce_double_slashes()
method test_reduce_multiples (line 73) | public function test_reduce_multiples()
method test_random_string (line 98) | public function test_random_string()
method test_increment_string (line 107) | public function test_increment_string()
FILE: tests/codeigniter/helpers/text_helper_test.php
class Text_helper_test (line 3) | class Text_helper_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test_word_limiter (line 12) | public function test_word_limiter()
method test_character_limiter (line 23) | public function test_character_limiter()
method test_ascii_to_entities (line 35) | public function test_ascii_to_entities()
method test_entities_to_ascii (line 50) | public function test_entities_to_ascii()
method test_convert_accented_characters (line 65) | public function test_convert_accented_characters()
method test_censored_words (line 79) | public function test_censored_words()
method test_highlight_code (line 102) | public function test_highlight_code()
method test_highlight_phrase (line 114) | public function test_highlight_phrase()
method test_ellipsize (line 136) | public function test_ellipsize()
method test_word_wrap (line 170) | public function test_word_wrap()
method test_default_word_wrap_charlim (line 178) | public function test_default_word_wrap_charlim()
FILE: tests/codeigniter/helpers/url_helper_test.php
class Url_helper_test (line 3) | class Url_helper_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test_url_title (line 13) | public function test_url_title()
method test_url_title_extra_dashes (line 33) | public function test_url_title_extra_dashes()
method test_prep_url (line 50) | public function test_prep_url()
method test_auto_link_url (line 58) | public function test_auto_link_url()
method test_pull_675 (line 78) | public function test_pull_675()
method test_issue_5331 (line 92) | public function test_issue_5331()
FILE: tests/codeigniter/helpers/xml_helper_test.php
class Xml_helper_test (line 3) | class Xml_helper_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test_xml_convert (line 10) | public function test_xml_convert()
FILE: tests/codeigniter/libraries/Calendar_test.php
class Calendar_test (line 3) | class Calendar_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test_initialize (line 19) | public function test_initialize()
method test_generate (line 31) | public function test_generate()
method test_get_month_name (line 113) | public function test_get_month_name()
method test_get_day_names (line 124) | public function test_get_day_names()
method test_adjust_date (line 161) | public function test_adjust_date()
method test_get_total_days (line 169) | public function test_get_total_days()
method test_default_template (line 190) | public function test_default_template()
FILE: tests/codeigniter/libraries/Driver_test.php
class Driver_test (line 6) | class Driver_test extends CI_TestCase {
method set_up (line 13) | public function set_up()
method test_load_driver (line 33) | public function test_load_driver()
method test_load_app_driver (line 71) | public function test_load_app_driver()
method test_load_driver_ext (line 102) | public function test_load_driver_ext()
method test_decorate (line 144) | public function test_decorate()
FILE: tests/codeigniter/libraries/Encryption_test.php
class Encryption_test (line 3) | class Encryption_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test___construct (line 22) | public function test___construct()
method test_hkdf (line 52) | public function test_hkdf()
method test__get_params (line 129) | public function test__get_params()
method test_initialize_encrypt_decrypt (line 202) | public function test_initialize_encrypt_decrypt()
method test_encrypt_decrypt_custom (line 227) | public function test_encrypt_decrypt_custom()
method test__mcrypt_get_handle (line 254) | public function test__mcrypt_get_handle()
method test__openssl_mcrypt_get_handle (line 273) | public function test__openssl_mcrypt_get_handle()
method test_portability (line 291) | public function test_portability()
method test_magic_get (line 395) | public function test_magic_get()
FILE: tests/codeigniter/libraries/Form_validation_test.php
class Form_validation_test (line 3) | class Form_validation_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test_empty_array_input (line 29) | public function test_empty_array_input()
method test_rule_required (line 39) | public function test_rule_required()
method test_rule_is_array (line 58) | public function test_rule_is_array()
method test_rule_matches (line 65) | public function test_rule_matches()
method test_rule_differs (line 80) | public function test_rule_differs()
method test_rule_min_length (line 95) | public function test_rule_min_length()
method test_rule_max_length (line 105) | public function test_rule_max_length()
method test_rule_exact_length (line 114) | public function test_rule_exact_length()
method test_rule_greater_than (line 124) | public function test_rule_greater_than()
method test_rule_greater_than_equal_to (line 134) | public function test_rule_greater_than_equal_to()
method test_rule_less_than (line 143) | public function test_rule_less_than()
method test_rule_less_than_equal_to (line 152) | public function test_rule_less_than_equal_to()
method test_rule_in_list (line 162) | public function test_rule_in_list()
method test_rule_alpha (line 173) | public function test_rule_alpha()
method test_rule_alpha_numeric (line 182) | public function test_rule_alpha_numeric()
method test_rule_alpha_numeric_spaces (line 190) | public function test_rule_alpha_numeric_spaces()
method test_rule_alpha_dash (line 197) | public function test_rule_alpha_dash()
method test_rule_numeric (line 204) | public function test_rule_numeric()
method test_rule_integer (line 214) | public function test_rule_integer()
method test_rule_decimal (line 225) | public function test_rule_decimal()
method test_rule_is_natural (line 236) | public function test_rule_is_natural()
method test_rule_is_natural_no_zero (line 245) | public function test_rule_is_natural_no_zero()
method test_rule_valid_url (line 254) | public function test_rule_valid_url()
method test_rule_valid_email (line 277) | public function test_rule_valid_email()
method test_rule_valid_emails (line 284) | public function test_rule_valid_emails()
method test_rule_valid_ip (line 293) | public function test_rule_valid_ip()
method test_rule_valid_mac (line 306) | public function test_rule_valid_mac()
method test_rule_valid_base64 (line 319) | public function test_rule_valid_base64()
method test_set_data (line 325) | public function test_set_data()
method test_set_message (line 343) | public function test_set_message()
method test_set_error_delimiters (line 370) | public function test_set_error_delimiters()
method test_error_array (line 386) | public function test_error_array()
method test_error_string (line 399) | public function test_error_string()
method test_run (line 426) | public function test_run()
method test_set_rules_exception (line 456) | public function test_set_rules_exception()
method test_has_rule (line 462) | public function test_has_rule()
method test_set_value (line 470) | public function test_set_value()
method test_issue_5202 (line 487) | public function test_issue_5202()
method test_set_select (line 500) | public function test_set_select()
method test_set_radio (line 535) | public function test_set_radio()
method test_set_checkbox (line 571) | public function test_set_checkbox()
method test_regex_match (line 606) | public function test_regex_match()
method test_prep_url (line 613) | public function test_prep_url()
method test_encode_php_tags (line 622) | public function test_encode_php_tags()
method test_validated_data_assignment (line 628) | public function test_validated_data_assignment()
method run_rules (line 651) | public function run_rules($rules, $values)
FILE: tests/codeigniter/libraries/Parser_test.php
class Parser_test (line 3) | class Parser_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test_set_delimiters (line 13) | public function test_set_delimiters()
method test_parse_string (line 36) | public function test_parse_string()
method test_parse (line 52) | public function test_parse()
method _parse_no_template (line 61) | private function _parse_no_template()
method _parse_var_pair (line 68) | private function _parse_var_pair()
method _mismatched_var_pair (line 82) | private function _mismatched_var_pair()
FILE: tests/codeigniter/libraries/Session_test.php
class Session_test (line 6) | class Session_test extends CI_TestCase {
method set_up (line 20) | public function set_up()
method tear_down (line 71) | public function tear_down()
method test_set_userdata (line 88) | public function test_set_userdata()
method test_has_userdata (line 120) | public function test_has_userdata()
method test_all_userdata (line 143) | public function test_all_userdata()
method test_unset_userdata (line 178) | public function test_unset_userdata()
method test_flashdata (line 202) | public function test_flashdata()
method test_keep_flashdata (line 232) | public function test_keep_flashdata()
method test_keep_flashdata_with_array (line 265) | public function test_keep_flashdata_with_array()
method test_all_flashdata (line 319) | public function test_all_flashdata()
method test_set_tempdata (line 350) | public function test_set_tempdata()
method test_unset_tempdata (line 377) | public function test_unset_tempdata()
method test_sess_regenerate (line 401) | public function test_sess_regenerate()
method test_sess_destroy (line 421) | public function test_sess_destroy()
FILE: tests/codeigniter/libraries/Table_test.php
class Table_test (line 3) | class Table_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test_set_template (line 14) | public function test_set_template()
method test_set_empty (line 24) | public function test_set_empty()
method test_set_caption (line 30) | public function test_set_caption()
method test_set_heading (line 39) | public function test_set_heading()
method test_add_row (line 60) | public function test_add_row()
method test_prep_args (line 85) | public function test_prep_args()
method test_default_template_keys (line 108) | public function test_default_template_keys()
method test_compile_template (line 126) | public function test_compile_template()
method test_make_columns (line 145) | public function test_make_columns()
method test_clear (line 175) | public function test_clear()
method test_set_from_array (line 201) | public function test_set_from_array()
method test_set_from_object (line 234) | public function test_set_from_object()
method test_generate (line 260) | public function test_generate()
class DB_result_dummy (line 286) | class DB_result_dummy extends CI_DB_result
method list_fields (line 288) | public function list_fields()
method result_array (line 293) | public function result_array()
FILE: tests/codeigniter/libraries/Typography_test.php
class Typography_test (line 3) | class Typography_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test_format_characters (line 18) | public function test_format_characters()
method test_nl2br_except_pre (line 42) | public function test_nl2br_except_pre()
method test_auto_typography (line 89) | public function test_auto_typography()
method _blank_string (line 102) | private function _blank_string()
method _standardize_new_lines (line 110) | private function _standardize_new_lines()
method _reduce_linebreaks (line 125) | private function _reduce_linebreaks()
method _remove_comments (line 135) | private function _remove_comments()
method _protect_pre (line 145) | private function _protect_pre()
method _no_opening_block (line 155) | private function _no_opening_block()
method _protect_braced_quotes (line 165) | public function _protect_braced_quotes()
FILE: tests/codeigniter/libraries/Upload_test.php
class Upload_test (line 3) | class Upload_test extends CI_TestCase {
method set_up (line 5) | public function set_up()
method test___construct_initialize (line 17) | public function test___construct_initialize()
method test_do_upload (line 50) | public function test_do_upload()
method test_data (line 57) | function test_data()
method test_set_upload_path (line 87) | function test_set_upload_path()
method test_set_filename (line 96) | function test_set_filename()
method test_set_max_filesize (line 109) | function test_set_max_filesize()
method test_set_max_filename (line 115) | function test_set_max_filename()
method test_set_max_width (line 121) | function test_set_max_width()
method test_set_max_height (line 127) | function test_set_max_height()
method test_set_allowed_types (line 133) | function test_set_allowed_types()
method test_set_image_properties (line 142) | function test_set_image_properties()
method test_set_xss_clean (line 162) | function test_set_xss_clean()
method test_is_image (line 171) | function test_is_image()
method test_is_allowed_filetype (line 180) | function test_is_allowed_filetype()
method test_is_allowed_filesize (line 200) | function test_is_allowed_filesize()
method test_is_allowed_dimensions (line 211) | function test_is_allowed_dimensions()
method test_validate_upload_path (line 230) | function test_validate_upload_path()
method test_get_extension (line 241) | function test_get_extension()
method test_limit_filename_length (line 248) | function test_limit_filename_length()
method test_do_xss_clean (line 254) | function test_do_xss_clean()
method test_set_error (line 277) | function test_set_error()
method test_display_errors (line 293) | function test_display_errors()
FILE: tests/codeigniter/libraries/Useragent_test.php
class UserAgent_test (line 3) | class UserAgent_test extends CI_TestCase {
method set_up (line 8) | public function set_up()
method test_accept_lang (line 20) | public function test_accept_lang()
method test_mobile (line 31) | public function test_mobile()
method test_is_functions (line 41) | public function test_is_functions()
method test_referrer (line 52) | public function test_referrer()
method test_agent_string (line 66) | public function test_agent_string()
method test_browser_info (line 73) | public function test_browser_info()
method test_charsets (line 83) | public function test_charsets()
method test_parse (line 108) | public function test_parse()
FILE: tests/mocks/autoloader.php
function autoload (line 12) | function autoload($class)
FILE: tests/mocks/ci_testcase.php
class CI_TestCase (line 3) | class CI_TestCase extends \PHPUnit\Framework\TestCase {
method __construct (line 28) | public function __construct($name = null, array $data = array(), $data...
method setUp (line 36) | public function setUp()
method tearDown (line 53) | public function tearDown()
method instance (line 63) | public static function instance()
method ci_set_config (line 70) | public function ci_set_config($key = '', $val = '')
method ci_get_config (line 96) | public function ci_get_config()
method ci_instance (line 103) | public function ci_instance($obj = FALSE)
method ci_instance_var (line 115) | public function ci_instance_var($name, $obj = FALSE)
method ci_core_class (line 136) | public function &ci_core_class($name)
method ci_set_core_class (line 167) | public function ci_set_core_class($name, $obj)
method ci_vfs_mkdir (line 180) | public function ci_vfs_mkdir($name, $root = NULL)
method ci_vfs_create (line 203) | public function ci_vfs_create($file, $content = '', $root = NULL, $pat...
method ci_vfs_clone (line 279) | public function ci_vfs_clone($path, $dest='')
method ci_vfs_path (line 317) | public function ci_vfs_path($path, $base = '')
method runBare (line 350) | public function runBare()
method helper (line 358) | public function helper($name)
method lang (line 365) | public function lang($name)
method __call (line 376) | public function __call($method, $args)
method setExpectedException (line 386) | public function setExpectedException($exception_class, $exception_mess...
FILE: tests/mocks/ci_testconfig.php
class CI_TestConfig (line 3) | class CI_TestConfig extends CI_Config {
method item (line 9) | public function item($key, $index = '')
method load (line 14) | public function load($file = '', $use_sections = FALSE, $fail_graceful...
FILE: tests/mocks/core/common.php
function get_instance (line 7) | function &get_instance()
function get_config (line 19) | function &get_config()
function config_item (line 29) | function config_item($item)
function get_mimes (line 49) | function &get_mimes()
function show_error (line 97) | function show_error($message, $status_code = 500, $heading = 'An Error W...
function show_404 (line 105) | function show_404($page = '', $log_error = TRUE)
function _exception_handler (line 113) | function _exception_handler($severity, $message, $filepath, $line)
function is_loaded (line 123) | function &is_loaded()
function log_message (line 132) | function log_message($level, $message)
function set_status_header (line 140) | function set_status_header($code = 200, $text = '')
function is_cli (line 149) | function is_cli()
FILE: tests/mocks/core/security.php
class Mock_Core_Security (line 3) | class Mock_Core_Security extends CI_Security {
method csrf_set_cookie (line 5) | public function csrf_set_cookie()
method __get (line 14) | public function __get($property)
method remove_evil_attributes (line 19) | public function remove_evil_attributes($str, $is_image)
method __call (line 25) | public function __call($method, $params)
FILE: tests/mocks/core/uri.php
class Mock_Core_URI (line 3) | class Mock_Core_URI extends CI_URI {
method __construct (line 5) | public function __construct()
method _set_permitted_uri_chars (line 27) | public function _set_permitted_uri_chars($value)
FILE: tests/mocks/database/db.php
class Mock_Database_DB (line 3) | class Mock_Database_DB {
method __construct (line 26) | public function __construct($config = array())
method set_dsn (line 37) | public function set_dsn($group = 'default')
method config (line 86) | public static function config($driver)
method DB (line 99) | public static function DB($group, $query_builder = FALSE)
FILE: tests/mocks/database/db/driver.php
class Mock_Database_DB_Driver (line 3) | class Mock_Database_DB_Driver extends CI_DB_driver {
method __construct (line 17) | public function __construct($driver_class, $config = array())
method __call (line 28) | public function __call($method, $arguments)
class CI_DB (line 40) | class CI_DB extends CI_DB_query_builder {}
FILE: tests/mocks/database/drivers/mysql.php
class Mock_Database_Drivers_Mysql (line 3) | class Mock_Database_Drivers_Mysql extends Mock_Database_DB_Driver {
method __construct (line 11) | public function __construct($config = array())
FILE: tests/mocks/database/drivers/mysqli.php
class Mock_Database_Drivers_Mysqli (line 3) | class Mock_Database_Drivers_Mysqli extends Mock_Database_DB_Driver {
method __construct (line 11) | public function __construct($config = array())
FILE: tests/mocks/database/drivers/pdo.php
class Mock_Database_Drivers_PDO (line 3) | class Mock_Database_Drivers_PDO extends Mock_Database_DB_Driver {
method __construct (line 11) | public function __construct($config = array())
FILE: tests/mocks/database/drivers/postgre.php
class Mock_Database_Drivers_Postgre (line 3) | class Mock_Database_Drivers_Postgre extends Mock_Database_DB_Driver {
method __construct (line 11) | public function __construct($config = array())
FILE: tests/mocks/database/drivers/sqlite.php
class Mock_Database_Drivers_Sqlite (line 3) | class Mock_Database_Drivers_Sqlite extends Mock_Database_DB_Driver {
method __construct (line 11) | public function __construct($config = array())
FILE: tests/mocks/database/schema/skeleton.php
class Mock_Database_Schema_Skeleton (line 3) | class Mock_Database_Schema_Skeleton {
method init (line 23) | public static function init($driver)
method create_tables (line 57) | public static function create_tables()
method create_data (line 121) | public static function create_data()
FILE: tests/mocks/libraries/driver.php
class Mock_Libraries_Driver (line 6) | class Mock_Libraries_Driver extends CI_Driver_Library {
method driver_list (line 10) | public function driver_list($drivers = NULL)
method get_name (line 23) | public function get_name()
FILE: tests/mocks/libraries/encryption.php
class Mock_Libraries_Encryption (line 3) | class Mock_Libraries_Encryption extends CI_Encryption {
method __get_params (line 10) | public function __get_params($params)
method get_key (line 22) | public function get_key()
method __driver_get_handle (line 34) | public function __driver_get_handle($driver, $cipher, $mode)
FILE: tests/mocks/libraries/session.php
class Mock_Libraries_Session (line 6) | class Mock_Libraries_Session extends CI_Session {
method reload (line 10) | public function reload()
class Mock_Libraries_Session_cookie (line 21) | class Mock_Libraries_Session_cookie extends CI_Session_cookie {
method _setcookie (line 25) | protected function _setcookie($name, $value = '', $expire = 0, $path =...
class Mock_Libraries_Session_native (line 38) | class Mock_Libraries_Session_native extends CI_Session_native {}
FILE: tests/mocks/libraries/table.php
class Mock_Libraries_Table (line 3) | class Mock_Libraries_Table extends CI_Table {
method __call (line 6) | public function __call($method, $params)
FILE: user_guide_src/cilexer/cilexer/cilexer.py
class CodeIgniterLexer (line 42) | class CodeIgniterLexer(DelegatingLexer):
method __init__ (line 53) | def __init__(self, **options):
FILE: user_guide_src/source/_themes/sphinx_rtd_theme/__init__.py
function get_html_theme_path (line 14) | def get_html_theme_path():
FILE: user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js
function setCookie (line 60) | function setCookie(cname, cvalue, exdays) {
function getCookie (line 70) | function getCookie(cname) {
Condensed preview — 541 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,576K chars).
[
{
"path": ".editorconfig",
"chars": 302,
"preview": "# top-most EditorConfig file\nroot = true\n\n# Unix-style newlines with a newline ending every file\n[*]\nend_of_line = lf\nin"
},
{
"path": ".gitattributes",
"chars": 609,
"preview": "# This file tells which files and directories should be ignored and\n# NOT downloaded when using composer to pull down a "
},
{
"path": ".github/workflows/test-phpunit.yml",
"chars": 3917,
"preview": "name: PHPUnit\n\non: [push, pull_request]\n\npermissions:\n contents: read\n\njobs:\n tests:\n runs-on: ubuntu-22.04\n if:"
},
{
"path": ".gitignore",
"chars": 539,
"preview": ".DS_Store\n\napplication/cache/*\n!application/cache/index.html\n\napplication/logs/*\n!application/logs/index.html\n\n!applicat"
},
{
"path": "DCO.txt",
"chars": 1089,
"preview": "Developer's Certificate of Origin 1.1\n\nBy making a contribution to this project, I certify that:\n\n(1)\tThe contribution w"
},
{
"path": "application/.htaccess",
"chars": 123,
"preview": "<IfModule authz_core_module>\n Require all denied\n</IfModule>\n<IfModule !authz_core_module>\n Deny from all\n</IfModu"
},
{
"path": "application/cache/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "application/config/autoload.php",
"chars": 4025,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n\n/*\n| --------------------------------------------"
},
{
"path": "application/config/config.php",
"chars": 16741,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n\n/*\n|---------------------------------------------"
},
{
"path": "application/config/constants.php",
"chars": 4324,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n\n/*\n|---------------------------------------------"
},
{
"path": "application/config/database.php",
"chars": 4365,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n\n/*\n| --------------------------------------------"
},
{
"path": "application/config/doctypes.php",
"chars": 2441,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n\n$_doctypes = array(\n\t'xhtml11' => '<!DOCTYPE html"
},
{
"path": "application/config/foreign_chars.php",
"chars": 2671,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n\n/*\n| --------------------------------------------"
},
{
"path": "application/config/hooks.php",
"chars": 417,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n\n/*\n| --------------------------------------------"
},
{
"path": "application/config/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "application/config/memcached.php",
"chars": 498,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n\n/*\n| --------------------------------------------"
},
{
"path": "application/config/migration.php",
"chars": 3032,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n\n/*\n|---------------------------------------------"
},
{
"path": "application/config/mimes.php",
"chars": 10316,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n\n/*\n| --------------------------------------------"
},
{
"path": "application/config/profiler.php",
"chars": 477,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n\n/*\n| --------------------------------------------"
},
{
"path": "application/config/routes.php",
"chars": 1987,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n\n/*\n| --------------------------------------------"
},
{
"path": "application/config/user_agents.php",
"chars": 6436,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n\n/*\n| --------------------------------------------"
},
{
"path": "application/controllers/Welcome.php",
"chars": 679,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n\nclass Welcome extends CI_Controller {\n\n\t/**\n\t * I"
},
{
"path": "application/controllers/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "application/core/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "application/helpers/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "application/hooks/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "application/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "application/language/english/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "application/language/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "application/libraries/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "application/logs/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "application/models/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "application/third_party/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "application/views/errors/cli/error_404.php",
"chars": 128,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n\necho \"\\nERROR: \",\n\t$heading,\n\t\"\\n\\n\",\n\t$message,\n"
},
{
"path": "application/views/errors/cli/error_db.php",
"chars": 137,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n\necho \"\\nDatabase error: \",\n\t$heading,\n\t\"\\n\\n\",\n\t$"
},
{
"path": "application/views/errors/cli/error_exception.php",
"chars": 745,
"preview": "<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>\n\nAn uncaught Exception was encountered\n\nType: "
},
{
"path": "application/views/errors/cli/error_general.php",
"chars": 128,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n\necho \"\\nERROR: \",\n\t$heading,\n\t\"\\n\\n\",\n\t$message,\n"
},
{
"path": "application/views/errors/cli/error_php.php",
"chars": 690,
"preview": "<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>\n\nA PHP Error was encountered\n\nSeverity: <?ph"
},
{
"path": "application/views/errors/cli/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "application/views/errors/html/error_404.php",
"chars": 1529,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n?><!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<meta c"
},
{
"path": "application/views/errors/html/error_db.php",
"chars": 1525,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n?><!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<meta c"
},
{
"path": "application/views/errors/html/error_exception.php",
"chars": 901,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n?>\n\n<div style=\"border:1px solid #dd4814;padding-l"
},
{
"path": "application/views/errors/html/error_general.php",
"chars": 1516,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n?><!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<meta c"
},
{
"path": "application/views/errors/html/error_php.php",
"chars": 849,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n?>\n\n<div style=\"border:1px solid #dd4814;padding-l"
},
{
"path": "application/views/errors/html/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "application/views/errors/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "application/views/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "application/views/welcome_message.php",
"chars": 10387,
"preview": "<?php\ndefined('BASEPATH') OR exit('No direct script access allowed');\n?><!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<meta c"
},
{
"path": "build-release.sh",
"chars": 1899,
"preview": "#!/usr/bin/env bash\n\ncd $(dirname $BASH_SOURCE)\n\nif [ $# -eq 0 ]; then\n\techo 'Usage: '$BASH_SOURCE' <version_number>'\n\te"
},
{
"path": "composer.json",
"chars": 1027,
"preview": "{\n\t\"description\": \"The CodeIgniter framework\",\n\t\"name\": \"codeigniter/framework\",\n\t\"type\": \"project\",\n\t\"homepage\": \"https"
},
{
"path": "contributing.md",
"chars": 6839,
"preview": "# Contributing to CodeIgniter\n\nCodeIgniter is a community driven project and accepts contributions of code and documenta"
},
{
"path": "index.php",
"chars": 10114,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "license.txt",
"chars": 1097,
"preview": "The MIT License (MIT)\n\nCopyright (c) 2019 - 2022, CodeIgniter Foundation\n\nPermission is hereby granted, free of charge, "
},
{
"path": "phpdoc.dist.xml",
"chars": 486,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<phpdoc>\n\t<title>CodeIgniter v3.0.0 API</title>\n <parser>\n <target>./a"
},
{
"path": "readme.rst",
"chars": 2811,
"preview": "###################\nWhat is CodeIgniter\n###################\n\nCodeIgniter is an Application Development Framework - a too"
},
{
"path": "system/.htaccess",
"chars": 117,
"preview": "<IfModule authz_core_module>\n\tRequire all denied\n</IfModule>\n<IfModule !authz_core_module>\n\tDeny from all\n</IfModule>"
},
{
"path": "system/core/Benchmark.php",
"chars": 4088,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/core/CodeIgniter.php",
"chars": 15242,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/core/Common.php",
"chars": 22062,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/core/Config.php",
"chars": 9019,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/core/Controller.php",
"chars": 3037,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/core/Exceptions.php",
"chars": 7590,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/core/Hooks.php",
"chars": 6335,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/core/Input.php",
"chars": 18474,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/core/Lang.php",
"chars": 5540,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/core/Loader.php",
"chars": 37647,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/core/Log.php",
"chars": 7522,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/core/Model.php",
"chars": 2424,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/core/Output.php",
"chars": 21201,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/core/Router.php",
"chars": 12374,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/core/Security.php",
"chars": 29425,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/core/URI.php",
"chars": 15648,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/core/Utf8.php",
"chars": 4512,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/core/compat/hash.php",
"chars": 6915,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/core/compat/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "system/core/compat/mbstring.php",
"chars": 4529,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/core/compat/password.php",
"chars": 7621,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/core/compat/standard.php",
"chars": 3799,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/core/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "system/database/DB.php",
"chars": 6057,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/DB_cache.php",
"chars": 5970,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/DB_driver.php",
"chars": 45289,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/DB_forge.php",
"chars": 24335,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/DB_query_builder.php",
"chars": 66275,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/DB_result.php",
"chars": 14374,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/DB_utility.php",
"chars": 10685,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/cubrid/cubrid_driver.php",
"chars": 9621,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/cubrid/cubrid_forge.php",
"chars": 5891,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/cubrid/cubrid_result.php",
"chars": 4812,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/cubrid/cubrid_utility.php",
"chars": 2701,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/cubrid/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "system/database/drivers/ibase/ibase_driver.php",
"chars": 10513,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/ibase/ibase_forge.php",
"chars": 6540,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/ibase/ibase_result.php",
"chars": 4216,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/ibase/ibase_utility.php",
"chars": 2418,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/ibase/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "system/database/drivers/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "system/database/drivers/mssql/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "system/database/drivers/mssql/mssql_driver.php",
"chars": 13523,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/mssql/mssql_forge.php",
"chars": 4442,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/mssql/mssql_result.php",
"chars": 4929,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/mssql/mssql_utility.php",
"chars": 2539,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/mysql/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "system/database/drivers/mysql/mysql_driver.php",
"chars": 11713,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/mysql/mysql_forge.php",
"chars": 6205,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/mysql/mysql_result.php",
"chars": 5167,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/mysql/mysql_utility.php",
"chars": 5631,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/mysqli/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "system/database/drivers/mysqli/mysqli_driver.php",
"chars": 13628,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/mysqli/mysqli_forge.php",
"chars": 6255,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/mysqli/mysqli_result.php",
"chars": 6325,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/mysqli/mysqli_utility.php",
"chars": 5627,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/oci8/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "system/database/drivers/oci8/oci8_driver.php",
"chars": 15223,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/oci8/oci8_forge.php",
"chars": 5694,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/oci8/oci8_result.php",
"chars": 5257,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/oci8/oci8_utility.php",
"chars": 2379,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/odbc/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "system/database/drivers/odbc/odbc_driver.php",
"chars": 9868,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/odbc/odbc_forge.php",
"chars": 2626,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/odbc/odbc_result.php",
"chars": 6434,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/odbc/odbc_utility.php",
"chars": 2258,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "system/database/drivers/pdo/pdo_driver.php",
"chars": 8353,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/pdo_forge.php",
"chars": 2222,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/pdo_result.php",
"chars": 5126,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/pdo_utility.php",
"chars": 2256,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_4d_driver.php",
"chars": 5757,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_4d_forge.php",
"chars": 5441,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php",
"chars": 5614,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php",
"chars": 5921,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php",
"chars": 10302,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php",
"chars": 4405,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php",
"chars": 7833,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php",
"chars": 6344,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php",
"chars": 6703,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php",
"chars": 4144,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_informix_driver.php",
"chars": 8590,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_informix_forge.php",
"chars": 4399,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php",
"chars": 10121,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php",
"chars": 6451,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_oci_driver.php",
"chars": 8559,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_oci_forge.php",
"chars": 5560,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php",
"chars": 5961,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php",
"chars": 2396,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php",
"chars": 9819,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php",
"chars": 5992,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php",
"chars": 5717,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php",
"chars": 6246,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php",
"chars": 11018,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php",
"chars": 4407,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/postgre/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "system/database/drivers/postgre/postgre_driver.php",
"chars": 14770,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/postgre/postgre_forge.php",
"chars": 5793,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/postgre/postgre_result.php",
"chars": 4728,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/postgre/postgre_utility.php",
"chars": 2583,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/sqlite3/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "system/database/drivers/sqlite3/sqlite3_driver.php",
"chars": 8394,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/sqlite3/sqlite3_forge.php",
"chars": 6038,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/sqlite3/sqlite3_result.php",
"chars": 4982,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/sqlite3/sqlite3_utility.php",
"chars": 2214,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/sqlsrv/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "system/database/drivers/sqlsrv/sqlsrv_driver.php",
"chars": 14393,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/sqlsrv/sqlsrv_forge.php",
"chars": 4395,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/sqlsrv/sqlsrv_result.php",
"chars": 4959,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/drivers/sqlsrv/sqlsrv_utility.php",
"chars": 2566,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/database/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "system/fonts/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "system/helpers/array_helper.php",
"chars": 3570,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/helpers/captcha_helper.php",
"chars": 10675,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/helpers/cookie_helper.php",
"chars": 3858,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/helpers/date_helper.php",
"chars": 14883,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/helpers/directory_helper.php",
"chars": 3402,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/helpers/download_helper.php",
"chars": 5298,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/helpers/file_helper.php",
"chars": 11817,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/helpers/form_helper.php",
"chars": 23653,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/helpers/html_helper.php",
"chars": 9379,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/helpers/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "system/helpers/inflector_helper.php",
"chars": 8509,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/helpers/language_helper.php",
"chars": 2663,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/helpers/number_helper.php",
"chars": 3063,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/helpers/path_helper.php",
"chars": 2960,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/helpers/security_helper.php",
"chars": 3310,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/helpers/string_helper.php",
"chars": 6576,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/helpers/text_helper.php",
"chars": 14571,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/helpers/typography_helper.php",
"chars": 3334,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/helpers/url_helper.php",
"chars": 13835,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/helpers/xml_helper.php",
"chars": 2939,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "system/language/english/calendar_lang.php",
"chars": 3098,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/language/english/date_lang.php",
"chars": 4916,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/language/english/db_lang.php",
"chars": 3991,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/language/english/email_lang.php",
"chars": 3481,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/language/english/form_validation_lang.php",
"chars": 4864,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/language/english/ftp_lang.php",
"chars": 2938,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/language/english/imglib_lang.php",
"chars": 3801,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/language/english/index.html",
"chars": 141,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<title>403 Forbidden</title>\n</head>\n<body>\n\n<p>Directory access is forbidden.<"
},
{
"path": "system/language/english/migration_lang.php",
"chars": 2527,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
},
{
"path": "system/language/english/number_lang.php",
"chars": 1957,
"preview": "<?php\n/**\n * CodeIgniter\n *\n * An open source application development framework for PHP\n *\n * This content is released u"
}
]
// ... and 341 more files (download for full content)
About this extraction
This page contains the full source code of the bcit-ci/CodeIgniter GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 541 files (3.1 MB), approximately 847.7k tokens, and a symbol index with 2332 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.