From 01bbf11bbd33f61d7c0e7a959621b0a31c825d57 Mon Sep 17 00:00:00 2001 From: dyzulk Date: Thu, 21 Sep 2023 23:32:36 +0700 Subject: [PATCH] pertama commit --- application/.htaccess | 6 + application/cache/index.html | 11 + application/config/autoload.php | 135 + application/config/config.php | 564 ++++ application/config/constants.php | 85 + application/config/database.php | 96 + application/config/doctypes.php | 24 + application/config/foreign_chars.php | 114 + application/config/hooks.php | 13 + application/config/index.html | 11 + application/config/memcached.php | 19 + application/config/migration.php | 84 + application/config/mimes.php | 186 ++ application/config/profiler.php | 14 + application/config/routes.php | 54 + application/config/smileys.php | 64 + application/config/user_agents.php | 222 ++ application/controllers/Auth.php | 407 +++ application/controllers/Cards.php | 18 + application/controllers/Dashboard.php | 40 + application/controllers/Forms.php | 18 + application/controllers/Test.php | 109 + application/controllers/Transaksi.php | 156 + application/controllers/Welcome.php | 25 + application/controllers/index.html | 11 + application/core/index.html | 11 + application/helpers/index.html | 11 + application/hooks/index.html | 11 + application/index.html | 11 + application/language/english/index.html | 11 + application/language/index.html | 11 + application/libraries/index.html | 11 + application/logs/index.html | 11 + application/models/AuthModel.php | 30 + application/models/Transaction_model.php | 24 + application/models/UserModel.php | 29 + application/models/index.html | 11 + application/third_party/index.html | 11 + application/views/Forms.php | 302 ++ application/views/auth/change-password.php | 88 + application/views/auth/forgotpassword.php | 71 + application/views/auth/login.php | 89 + application/views/auth/signup.php | 137 + application/views/cards.php | 198 ++ application/views/dashboard.php | 364 +++ application/views/email/activation.html | 59 + application/views/email/activation.php | 132 + application/views/email/password.php | 141 + application/views/errors/cli/error_404.php | 8 + application/views/errors/cli/error_db.php | 8 + .../views/errors/cli/error_exception.php | 21 + .../views/errors/cli/error_general.php | 8 + application/views/errors/cli/error_php.php | 21 + application/views/errors/cli/index.html | 11 + application/views/errors/html/error_404.php | 64 + application/views/errors/html/error_db.php | 64 + .../views/errors/html/error_exception.php | 32 + .../views/errors/html/error_general.php | 64 + application/views/errors/html/error_php.php | 33 + application/views/errors/html/index.html | 11 + application/views/errors/index.html | 11 + application/views/index.html | 11 + application/views/partials/01header.php | 416 +++ application/views/transaction/admin.php | 252 ++ application/views/transaction/edit.php | 58 + application/views/transaction/view.php | 221 ++ application/views/welcome_message.php | 101 + composer.json | 36 + e.html | 48 + favicon.ico | Bin 0 -> 4286 bytes index.php | 315 ++ license.txt | 21 + readme.rst | 71 + src/.htaccess | 6 + src/css/tailwind.css | 3 + src/css/tailwind.output.css | 1 + src/img/create-account-office-dark.jpeg | Bin 0 -> 68019 bytes src/img/create-account-office.jpeg | Bin 0 -> 74885 bytes src/img/dashboard.png | Bin 0 -> 62560 bytes src/img/forgot-password-office-dark.jpeg | Bin 0 -> 58822 bytes src/img/forgot-password-office.jpeg | Bin 0 -> 91979 bytes src/img/github.svg | 1 + src/img/login-office-dark.jpeg | Bin 0 -> 14198 bytes src/img/login-office.jpeg | Bin 0 -> 37749 bytes src/img/twitter.svg | 1 + src/js/charts-bars.js | 34 + src/js/charts-lines.js | 71 + src/js/charts-pie.js | 35 + src/js/deleteWalert.js | 35 + src/js/focus-trap.js | 51 + src/js/init-alpine.js | 62 + src/js/rupiah.js | 33 + src/user/image/avatar.png | Bin 0 -> 1759182 bytes src/user/image/user.png | Bin 0 -> 23357 bytes system/.htaccess | 6 + system/core/Benchmark.php | 134 + system/core/CodeIgniter.php | 560 ++++ system/core/Common.php | 849 +++++ system/core/Config.php | 380 +++ system/core/Controller.php | 104 + system/core/Exceptions.php | 275 ++ system/core/Hooks.php | 267 ++ system/core/Input.php | 937 ++++++ system/core/Lang.php | 204 ++ system/core/Loader.php | 1416 +++++++++ system/core/Log.php | 297 ++ system/core/Model.php | 77 + system/core/Output.php | 847 +++++ system/core/Router.php | 516 +++ system/core/Security.php | 1111 +++++++ system/core/URI.php | 644 ++++ system/core/Utf8.php | 165 + system/core/compat/hash.php | 255 ++ system/core/compat/index.html | 11 + system/core/compat/mbstring.php | 150 + system/core/compat/password.php | 252 ++ system/core/compat/standard.php | 183 ++ system/core/index.html | 11 + system/database/DB.php | 219 ++ system/database/DB_cache.php | 222 ++ system/database/DB_driver.php | 1999 ++++++++++++ system/database/DB_forge.php | 1034 ++++++ system/database/DB_query_builder.php | 2809 +++++++++++++++++ system/database/DB_result.php | 666 ++++ system/database/DB_utility.php | 425 +++ .../database/drivers/cubrid/cubrid_driver.php | 406 +++ .../database/drivers/cubrid/cubrid_forge.php | 231 ++ .../database/drivers/cubrid/cubrid_result.php | 178 ++ .../drivers/cubrid/cubrid_utility.php | 80 + system/database/drivers/cubrid/index.html | 11 + .../database/drivers/ibase/ibase_driver.php | 414 +++ system/database/drivers/ibase/ibase_forge.php | 252 ++ .../database/drivers/ibase/ibase_result.php | 162 + .../database/drivers/ibase/ibase_utility.php | 70 + system/database/drivers/ibase/index.html | 11 + system/database/drivers/index.html | 11 + system/database/drivers/mssql/index.html | 11 + .../database/drivers/mssql/mssql_driver.php | 519 +++ system/database/drivers/mssql/mssql_forge.php | 152 + .../database/drivers/mssql/mssql_result.php | 199 ++ .../database/drivers/mssql/mssql_utility.php | 78 + system/database/drivers/mysql/index.html | 11 + .../database/drivers/mysql/mysql_driver.php | 495 +++ system/database/drivers/mysql/mysql_forge.php | 243 ++ .../database/drivers/mysql/mysql_result.php | 200 ++ .../database/drivers/mysql/mysql_utility.php | 212 ++ system/database/drivers/mysqli/index.html | 11 + .../database/drivers/mysqli/mysqli_driver.php | 554 ++++ .../database/drivers/mysqli/mysqli_forge.php | 245 ++ .../database/drivers/mysqli/mysqli_result.php | 233 ++ .../drivers/mysqli/mysqli_utility.php | 212 ++ system/database/drivers/oci8/index.html | 11 + system/database/drivers/oci8/oci8_driver.php | 712 +++++ system/database/drivers/oci8/oci8_forge.php | 217 ++ system/database/drivers/oci8/oci8_result.php | 230 ++ system/database/drivers/oci8/oci8_utility.php | 69 + system/database/drivers/odbc/index.html | 11 + system/database/drivers/odbc/odbc_driver.php | 426 +++ system/database/drivers/odbc/odbc_forge.php | 87 + system/database/drivers/odbc/odbc_result.php | 269 ++ system/database/drivers/odbc/odbc_utility.php | 64 + system/database/drivers/pdo/index.html | 11 + system/database/drivers/pdo/pdo_driver.php | 351 ++ system/database/drivers/pdo/pdo_forge.php | 66 + system/database/drivers/pdo/pdo_result.php | 199 ++ system/database/drivers/pdo/pdo_utility.php | 64 + .../drivers/pdo/subdrivers/index.html | 11 + .../drivers/pdo/subdrivers/pdo_4d_driver.php | 201 ++ .../drivers/pdo/subdrivers/pdo_4d_forge.php | 218 ++ .../pdo/subdrivers/pdo_cubrid_driver.php | 210 ++ .../pdo/subdrivers/pdo_cubrid_forge.php | 231 ++ .../pdo/subdrivers/pdo_dblib_driver.php | 354 +++ .../pdo/subdrivers/pdo_dblib_forge.php | 150 + .../pdo/subdrivers/pdo_firebird_driver.php | 280 ++ .../pdo/subdrivers/pdo_firebird_forge.php | 238 ++ .../drivers/pdo/subdrivers/pdo_ibm_driver.php | 245 ++ .../drivers/pdo/subdrivers/pdo_ibm_forge.php | 155 + .../pdo/subdrivers/pdo_informix_driver.php | 310 ++ .../pdo/subdrivers/pdo_informix_forge.php | 164 + .../pdo/subdrivers/pdo_mysql_driver.php | 380 +++ .../pdo/subdrivers/pdo_mysql_forge.php | 257 ++ .../drivers/pdo/subdrivers/pdo_oci_driver.php | 327 ++ .../drivers/pdo/subdrivers/pdo_oci_forge.php | 208 ++ .../pdo/subdrivers/pdo_odbc_driver.php | 230 ++ .../drivers/pdo/subdrivers/pdo_odbc_forge.php | 71 + .../pdo/subdrivers/pdo_pgsql_driver.php | 385 +++ .../pdo/subdrivers/pdo_pgsql_forge.php | 218 ++ .../pdo/subdrivers/pdo_sqlite_driver.php | 214 ++ .../pdo/subdrivers/pdo_sqlite_forge.php | 239 ++ .../pdo/subdrivers/pdo_sqlsrv_driver.php | 370 +++ .../pdo/subdrivers/pdo_sqlsrv_forge.php | 150 + system/database/drivers/postgre/index.html | 11 + .../drivers/postgre/postgre_driver.php | 611 ++++ .../drivers/postgre/postgre_forge.php | 206 ++ .../drivers/postgre/postgre_result.php | 183 ++ .../drivers/postgre/postgre_utility.php | 79 + system/database/drivers/sqlite/index.html | 11 + .../database/drivers/sqlite/sqlite_driver.php | 331 ++ .../database/drivers/sqlite/sqlite_forge.php | 206 ++ .../database/drivers/sqlite/sqlite_result.php | 165 + .../drivers/sqlite/sqlite_utility.php | 62 + system/database/drivers/sqlite3/index.html | 11 + .../drivers/sqlite3/sqlite3_driver.php | 345 ++ .../drivers/sqlite3/sqlite3_forge.php | 226 ++ .../drivers/sqlite3/sqlite3_result.php | 195 ++ .../drivers/sqlite3/sqlite3_utility.php | 62 + system/database/drivers/sqlsrv/index.html | 11 + .../database/drivers/sqlsrv/sqlsrv_driver.php | 544 ++++ .../database/drivers/sqlsrv/sqlsrv_forge.php | 150 + .../database/drivers/sqlsrv/sqlsrv_result.php | 194 ++ .../drivers/sqlsrv/sqlsrv_utility.php | 78 + system/database/index.html | 11 + system/fonts/index.html | 11 + system/fonts/texb.ttf | Bin 0 -> 143830 bytes system/helpers/array_helper.php | 116 + system/helpers/captcha_helper.php | 353 +++ system/helpers/cookie_helper.php | 114 + system/helpers/date_helper.php | 743 +++++ system/helpers/directory_helper.php | 102 + system/helpers/download_helper.php | 159 + system/helpers/email_helper.php | 85 + system/helpers/file_helper.php | 454 +++ system/helpers/form_helper.php | 1056 +++++++ system/helpers/html_helper.php | 410 +++ system/helpers/index.html | 11 + system/helpers/inflector_helper.php | 288 ++ system/helpers/language_helper.php | 76 + system/helpers/number_helper.php | 95 + system/helpers/path_helper.php | 83 + system/helpers/security_helper.php | 138 + system/helpers/smiley_helper.php | 256 ++ system/helpers/string_helper.php | 305 ++ system/helpers/text_helper.php | 568 ++++ system/helpers/typography_helper.php | 105 + system/helpers/url_helper.php | 570 ++++ system/helpers/xml_helper.php | 91 + system/index.html | 11 + system/language/english/calendar_lang.php | 85 + system/language/english/date_lang.php | 95 + system/language/english/db_lang.php | 64 + system/language/english/email_lang.php | 59 + .../language/english/form_validation_lang.php | 70 + system/language/english/ftp_lang.php | 52 + system/language/english/imglib_lang.php | 58 + system/language/english/index.html | 11 + system/language/english/migration_lang.php | 48 + system/language/english/number_lang.php | 45 + system/language/english/pagination_lang.php | 44 + system/language/english/profiler_lang.php | 61 + system/language/english/unit_test_lang.php | 59 + system/language/english/upload_lang.php | 56 + system/language/index.html | 11 + system/libraries/Cache/Cache.php | 256 ++ system/libraries/Cache/drivers/Cache_apc.php | 218 ++ .../libraries/Cache/drivers/Cache_dummy.php | 173 + system/libraries/Cache/drivers/Cache_file.php | 287 ++ .../Cache/drivers/Cache_memcached.php | 314 ++ .../libraries/Cache/drivers/Cache_redis.php | 348 ++ .../Cache/drivers/Cache_wincache.php | 218 ++ system/libraries/Cache/drivers/index.html | 11 + system/libraries/Cache/index.html | 11 + system/libraries/Calendar.php | 547 ++++ system/libraries/Cart.php | 568 ++++ system/libraries/Driver.php | 343 ++ system/libraries/Email.php | 2491 +++++++++++++++ system/libraries/Encrypt.php | 522 +++ system/libraries/Encryption.php | 942 ++++++ system/libraries/Form_validation.php | 1599 ++++++++++ system/libraries/Ftp.php | 668 ++++ system/libraries/Image_lib.php | 1843 +++++++++++ system/libraries/Javascript.php | 857 +++++ system/libraries/Javascript/Jquery.php | 1077 +++++++ system/libraries/Javascript/index.html | 11 + system/libraries/Migration.php | 478 +++ system/libraries/Pagination.php | 705 +++++ system/libraries/Parser.php | 249 ++ system/libraries/Profiler.php | 575 ++++ .../Session/CI_Session_driver_interface.php | 60 + .../libraries/Session/OldSessionWrapper.php | 98 + .../libraries/Session/PHP8SessionWrapper.php | 100 + system/libraries/Session/Session.php | 1032 ++++++ .../Session/SessionHandlerInterface.php | 60 + ...SessionUpdateTimestampHandlerInterface.php | 56 + system/libraries/Session/Session_driver.php | 202 ++ .../drivers/Session_database_driver.php | 471 +++ .../Session/drivers/Session_files_driver.php | 449 +++ .../drivers/Session_memcached_driver.php | 414 +++ .../Session/drivers/Session_redis_driver.php | 476 +++ system/libraries/Session/drivers/index.html | 11 + system/libraries/Session/index.html | 11 + system/libraries/Table.php | 539 ++++ system/libraries/Trackback.php | 557 ++++ system/libraries/Typography.php | 425 +++ system/libraries/Unit_test.php | 407 +++ system/libraries/Upload.php | 1327 ++++++++ system/libraries/User_agent.php | 682 ++++ system/libraries/Xmlrpc.php | 1921 +++++++++++ system/libraries/Xmlrpcs.php | 620 ++++ system/libraries/Zip.php | 534 ++++ system/libraries/index.html | 11 + 300 files changed, 73812 insertions(+) create mode 100644 application/.htaccess create mode 100644 application/cache/index.html create mode 100644 application/config/autoload.php create mode 100644 application/config/config.php create mode 100644 application/config/constants.php create mode 100644 application/config/database.php create mode 100644 application/config/doctypes.php create mode 100644 application/config/foreign_chars.php create mode 100644 application/config/hooks.php create mode 100644 application/config/index.html create mode 100644 application/config/memcached.php create mode 100644 application/config/migration.php create mode 100644 application/config/mimes.php create mode 100644 application/config/profiler.php create mode 100644 application/config/routes.php create mode 100644 application/config/smileys.php create mode 100644 application/config/user_agents.php create mode 100644 application/controllers/Auth.php create mode 100644 application/controllers/Cards.php create mode 100644 application/controllers/Dashboard.php create mode 100644 application/controllers/Forms.php create mode 100644 application/controllers/Test.php create mode 100644 application/controllers/Transaksi.php create mode 100644 application/controllers/Welcome.php create mode 100644 application/controllers/index.html create mode 100644 application/core/index.html create mode 100644 application/helpers/index.html create mode 100644 application/hooks/index.html create mode 100644 application/index.html create mode 100644 application/language/english/index.html create mode 100644 application/language/index.html create mode 100644 application/libraries/index.html create mode 100644 application/logs/index.html create mode 100644 application/models/AuthModel.php create mode 100644 application/models/Transaction_model.php create mode 100644 application/models/UserModel.php create mode 100644 application/models/index.html create mode 100644 application/third_party/index.html create mode 100644 application/views/Forms.php create mode 100644 application/views/auth/change-password.php create mode 100644 application/views/auth/forgotpassword.php create mode 100644 application/views/auth/login.php create mode 100644 application/views/auth/signup.php create mode 100644 application/views/cards.php create mode 100644 application/views/dashboard.php create mode 100644 application/views/email/activation.html create mode 100644 application/views/email/activation.php create mode 100644 application/views/email/password.php create mode 100644 application/views/errors/cli/error_404.php create mode 100644 application/views/errors/cli/error_db.php create mode 100644 application/views/errors/cli/error_exception.php create mode 100644 application/views/errors/cli/error_general.php create mode 100644 application/views/errors/cli/error_php.php create mode 100644 application/views/errors/cli/index.html create mode 100644 application/views/errors/html/error_404.php create mode 100644 application/views/errors/html/error_db.php create mode 100644 application/views/errors/html/error_exception.php create mode 100644 application/views/errors/html/error_general.php create mode 100644 application/views/errors/html/error_php.php create mode 100644 application/views/errors/html/index.html create mode 100644 application/views/errors/index.html create mode 100644 application/views/index.html create mode 100644 application/views/partials/01header.php create mode 100644 application/views/transaction/admin.php create mode 100644 application/views/transaction/edit.php create mode 100644 application/views/transaction/view.php create mode 100644 application/views/welcome_message.php create mode 100644 composer.json create mode 100644 e.html create mode 100644 favicon.ico create mode 100644 index.php create mode 100644 license.txt create mode 100644 readme.rst create mode 100644 src/.htaccess create mode 100644 src/css/tailwind.css create mode 100644 src/css/tailwind.output.css create mode 100644 src/img/create-account-office-dark.jpeg create mode 100644 src/img/create-account-office.jpeg create mode 100644 src/img/dashboard.png create mode 100644 src/img/forgot-password-office-dark.jpeg create mode 100644 src/img/forgot-password-office.jpeg create mode 100644 src/img/github.svg create mode 100644 src/img/login-office-dark.jpeg create mode 100644 src/img/login-office.jpeg create mode 100644 src/img/twitter.svg create mode 100644 src/js/charts-bars.js create mode 100644 src/js/charts-lines.js create mode 100644 src/js/charts-pie.js create mode 100644 src/js/deleteWalert.js create mode 100644 src/js/focus-trap.js create mode 100644 src/js/init-alpine.js create mode 100644 src/js/rupiah.js create mode 100644 src/user/image/avatar.png create mode 100644 src/user/image/user.png create mode 100644 system/.htaccess create mode 100644 system/core/Benchmark.php create mode 100644 system/core/CodeIgniter.php create mode 100644 system/core/Common.php create mode 100644 system/core/Config.php create mode 100644 system/core/Controller.php create mode 100644 system/core/Exceptions.php create mode 100644 system/core/Hooks.php create mode 100644 system/core/Input.php create mode 100644 system/core/Lang.php create mode 100644 system/core/Loader.php create mode 100644 system/core/Log.php create mode 100644 system/core/Model.php create mode 100644 system/core/Output.php create mode 100644 system/core/Router.php create mode 100644 system/core/Security.php create mode 100644 system/core/URI.php create mode 100644 system/core/Utf8.php create mode 100644 system/core/compat/hash.php create mode 100644 system/core/compat/index.html create mode 100644 system/core/compat/mbstring.php create mode 100644 system/core/compat/password.php create mode 100644 system/core/compat/standard.php create mode 100644 system/core/index.html create mode 100644 system/database/DB.php create mode 100644 system/database/DB_cache.php create mode 100644 system/database/DB_driver.php create mode 100644 system/database/DB_forge.php create mode 100644 system/database/DB_query_builder.php create mode 100644 system/database/DB_result.php create mode 100644 system/database/DB_utility.php create mode 100644 system/database/drivers/cubrid/cubrid_driver.php create mode 100644 system/database/drivers/cubrid/cubrid_forge.php create mode 100644 system/database/drivers/cubrid/cubrid_result.php create mode 100644 system/database/drivers/cubrid/cubrid_utility.php create mode 100644 system/database/drivers/cubrid/index.html create mode 100644 system/database/drivers/ibase/ibase_driver.php create mode 100644 system/database/drivers/ibase/ibase_forge.php create mode 100644 system/database/drivers/ibase/ibase_result.php create mode 100644 system/database/drivers/ibase/ibase_utility.php create mode 100644 system/database/drivers/ibase/index.html create mode 100644 system/database/drivers/index.html create mode 100644 system/database/drivers/mssql/index.html create mode 100644 system/database/drivers/mssql/mssql_driver.php create mode 100644 system/database/drivers/mssql/mssql_forge.php create mode 100644 system/database/drivers/mssql/mssql_result.php create mode 100644 system/database/drivers/mssql/mssql_utility.php create mode 100644 system/database/drivers/mysql/index.html create mode 100644 system/database/drivers/mysql/mysql_driver.php create mode 100644 system/database/drivers/mysql/mysql_forge.php create mode 100644 system/database/drivers/mysql/mysql_result.php create mode 100644 system/database/drivers/mysql/mysql_utility.php create mode 100644 system/database/drivers/mysqli/index.html create mode 100644 system/database/drivers/mysqli/mysqli_driver.php create mode 100644 system/database/drivers/mysqli/mysqli_forge.php create mode 100644 system/database/drivers/mysqli/mysqli_result.php create mode 100644 system/database/drivers/mysqli/mysqli_utility.php create mode 100644 system/database/drivers/oci8/index.html create mode 100644 system/database/drivers/oci8/oci8_driver.php create mode 100644 system/database/drivers/oci8/oci8_forge.php create mode 100644 system/database/drivers/oci8/oci8_result.php create mode 100644 system/database/drivers/oci8/oci8_utility.php create mode 100644 system/database/drivers/odbc/index.html create mode 100644 system/database/drivers/odbc/odbc_driver.php create mode 100644 system/database/drivers/odbc/odbc_forge.php create mode 100644 system/database/drivers/odbc/odbc_result.php create mode 100644 system/database/drivers/odbc/odbc_utility.php create mode 100644 system/database/drivers/pdo/index.html create mode 100644 system/database/drivers/pdo/pdo_driver.php create mode 100644 system/database/drivers/pdo/pdo_forge.php create mode 100644 system/database/drivers/pdo/pdo_result.php create mode 100644 system/database/drivers/pdo/pdo_utility.php create mode 100644 system/database/drivers/pdo/subdrivers/index.html create mode 100644 system/database/drivers/pdo/subdrivers/pdo_4d_driver.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_4d_forge.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_informix_driver.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_informix_forge.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_oci_driver.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_oci_forge.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php create mode 100644 system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php create mode 100644 system/database/drivers/postgre/index.html create mode 100644 system/database/drivers/postgre/postgre_driver.php create mode 100644 system/database/drivers/postgre/postgre_forge.php create mode 100644 system/database/drivers/postgre/postgre_result.php create mode 100644 system/database/drivers/postgre/postgre_utility.php create mode 100644 system/database/drivers/sqlite/index.html create mode 100644 system/database/drivers/sqlite/sqlite_driver.php create mode 100644 system/database/drivers/sqlite/sqlite_forge.php create mode 100644 system/database/drivers/sqlite/sqlite_result.php create mode 100644 system/database/drivers/sqlite/sqlite_utility.php create mode 100644 system/database/drivers/sqlite3/index.html create mode 100644 system/database/drivers/sqlite3/sqlite3_driver.php create mode 100644 system/database/drivers/sqlite3/sqlite3_forge.php create mode 100644 system/database/drivers/sqlite3/sqlite3_result.php create mode 100644 system/database/drivers/sqlite3/sqlite3_utility.php create mode 100644 system/database/drivers/sqlsrv/index.html create mode 100644 system/database/drivers/sqlsrv/sqlsrv_driver.php create mode 100644 system/database/drivers/sqlsrv/sqlsrv_forge.php create mode 100644 system/database/drivers/sqlsrv/sqlsrv_result.php create mode 100644 system/database/drivers/sqlsrv/sqlsrv_utility.php create mode 100644 system/database/index.html create mode 100644 system/fonts/index.html create mode 100644 system/fonts/texb.ttf create mode 100644 system/helpers/array_helper.php create mode 100644 system/helpers/captcha_helper.php create mode 100644 system/helpers/cookie_helper.php create mode 100644 system/helpers/date_helper.php create mode 100644 system/helpers/directory_helper.php create mode 100644 system/helpers/download_helper.php create mode 100644 system/helpers/email_helper.php create mode 100644 system/helpers/file_helper.php create mode 100644 system/helpers/form_helper.php create mode 100644 system/helpers/html_helper.php create mode 100644 system/helpers/index.html create mode 100644 system/helpers/inflector_helper.php create mode 100644 system/helpers/language_helper.php create mode 100644 system/helpers/number_helper.php create mode 100644 system/helpers/path_helper.php create mode 100644 system/helpers/security_helper.php create mode 100644 system/helpers/smiley_helper.php create mode 100644 system/helpers/string_helper.php create mode 100644 system/helpers/text_helper.php create mode 100644 system/helpers/typography_helper.php create mode 100644 system/helpers/url_helper.php create mode 100644 system/helpers/xml_helper.php create mode 100644 system/index.html create mode 100644 system/language/english/calendar_lang.php create mode 100644 system/language/english/date_lang.php create mode 100644 system/language/english/db_lang.php create mode 100644 system/language/english/email_lang.php create mode 100644 system/language/english/form_validation_lang.php create mode 100644 system/language/english/ftp_lang.php create mode 100644 system/language/english/imglib_lang.php create mode 100644 system/language/english/index.html create mode 100644 system/language/english/migration_lang.php create mode 100644 system/language/english/number_lang.php create mode 100644 system/language/english/pagination_lang.php create mode 100644 system/language/english/profiler_lang.php create mode 100644 system/language/english/unit_test_lang.php create mode 100644 system/language/english/upload_lang.php create mode 100644 system/language/index.html create mode 100644 system/libraries/Cache/Cache.php create mode 100644 system/libraries/Cache/drivers/Cache_apc.php create mode 100644 system/libraries/Cache/drivers/Cache_dummy.php create mode 100644 system/libraries/Cache/drivers/Cache_file.php create mode 100644 system/libraries/Cache/drivers/Cache_memcached.php create mode 100644 system/libraries/Cache/drivers/Cache_redis.php create mode 100644 system/libraries/Cache/drivers/Cache_wincache.php create mode 100644 system/libraries/Cache/drivers/index.html create mode 100644 system/libraries/Cache/index.html create mode 100644 system/libraries/Calendar.php create mode 100644 system/libraries/Cart.php create mode 100644 system/libraries/Driver.php create mode 100644 system/libraries/Email.php create mode 100644 system/libraries/Encrypt.php create mode 100644 system/libraries/Encryption.php create mode 100644 system/libraries/Form_validation.php create mode 100644 system/libraries/Ftp.php create mode 100644 system/libraries/Image_lib.php create mode 100644 system/libraries/Javascript.php create mode 100644 system/libraries/Javascript/Jquery.php create mode 100644 system/libraries/Javascript/index.html create mode 100644 system/libraries/Migration.php create mode 100644 system/libraries/Pagination.php create mode 100644 system/libraries/Parser.php create mode 100644 system/libraries/Profiler.php create mode 100644 system/libraries/Session/CI_Session_driver_interface.php create mode 100644 system/libraries/Session/OldSessionWrapper.php create mode 100644 system/libraries/Session/PHP8SessionWrapper.php create mode 100644 system/libraries/Session/Session.php create mode 100644 system/libraries/Session/SessionHandlerInterface.php create mode 100644 system/libraries/Session/SessionUpdateTimestampHandlerInterface.php create mode 100644 system/libraries/Session/Session_driver.php create mode 100644 system/libraries/Session/drivers/Session_database_driver.php create mode 100644 system/libraries/Session/drivers/Session_files_driver.php create mode 100644 system/libraries/Session/drivers/Session_memcached_driver.php create mode 100644 system/libraries/Session/drivers/Session_redis_driver.php create mode 100644 system/libraries/Session/drivers/index.html create mode 100644 system/libraries/Session/index.html create mode 100644 system/libraries/Table.php create mode 100644 system/libraries/Trackback.php create mode 100644 system/libraries/Typography.php create mode 100644 system/libraries/Unit_test.php create mode 100644 system/libraries/Upload.php create mode 100644 system/libraries/User_agent.php create mode 100644 system/libraries/Xmlrpc.php create mode 100644 system/libraries/Xmlrpcs.php create mode 100644 system/libraries/Zip.php create mode 100644 system/libraries/index.html diff --git a/application/.htaccess b/application/.htaccess new file mode 100644 index 0000000..6c63ed4 --- /dev/null +++ b/application/.htaccess @@ -0,0 +1,6 @@ + + Require all denied + + + Deny from all + \ No newline at end of file diff --git a/application/cache/index.html b/application/cache/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/application/cache/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + diff --git a/application/config/autoload.php b/application/config/autoload.php new file mode 100644 index 0000000..5fd0504 --- /dev/null +++ b/application/config/autoload.php @@ -0,0 +1,135 @@ + 'ua'); +*/ +$autoload['libraries'] = array('session','database','email'); + +/* +| ------------------------------------------------------------------- +| 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('url'); + +/* +| ------------------------------------------------------------------- +| 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(); diff --git a/application/config/config.php b/application/config/config.php new file mode 100644 index 0000000..dbff06e --- /dev/null +++ b/application/config/config.php @@ -0,0 +1,564 @@ +]+$/i +| +| DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!! +| +*/ +$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'; + +/* +|-------------------------------------------------------------------------- +| Allow $_GET array +|-------------------------------------------------------------------------- +| +| By default CodeIgniter enables access to the $_GET array. If for some +| reason you would like to disable it, set 'allow_get_array' to FALSE. +| +| WARNING: This feature is DEPRECATED and currently available only +| for backwards compatibility purposes! +| +*/ +$config['allow_get_array'] = TRUE; + +/* +|-------------------------------------------------------------------------- +| 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 with trailing slash. +| +*/ +$config['log_path'] = ''; + +/* +|-------------------------------------------------------------------------- +| Log File Extension +|-------------------------------------------------------------------------- +| +| The default filename extension for log files. The default 'php' allows for +| protecting the log files via basic scripting, when they are to be stored +| under a publicly accessible directory. +| +| Note: Leaving it blank will default to 'php'. +| +*/ +$config['log_file_extension'] = ''; + +/* +|-------------------------------------------------------------------------- +| 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 with trailing slash. +| +*/ +$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 with trailing slash. +| +*/ +$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'; + +/* +|-------------------------------------------------------------------------- +| Standardize newlines +|-------------------------------------------------------------------------- +| +| Determines whether to standardize newline characters in input data, +| meaning to replace \r\n, \r, \n occurrences with the PHP_EOL value. +| +| WARNING: This feature is DEPRECATED and currently available only +| for backwards compatibility purposes! +| +*/ +$config['standardize_newlines'] = FALSE; + +/* +|-------------------------------------------------------------------------- +| Global XSS Filtering +|-------------------------------------------------------------------------- +| +| Determines whether the XSS filter is always active when GET, POST or +| COOKIE data is encountered +| +| WARNING: This feature is DEPRECATED and currently available only +| for backwards compatibility purposes! +| +*/ +$config['global_xss_filtering'] = FALSE; + +/* +|-------------------------------------------------------------------------- +| 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'; + +/* +|-------------------------------------------------------------------------- +| Rewrite PHP Short Tags +|-------------------------------------------------------------------------- +| +| If your PHP installation does not have short tag support enabled CI +| can rewrite the tags on-the-fly, enabling you to utilize that syntax +| in your view files. Options are TRUE or FALSE (boolean) +| +| Note: You need to have eval() enabled for this to work. +| +*/ +$config['rewrite_short_tags'] = FALSE; + +/* +|-------------------------------------------------------------------------- +| 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'] = ''; diff --git a/application/config/constants.php b/application/config/constants.php new file mode 100644 index 0000000..18d3b4b --- /dev/null +++ b/application/config/constants.php @@ -0,0 +1,85 @@ +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). +| +| The $query_builder variables lets you determine whether or not to load +| the query builder class. +*/ +$active_group = 'default'; +$query_builder = TRUE; + +$db['default'] = array( + 'dsn' => '', + 'hostname' => 'localhost', + 'username' => 'root', + 'password' => '', + 'database' => 'ci', + '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 +); diff --git a/application/config/doctypes.php b/application/config/doctypes.php new file mode 100644 index 0000000..59a7991 --- /dev/null +++ b/application/config/doctypes.php @@ -0,0 +1,24 @@ + '', + 'xhtml1-strict' => '', + 'xhtml1-trans' => '', + 'xhtml1-frame' => '', + 'xhtml-basic11' => '', + 'html5' => '', + 'html4-strict' => '', + 'html4-trans' => '', + 'html4-frame' => '', + 'mathml1' => '', + 'mathml2' => '', + 'svg10' => '', + 'svg11' => '', + 'svg11-basic' => '', + 'svg11-tiny' => '', + 'xhtml-math-svg-xh' => '', + 'xhtml-math-svg-sh' => '', + 'xhtml-rdfa-1' => '', + 'xhtml-rdfa-2' => '' +); diff --git a/application/config/foreign_chars.php b/application/config/foreign_chars.php new file mode 100644 index 0000000..0231f35 --- /dev/null +++ b/application/config/foreign_chars.php @@ -0,0 +1,114 @@ + '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' +); diff --git a/application/config/hooks.php b/application/config/hooks.php new file mode 100644 index 0000000..79c5c16 --- /dev/null +++ b/application/config/hooks.php @@ -0,0 +1,13 @@ + + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + diff --git a/application/config/memcached.php b/application/config/memcached.php new file mode 100644 index 0000000..65a1496 --- /dev/null +++ b/application/config/memcached.php @@ -0,0 +1,19 @@ + array( + 'hostname' => '127.0.0.1', + 'port' => '11211', + 'weight' => '1', + ), +); diff --git a/application/config/migration.php b/application/config/migration.php new file mode 100644 index 0000000..4b585a6 --- /dev/null +++ b/application/config/migration.php @@ -0,0 +1,84 @@ +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/'; diff --git a/application/config/mimes.php b/application/config/mimes.php new file mode 100644 index 0000000..b2e989f --- /dev/null +++ b/application/config/mimes.php @@ -0,0 +1,186 @@ + 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' +); diff --git a/application/config/profiler.php b/application/config/profiler.php new file mode 100644 index 0000000..3436e93 --- /dev/null +++ b/application/config/profiler.php @@ -0,0 +1,14 @@ + my_controller/index +| my-controller/my-method -> my_controller/my_method +*/ +$route['default_controller'] = 'welcome'; +$route['404_override'] = ''; +$route['translate_uri_dashes'] = FALSE; diff --git a/application/config/smileys.php b/application/config/smileys.php new file mode 100644 index 0000000..a9b9191 --- /dev/null +++ b/application/config/smileys.php @@ -0,0 +1,64 @@ + array('grin.gif', '19', '19', 'grin'), + ':lol:' => array('lol.gif', '19', '19', 'LOL'), + ':cheese:' => array('cheese.gif', '19', '19', 'cheese'), + ':)' => array('smile.gif', '19', '19', 'smile'), + ';-)' => array('wink.gif', '19', '19', 'wink'), + ';)' => array('wink.gif', '19', '19', 'wink'), + ':smirk:' => array('smirk.gif', '19', '19', 'smirk'), + ':roll:' => array('rolleyes.gif', '19', '19', 'rolleyes'), + ':-S' => array('confused.gif', '19', '19', 'confused'), + ':wow:' => array('surprise.gif', '19', '19', 'surprised'), + ':bug:' => array('bigsurprise.gif', '19', '19', 'big surprise'), + ':-P' => array('tongue_laugh.gif', '19', '19', 'tongue laugh'), + '%-P' => array('tongue_rolleye.gif', '19', '19', 'tongue rolleye'), + ';-P' => array('tongue_wink.gif', '19', '19', 'tongue wink'), + ':P' => array('raspberry.gif', '19', '19', 'raspberry'), + ':blank:' => array('blank.gif', '19', '19', 'blank stare'), + ':long:' => array('longface.gif', '19', '19', 'long face'), + ':ohh:' => array('ohh.gif', '19', '19', 'ohh'), + ':grrr:' => array('grrr.gif', '19', '19', 'grrr'), + ':gulp:' => array('gulp.gif', '19', '19', 'gulp'), + '8-/' => array('ohoh.gif', '19', '19', 'oh oh'), + ':down:' => array('downer.gif', '19', '19', 'downer'), + ':red:' => array('embarrassed.gif', '19', '19', 'red face'), + ':sick:' => array('sick.gif', '19', '19', 'sick'), + ':shut:' => array('shuteye.gif', '19', '19', 'shut eye'), + ':-/' => array('hmm.gif', '19', '19', 'hmmm'), + '>:(' => array('mad.gif', '19', '19', 'mad'), + ':mad:' => array('mad.gif', '19', '19', 'mad'), + '>:-(' => array('angry.gif', '19', '19', 'angry'), + ':angry:' => array('angry.gif', '19', '19', 'angry'), + ':zip:' => array('zip.gif', '19', '19', 'zipper'), + ':kiss:' => array('kiss.gif', '19', '19', 'kiss'), + ':ahhh:' => array('shock.gif', '19', '19', 'shock'), + ':coolsmile:' => array('shade_smile.gif', '19', '19', 'cool smile'), + ':coolsmirk:' => array('shade_smirk.gif', '19', '19', 'cool smirk'), + ':coolgrin:' => array('shade_grin.gif', '19', '19', 'cool grin'), + ':coolhmm:' => array('shade_hmm.gif', '19', '19', 'cool hmm'), + ':coolmad:' => array('shade_mad.gif', '19', '19', 'cool mad'), + ':coolcheese:' => array('shade_cheese.gif', '19', '19', 'cool cheese'), + ':vampire:' => array('vampire.gif', '19', '19', 'vampire'), + ':snake:' => array('snake.gif', '19', '19', 'snake'), + ':exclaim:' => array('exclaim.gif', '19', '19', 'exclaim'), + ':question:' => array('question.gif', '19', '19', 'question') + +); diff --git a/application/config/user_agents.php b/application/config/user_agents.php new file mode 100644 index 0000000..5e1f6af --- /dev/null +++ b/application/config/user_agents.php @@ -0,0 +1,222 @@ + '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/ 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' +); + +$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' +); diff --git a/application/controllers/Auth.php b/application/controllers/Auth.php new file mode 100644 index 0000000..8e07c73 --- /dev/null +++ b/application/controllers/Auth.php @@ -0,0 +1,407 @@ +load->library('form_validation'); + $this->load->model('AuthModel'); + + $this->form_validation->set_error_delimiters('* ', ''); + $this->form_validation->set_message('required', 'Kolom {field} harus diisi'); + $this->form_validation->set_message('numeric', 'Isi kolom {field} dengan angka (0-9)'); + $this->form_validation->set_message('min_length', 'Kolom {field} minimal {param} digit'); + $this->form_validation->set_message('max_length', 'Kolom {field} maksimal {param} digit'); + $this->form_validation->set_message('is_unique', '%s ini sudah ada'); + $this->form_validation->set_message('matches', 'Kolom {field} harus sama dengan kolom {param}'); + + } + + + private function template($page, $data = null) { + + $this->load->view($page, $data); + + } + + + public function index() { + + + if($this->session->userdata('email')){ + redirect('dashboard'); + } + + $data['title'] = 'Login Page'; + + $this->form_validation->set_rules('email', 'email', 'required|trim'); + $this->form_validation->set_rules('password', 'Password', 'required|trim'); + + if ($this->form_validation->run() == false) { + $this->template('auth/login', $data); + } else { + $this->_login(); + } + + } + + + public function login() { + + + if($this->session->userdata('email')){ + redirect('dashboard'); + } + + $data['title'] = 'Login Page'; + + $this->form_validation->set_rules('email', 'email', 'required|trim'); + $this->form_validation->set_rules('password', 'Password', 'required|trim'); + + if ($this->form_validation->run() == false) { + $this->template('auth/login', $data); + } else { + $this->_login(); + } + + } + + + private function _login(){ + + $email = $this->input->post('email'); + $password = $this->input->post('password'); + + $user = $this->db->get_where('users_account', ['email' => $email])->row_array(); + + // Jika usernya ada. + if ($user) { + // JIka user nya aktif. + if ($user['is_active'] == 1) { + # Cek Password + if (password_verify($password, $user['password'])) { + + $session = array( + 'user_id' => $user['id'], + 'email' => $user['email'], + 'role_id' => $user['role_id'], + 'status_login' => 'online' + ); + + $this->AuthModel->updateStatusOnline($session['user_id']); + + $this->session->set_userdata($session); + redirect('dashboard'); + } else { + $this->session->set_flashdata('message', ''); + redirect('auth/login'); + } + } else { + $this->session->set_flashdata('message', ''); + redirect('auth/login'); + } + } else { + $this->session->set_flashdata('message', ''); + redirect('auth/login'); + } + + } + + + public function signup() { + + + if($this->session->userdata('email')){ + redirect('welcome'); + } + + $data['title'] = 'Daftar'; + + $this->form_validation->set_rules('nama', 'Nama', 'required|trim'); + $this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email|is_unique[users_account.email]',[ + 'is_unique' => 'email sudah terdaftar!' + ]); + $this->form_validation->set_rules('password1', 'Password', 'required|trim|min_length[3]', [ + 'matches' => 'Password tidak sama!', + 'min_length' => 'Password terlalu pendek!' + ]); + $this->form_validation->set_rules('password2', 'Password', 'required|trim|matches[password1]'); + + if ($this->form_validation->run() == false){ + $this->load->view('auth/signup', $data); + } else { + $date = date('ymd'); + $time = date('His'); + $id = "ID".$date."-".rand(100,999); + $nama = $this->input->post('nama', true); + $email = $this->input->post('email', true); + $password = $this->input->post('password1'); + $data = [ + 'id' => $id, + 'nama' => htmlspecialchars($nama), + 'email' => htmlspecialchars($email), + 'password' => password_hash($password, PASSWORD_DEFAULT), + 'image' => 'user.png', + 'role_id' => 3, + 'is_active' => 0, + 'date_created' => time() + ]; + + $token = base64_encode(random_bytes(32)); + $user_token = [ + 'id_user' => $id, + 'email' => $email, + 'token' => $token, + 'date_created' => time() + ]; + + $this->db->insert('user_token', $user_token); + + $this->db->insert('users_account', $data); + + $this->_sendEmail($token, 'verify'); + + $this->session->set_flashdata('message', ''); + redirect('auth/login'); + } + + } + + + private function _sendEmail($token, $type){ + + $config = [ + 'protocol' => 'smtp', + 'smtp_host' => 'ssl://smtp.googlemail.com', + // 'smtp_user' => 'aku@dyzulk.com', + // 'smtp_pass' => '@Synthesis1996', + 'smtp_user' => 'dyzulk04@gmail.com', + 'smtp_pass' => 'qhfiugstswaehokp', + 'smtp_port' => 465, + 'smtp_timeout' => '7', + 'mailtype' => 'html', + 'charset' => 'utf-8', + 'newline' => "\r\n", + ]; + + $this->load->library('email', $config); + $this->email->initialize($config); + + $this->email->from('dyzulksolution@dyzulk.com', 'CI App'); + + if ($type == 'verify'){ + + $email = $this->input->post('email'); + $token_ok = urlencode($token); + $data['link'] = base_url().'auth/verify?email='.$email.'&token='.$token_ok; + $this->email -> to($this->input->post('email')); + $this->email -> subject('Account Verification Dyzulk DeveloperX'); + $this->email -> message($this->load->view('email/activation', $data, true)); + + } else if ($type == 'forgot') { + + $email = $this->session->userdata('reset_password'); + $token_ok = urlencode($token); + $data['link'] = base_url().'auth/resetpassword?email='.$email.'&token='.$token_ok; + $data['email'] = $email; + $this->email -> to($email); + $this->email -> subject('Reset Password Dyzulk DeveloperX'); + $this->email -> message($this->load->view('email/password', $data, true)); + + } + + if($this->email->send()){ + return true; + } else { + echo $this->email->print_debugger(); + die; + } + + } + + + public function verify(){ + + $data['title'] = 'Verify Account'; + + $email = $this->input->get('email'); + $token = $this->input->get('token'); + + $user = $this->db->get_where('users_account', ['email' => $email])->row_array(); + + if($user){ + + $user_token = $this->db->get_where('user_token', ['token' => $token])->row_array(); + + if($user_token){ + + if(time() - $user_token['date_created'] < (60*60*24)){ + $this->db->set('is_active', 1); + $this->db->where('email', $email); + $this->db->update('users_account'); + + $this->db->delete('user_token', ['email' => $email]); + + $this->session->set_flashdata('message', ''); + redirect('auth/login'); + } else { + $this->db->delete('users_account', ['email' => $email]); + $this->db->delete('user_token', ['email' => $email]); + + $this->session->set_flashdata('message', ''); + redirect('auth/login'); + } + + } else { + + $this->session->set_flashdata('message', ''); + redirect('auth/login'); + + } + + } else { + + $this->session->set_flashdata('message', ''); + redirect('auth/login'); + + } + + } + + + public function logout(){ + + $data['title'] = 'Logout'; + + $this->AuthModel->updateStatusOffline($this->session->userdata('user_id')); + + $this->session->sess_destroy(); + $this->session->set_flashdata('message', ''); + + redirect('auth/login'); + + } + + + public function blocked(){ + + // $this->load->view('utility/blocked'); + $this->load->view('utility/access_denied'); + + } + + + public function forgotPassword(){ + + $this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email'); + $data['title'] = 'Forgot Password'; + + if ($this->form_validation->run() == false) { + $this->template('auth/forgotpassword', $data); + + } else { + + $email = $this->input->post('email'); + $user = $this->db->get_where('users_account', ['email' => $this->input->post('email'), 'is_active' => 1])->row_array(); + + if($user){ + + $id = $user['id']; + $email = $user['email']; + $token = base64_encode(random_bytes(32)); + $this->session->set_userdata('reset_password', $email); + + $user_token = [ + 'id_user' => $id, + 'email' => $email, + 'token' => $token, + 'date_created' => time() + ]; + + + $this->db->insert('user_token', $user_token); + + $this->_sendEmail($token, 'forgot', $email); + + + $this->session->set_flashdata('message', ''); + redirect('auth/forgotpassword'); + + } else { + + $this->set_flashdata('message', ''); + redirect('auth/forgotpassword'); + + } + } + + } + + + public function resetPassword(){ + + $email = $this->input->get('email'); + $token = $this->input->get('token'); + + $user = $this->db->get_where('users_account', ['email' => $email])->row_array(); + + if($user) { + + $user_token = $this->db->get_where('user_token', ['token' => $token])->row_array(); + + if($user_token) { + + $this->session->set_userdata('reset_password', $email); + $this->changePassword(); + + } else { + + $this->session->set_flashdata('message', ''); + redirect('auth/login'); + + } + + } else { + + $this->session->set_flashdata('message', ''); + redirect('auth/login'); + } + } + + + public function changePassword(){ + + if(!$this->session->userdata('reset_password')){ + redirect('auth/login'); + } + + $data['title'] = 'Change Password'; + + $this->form_validation->set_rules('password1', 'Password', 'required|trim|min_length[3]'); + $this->form_validation->set_rules('password2', 'Password', 'required|trim|min_length[3]|matches[password1]'); + + if($this->form_validation->run() == false){ + $this->template('auth/change-password', $data); + + } else { + $password = password_hash($this->input->post('password1'), PASSWORD_DEFAULT); + $email = $this->session->userdata('reset_password'); + + $this->db->set('password', $password); + $this->db->where('email', $email); + $this->db->update('users_account'); + + $this->session->unset_userdata('reset_password'); + + $this->session->set_flashdata('message', ''); + redirect('auth/login'); + } + + + } + + +} diff --git a/application/controllers/Cards.php b/application/controllers/Cards.php new file mode 100644 index 0000000..d1221b6 --- /dev/null +++ b/application/controllers/Cards.php @@ -0,0 +1,18 @@ +db->get_where('users_account', ['email' => $this->session->userdata('email')])->row_array(); + + $this->load->view('partials/01header', $data); + $this->load->view('cards', $data); + } + + +} diff --git a/application/controllers/Dashboard.php b/application/controllers/Dashboard.php new file mode 100644 index 0000000..f5aa7db --- /dev/null +++ b/application/controllers/Dashboard.php @@ -0,0 +1,40 @@ +load->library('session'); + + // Memeriksa status login pengguna + if (!$this->session->userdata('email')) { + // Jika pengguna belum login, alihkan ke halaman login atau tindakan lainnya + $this->session->set_flashdata('message', ''); + redirect('auth'); + } + } + + + public function index() + + { + + $this->load->model('UserModel'); + + $data['total_users'] = $this->UserModel->getTotalUsers(); + $data['total_amount'] = $this->UserModel->getTotalAmount(); + $data['total_online_users'] = $this->UserModel->getTotalOnlineUsers(); + $data['users'] = $this->UserModel->getUsers(); + + $data['title'] = 'Dashboard'; + $data['user'] = $this->db->get_where('users_account', ['email' => $this->session->userdata('email')])->row_array(); + + $this->load->view('partials/01header', $data); + $this->load->view('Dashboard', $data); + } + + +} diff --git a/application/controllers/Forms.php b/application/controllers/Forms.php new file mode 100644 index 0000000..324f155 --- /dev/null +++ b/application/controllers/Forms.php @@ -0,0 +1,18 @@ +db->get_where('users_account', ['email' => $this->session->userdata('email')])->row_array(); + + $this->load->view('partials/01header', $data); + $this->load->view('forms', $data); + } + + +} diff --git a/application/controllers/Test.php b/application/controllers/Test.php new file mode 100644 index 0000000..61b6cae --- /dev/null +++ b/application/controllers/Test.php @@ -0,0 +1,109 @@ +load->model('Transaction_model'); + + } + + + public function index() + + { + echo "======================== array get_data() ========================"."

"; + $this->get_data(); + echo "

"."======================== terjemah time() ========================"."

"; + $this->time(); + echo "

"."======================== totalTransaction() ========================"."

"; + $this->totalTransaction(); + echo "

"."======================== transaction() ========================"."

"; + $this->transaction(); + echo "

"."======================== session ========================"."

"; + print_r($this->session->userdata()); + } + + + private function get_data(){ + + $query = $this->db->get('users_account'); // Ambil data dari tabel 'users_account' + + if ($query->num_rows() > 0) { + $result = $query->result_array(); // Konversi hasil kueri menjadi array + // Sekarang $result berisi data dari tabel users_account dalam bentuk array + echo "
"; // Tampilkan dengan format preformatted agar lebih rapih  
+            print_r($result); // Menampilkan data sebagai array
+            echo "
"; + } else { + echo "Tidak ada data ditemukan."; + } + + } + + + private function time(){ + + $timestamp = 1694737797; + $waktu_kalendar = date("Y-m-d H:i:s", $timestamp); + $tgl_lahir = date("Y-m-d"); + $time = time(); + + echo "Timestamp\t:" . $timestamp ."\t\t=\t" . "Converted\t:".$waktu_kalendar; + echo "
"; + echo "Tgl_Lahir\t:".$tgl_lahir; + echo "
"; + echo "time()\t:".$time; + + } + + + private function totalTransaction(){ + + $data = $this->db->get('user_total_transaction')->result_array(); + echo "
";
+        print_r($data);
+        echo "
"; + + } + + + private function transaction(){ + + $data = $this->Transaction_model->getTransactions(); + echo "
";
+        print_r($data);
+        echo "
"; + + } + + + public function aktivasi(){ + + $email = 'dyzulkdeveloper@gmail.com'; + $token = base64_encode(random_bytes(32)); + $data['title'] = 'Aktivasi'; + $data['link'] = base_url().'auth/verify?email='.$email.'&token='.urlencode($token); + + $this->load->view('email/activation', $data); + + } + + + public function password(){ + + $email = 'dyzulkdeveloper@gmail.com'; + $token = base64_encode(random_bytes(32)); + $data['title'] = 'Password'; + $data['email'] = $email; + $data['link'] = base_url().'auth/resetpassword?email='.$email.'&token='.$token; + + $this->load->view('email/password', $data); + + } + +} diff --git a/application/controllers/Transaksi.php b/application/controllers/Transaksi.php new file mode 100644 index 0000000..7e72a6e --- /dev/null +++ b/application/controllers/Transaksi.php @@ -0,0 +1,156 @@ +load->library('session'); + $this->load->library('form_validation'); + $this->load->model('Transaction_model'); + + // Memeriksa status login pengguna + if (!$this->session->userdata('email')) { + // Jika pengguna belum login, alihkan ke halaman login atau tindakan lainnya + $this->session->set_flashdata('message', ''); + redirect('auth'); + } + } + + + private function template($page, $data = null) { + + $this->load->view('partials/01header', $data); + $this->load->view($page, $data); + + } + + + public function index() + + { + $data['title'] = 'Transaksi'; + $data['user'] = $this->db->get_where('users_account', ['email' => $this->session->userdata('email')])->row_array(); + $data['total'] = $this->totalTransaction(); + + $this->template('transaction/view', $data); + } + + + public function admin() + + { + $data['title'] = 'Transaction for Admin'; + $data['user'] = $this->db->get_where('users_account', ['email' => $this->session->userdata('email')])->row_array(); + $data['users'] = $this->db->get('users_account')->result_array(); + $data['transData'] = $this->Transaction_model->getTransactions(); + + $this->template('transaction/admin', $data); + } + + + public function addData(){ + + $this->_addData(); + + } + + + private function _addData(){ + + $id_user = $this->input->post('id'); + + $db = $this->db->get_where('users_account', ['id' => $id_user])->row_array(); + + $id = 'IT-'.date('ymd').rand(100, 999); // 'IT-20210914_1234 + $nama = $db['nama']; + $email = $db['email']; + $amount = $this->input->post('amount'); + $time = time(); + + $data = [ + + 'id' => $id, + 'categori_id' => 'K-000001', + 'user_id' => $id_user, + 'user_email' => $email, + 'amount' => $amount, + 'time_transaction' => $time + + ]; + + $this->db->insert('user_transaction', $data); + + $this->session->set_flashdata('message', ''); + redirect('transaksi/admin'); + + print_r($data); + + } + + + public function editData(){ + + $data['title'] = 'Edit User'; + $data['user'] = $this->db->get_where('users_account', ['email' => $this->session->userdata('email')])->row_array(); + + $id = $this->input->get('id'); + $data['userEdit'] = $this->db->query("SELECT * FROM user_transaction WHERE id='$id'")->result(); + $data['transData'] = $this->Transaction_model->getTransactionById($id); + $this->template('transaction/edit', $data); + + } + + + public function updateData(){ + + $id = $this->input->post('id'); + $amount = $this->input->post('amount'); + $time = time(); + + $data = array( + + 'amount' => $amount, + 'other' => $time + + ); + + $this->db->where('id', $id); + $this->db->set($data); + $this->db->update('user_transaction'); + + $this->session->set_flashdata('message', ''); + redirect('transaksi/admin'); + } + + + public function deleteData(){ + + $id = $this->input->get('id'); + $where = array('id' => $id); + $this->db->delete('user_transaction', $where); + + $this->session->set_flashdata('message', ''); + redirect('transaksi/admin'); + + } + + + private function transData(){ + + $data = $this->db->get('user_transaction')->result_array(); + return $data; + + } + + + private function totalTransaction(){ + + $data = $this->db->get('user_total_transaction')->result_array(); + return $data; + + } + +} diff --git a/application/controllers/Welcome.php b/application/controllers/Welcome.php new file mode 100644 index 0000000..5f82771 --- /dev/null +++ b/application/controllers/Welcome.php @@ -0,0 +1,25 @@ + + * @see https://codeigniter.com/userguide3/general/urls.html + */ + public function index() + { + $this->load->view('welcome_message'); + } +} diff --git a/application/controllers/index.html b/application/controllers/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/application/controllers/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + diff --git a/application/core/index.html b/application/core/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/application/core/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + diff --git a/application/helpers/index.html b/application/helpers/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/application/helpers/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + diff --git a/application/hooks/index.html b/application/hooks/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/application/hooks/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + diff --git a/application/index.html b/application/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/application/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + diff --git a/application/language/english/index.html b/application/language/english/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/application/language/english/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + diff --git a/application/language/index.html b/application/language/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/application/language/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + diff --git a/application/libraries/index.html b/application/libraries/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/application/libraries/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + diff --git a/application/logs/index.html b/application/logs/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/application/logs/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + diff --git a/application/models/AuthModel.php b/application/models/AuthModel.php new file mode 100644 index 0000000..398db2d --- /dev/null +++ b/application/models/AuthModel.php @@ -0,0 +1,30 @@ +db->get_where('user', ['username' => $username])->row_array(); + } + + + public function getMaxId($table, $field, $prefix) { + $this->db->select_max($field); + $this->db->like($field, $prefix, 'after'); + return $this->db->get($table)->row_array()[$field]; + } + + + public function updateStatusOnline($user_id) { + $data = array('status_login' => 'online'); + $this->db->where('id', $user_id); + $this->db->update('users_account', $data); + } + + + public function updateStatusOffline($user_id) { + $data = array('status_login' => 'offline'); + $this->db->where('id', $user_id); + $this->db->update('users_account', $data); + } +} diff --git a/application/models/Transaction_model.php b/application/models/Transaction_model.php new file mode 100644 index 0000000..ec68861 --- /dev/null +++ b/application/models/Transaction_model.php @@ -0,0 +1,24 @@ +db->select('user_transaction.*, users_account.nama, users_account.email, users_account.image'); + $this->db->from('user_transaction'); + $this->db->join('users_account', 'user_transaction.user_email = users_account.email', 'left'); + $this->db->order_by('user_transaction.time_transaction', 'DESC'); + return $this->db->get()->result_array(); + } + + public function getTransactionById($id) { + $this->db->select('user_transaction.*, users_account.nama, users_account.email, users_account.image'); + $this->db->from('user_transaction'); + $this->db->join('users_account', 'user_transaction.user_email = users_account.email', 'left'); + $this->db->where('user_transaction.id', $id); + return $this->db->get()->row_array(); + } +} diff --git a/application/models/UserModel.php b/application/models/UserModel.php new file mode 100644 index 0000000..93d302e --- /dev/null +++ b/application/models/UserModel.php @@ -0,0 +1,29 @@ +db->get('users_account'); + return $query->result_array(); + } + + public function getTotalUsers() { + $query = $this->db->query("SELECT COUNT(*) AS total_users FROM users_account"); + return $query->row()->total_users; + } + + public function getTotalAmount() { + $query = $this->db->query("SELECT SUM(amount) AS total_amount FROM user_transaction"); + return $query->row()->total_amount; + } + + public function getTotalOnlineUsers() { + $this->db->select('COUNT(*) as total_online_users'); + $this->db->where('status_login', 'online'); + $query = $this->db->get('users_account'); + return $query->row()->total_online_users; + } + +} diff --git a/application/models/index.html b/application/models/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/application/models/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + diff --git a/application/third_party/index.html b/application/third_party/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/application/third_party/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + diff --git a/application/views/Forms.php b/application/views/Forms.php new file mode 100644 index 0000000..0903067 --- /dev/null +++ b/application/views/Forms.php @@ -0,0 +1,302 @@ +
+
+

+ Forms +

+ + +
+ + + + Star this project on GitHub +
+ View more → +
+ + +

+ Elements +

+
+ + +
+ + Account Type + +
+ + +
+
+ + + + + + + +
+ +
+
+ + +

+ Validation +

+
+ + + + + + + + +
+ + +

+ Icons +

+
+ + + +
+ + +

+ Buttons +

+
+ + + +
+
+
+ + + + diff --git a/application/views/auth/change-password.php b/application/views/auth/change-password.php new file mode 100644 index 0000000..8e06a0e --- /dev/null +++ b/application/views/auth/change-password.php @@ -0,0 +1,88 @@ + + + + + + + <?=$title;?> - App Dashboard + + + + + + + + + + + +
+
+
+
+ + +
+
+
+

+ Change Password +

+ +
+ + + + + +
+ +
+
session->flashdata('message'); ?>
+
+
+
+
+
+ + diff --git a/application/views/auth/forgotpassword.php b/application/views/auth/forgotpassword.php new file mode 100644 index 0000000..fcf7da7 --- /dev/null +++ b/application/views/auth/forgotpassword.php @@ -0,0 +1,71 @@ + + + + + + + <?=$title;?> - App Dashboard + + + + + + +
+
+
+
+ + +
+
+
+

+ Forgot password +

+
+ + + + +
+
session->flashdata('message'); ?>
+
+
+
+
+
+ + diff --git a/application/views/auth/login.php b/application/views/auth/login.php new file mode 100644 index 0000000..bdc211c --- /dev/null +++ b/application/views/auth/login.php @@ -0,0 +1,89 @@ + + + + + + + + Login - App Dashboard + + + + + + + + + + + + +
+
+
+
+ + +
+
+
+

+ Login +

+ +
+ + + + + +
+ +
session->flashdata('message'); ?>
+ +
+ + + +

+ + Forgot your password? + +

+

+ + Create account + +

+
+
+
+
+
+ + + \ No newline at end of file diff --git a/application/views/auth/signup.php b/application/views/auth/signup.php new file mode 100644 index 0000000..e3c7688 --- /dev/null +++ b/application/views/auth/signup.php @@ -0,0 +1,137 @@ + + + + + + + Create account - Windmill Dashboard + + + + + + + + + + +
+
+
+
+ + +
+
+
+

+ Create account +

+
+ + + + + +
+ +
+ + + +
+ +
session->flashdata('message'); ?>
+ +
+ + + +

+ + Already have an account? Login + +

+
+
+
+
+
+ + diff --git a/application/views/cards.php b/application/views/cards.php new file mode 100644 index 0000000..56801d8 --- /dev/null +++ b/application/views/cards.php @@ -0,0 +1,198 @@ +
+
+

+ Cards +

+ + +
+ + + + Star this project on GitHub +
+ View more → +
+ + +

+ Big section cards +

+
+

+ Large, full width sections goes here +

+
+ + +

+ Responsive cards +

+
+ +
+
+ + + +
+
+

+ Total clients +

+

+ 6389 +

+
+
+ +
+
+ + + +
+
+

+ Account balance +

+

+ $ 46,760.89 +

+
+
+ +
+
+ + + +
+
+

+ New sales +

+

+ 376 +

+
+
+ +
+
+ + + +
+
+

+ Pending contacts +

+

+ 35 +

+
+
+
+ + +

+ Cards with title +

+
+
+

+ Revenue +

+

+ Lorem ipsum dolor sit, amet consectetur adipisicing elit. + Fuga, cum commodi a omnis numquam quod? Totam exercitationem + quos hic ipsam at qui cum numquam, sed amet ratione! Ratione, + nihil dolorum. +

+
+
+

+ Colored card +

+

+ Lorem ipsum dolor sit, amet consectetur adipisicing elit. + Fuga, cum commodi a omnis numquam quod? Totam exercitationem + quos hic ipsam at qui cum numquam, sed amet ratione! Ratione, + nihil dolorum. +

+
+
+
+
+ + + + diff --git a/application/views/dashboard.php b/application/views/dashboard.php new file mode 100644 index 0000000..ecd7434 --- /dev/null +++ b/application/views/dashboard.php @@ -0,0 +1,364 @@ + +
+ +
+

+ Dashboard +

+ + +
+ +
+
+ + + +
+
+

+ Number of Users +

+

+ +

+
+
+ +
+
+ + + +
+
+

+ Online +

+

+ +

+
+
+ +
+
+ + + +
+
+

+ Account balance +

+

+ +

+
+
+ +
+
+ + + +
+
+

+ Remainder of Balance +

+

+ +

+
+
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + +
WhosAddressStatusDate Created
+
+ + +
+

+

+ +

+
+
+
+ + + + class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" + + class="px-2 py-1 font-semibold leading-tight text-gray-700 bg-gray-100 rounded-full dark:text-gray-100 dark:bg-gray-700" + + > + + + + +
+
+
+ + Showing 21-30 of 100 + + + + + + +
+
+ + +

+ Charts +

+
+
+

+ Revenue +

+ +
+ +
+ + Shirts +
+
+ + Shoes +
+
+ + Bags +
+
+
+
+

+ Traffic +

+ +
+ +
+ + Organic +
+
+ + Paid +
+
+
+
+
+
+ + + + diff --git a/application/views/email/activation.html b/application/views/email/activation.html new file mode 100644 index 0000000..d22c326 --- /dev/null +++ b/application/views/email/activation.html @@ -0,0 +1,59 @@ + + + + + + + Konfirmasi Email + + + + + + + + + + + + + + \ No newline at end of file diff --git a/application/views/email/activation.php b/application/views/email/activation.php new file mode 100644 index 0000000..a4808f1 --- /dev/null +++ b/application/views/email/activation.php @@ -0,0 +1,132 @@ + + + + + + + Konfirmasi Email + + + + + + + + + + + + + + diff --git a/application/views/email/password.php b/application/views/email/password.php new file mode 100644 index 0000000..3f515e3 --- /dev/null +++ b/application/views/email/password.php @@ -0,0 +1,141 @@ + + + + + + + Pemulihan Password + + + + + + + + + + + + + + diff --git a/application/views/errors/cli/error_404.php b/application/views/errors/cli/error_404.php new file mode 100644 index 0000000..6984b61 --- /dev/null +++ b/application/views/errors/cli/error_404.php @@ -0,0 +1,8 @@ + + +An uncaught Exception was encountered + +Type: +Message: +Filename: getFile(), "\n"; ?> +Line Number: getLine(); ?> + + + +Backtrace: +getTrace() as $error): ?> + + File: + Line: + Function: + + + + diff --git a/application/views/errors/cli/error_general.php b/application/views/errors/cli/error_general.php new file mode 100644 index 0000000..6984b61 --- /dev/null +++ b/application/views/errors/cli/error_general.php @@ -0,0 +1,8 @@ + + +A PHP Error was encountered + +Severity: +Message: +Filename: +Line Number: + + + +Backtrace: + + + File: + Line: + Function: + + + + diff --git a/application/views/errors/cli/index.html b/application/views/errors/cli/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/application/views/errors/cli/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + diff --git a/application/views/errors/html/error_404.php b/application/views/errors/html/error_404.php new file mode 100644 index 0000000..756ea9d --- /dev/null +++ b/application/views/errors/html/error_404.php @@ -0,0 +1,64 @@ + + + + +404 Page Not Found + + + +
+

+ +
+ + \ No newline at end of file diff --git a/application/views/errors/html/error_db.php b/application/views/errors/html/error_db.php new file mode 100644 index 0000000..f5a43f6 --- /dev/null +++ b/application/views/errors/html/error_db.php @@ -0,0 +1,64 @@ + + + + +Database Error + + + +
+

+ +
+ + \ No newline at end of file diff --git a/application/views/errors/html/error_exception.php b/application/views/errors/html/error_exception.php new file mode 100644 index 0000000..8784886 --- /dev/null +++ b/application/views/errors/html/error_exception.php @@ -0,0 +1,32 @@ + + +
+ +

An uncaught Exception was encountered

+ +

Type:

+

Message:

+

Filename: getFile(); ?>

+

Line Number: getLine(); ?>

+ + + +

Backtrace:

+ getTrace() as $error): ?> + + + +

+ File:
+ Line:
+ Function: +

+ + + + + + +
\ No newline at end of file diff --git a/application/views/errors/html/error_general.php b/application/views/errors/html/error_general.php new file mode 100644 index 0000000..fc3b2eb --- /dev/null +++ b/application/views/errors/html/error_general.php @@ -0,0 +1,64 @@ + + + + +Error + + + +
+

+ +
+ + \ No newline at end of file diff --git a/application/views/errors/html/error_php.php b/application/views/errors/html/error_php.php new file mode 100644 index 0000000..b146f9c --- /dev/null +++ b/application/views/errors/html/error_php.php @@ -0,0 +1,33 @@ + + +
+ +

A PHP Error was encountered

+ +

Severity:

+

Message:

+

Filename:

+

Line Number:

+ + + +

Backtrace:

+ + + + +

+ File:
+ Line:
+ Function: +

+ + + + + + + +
\ No newline at end of file diff --git a/application/views/errors/html/index.html b/application/views/errors/html/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/application/views/errors/html/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + diff --git a/application/views/errors/index.html b/application/views/errors/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/application/views/errors/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + diff --git a/application/views/index.html b/application/views/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/application/views/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

Directory access is forbidden.

+ + + diff --git a/application/views/partials/01header.php b/application/views/partials/01header.php new file mode 100644 index 0000000..38ada4a --- /dev/null +++ b/application/views/partials/01header.php @@ -0,0 +1,416 @@ + + + + + + + <?=$title;?> - App Dashboard + + + + + + + + + + + + + + + + + + + +
+ + session->userdata('role_id'); + $queryMenu = " SELECT `user_menu`.`id`, `title`, `url`, `icon` + FROM `user_menu` JOIN `user_access_menu` + ON `user_menu`.`id` = `user_access_menu`.`menu_id` + WHERE `user_access_menu`.`role_id` = $role_id + ORDER BY `user_access_menu`.`menu_id` ASC + "; + $menu = $this->db->query($queryMenu)->result_array(); + ?> + + + + +
+ +
+
+
+ + + +
+
+
+ +
+ +
+
+
    + +
  • + +
  • + +
  • + + +
  • + +
  • + + +
  • +
+
+
\ No newline at end of file diff --git a/application/views/transaction/admin.php b/application/views/transaction/admin.php new file mode 100644 index 0000000..97a3504 --- /dev/null +++ b/application/views/transaction/admin.php @@ -0,0 +1,252 @@ +
+
+

+ Tables +

+ + +
+ + + + + Star this project on GitHub +
+ View more → +
+ +
+ +
+ + +

+ Table with actions +

+
+
+ + + + + + + + + + + + + + + + + + + + + +
WhosAmountDateOtherActions
+
+ + +
+

+ +

+

+ +

+
+
+
+ + + + + + +
+ ');?> + +
+
+
+
+ + Showing 21-30 of 100 + + + + + + +
+ +
+ + +
+
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/application/views/transaction/edit.php b/application/views/transaction/edit.php new file mode 100644 index 0000000..1d91b1d --- /dev/null +++ b/application/views/transaction/edit.php @@ -0,0 +1,58 @@ +
+
+

+ Forms +

+ + +
+ + + + + Star this project on GitHub +
+ View more → +
+ + +

+ Elements +

+
+
+ + +
+ + Cancel + + +
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/application/views/transaction/view.php b/application/views/transaction/view.php new file mode 100644 index 0000000..e6417b7 --- /dev/null +++ b/application/views/transaction/view.php @@ -0,0 +1,221 @@ +
+
+

+ Tables +

+ + +
+ + + + Star this project on GitHub +
+ View more → +
+ + +

+ Table with avatars +

+
+
+ + + + + + + + + + + + session->userdata('email'); + $queryTransaksi = "SELECT * + FROM `users_account` + JOIN `user_transaction` ON `users_account`.`email` = `user_transaction`.`user_email` + WHERE `users_account`.`email` = '$session' + ORDER BY `user_transaction`.`time_transaction` DESC"; + + $transaksiData = $this->db->query($queryTransaksi)->result_array(); + + function rupiah($angka){ + $hasil_rupiah = "Rp. " . number_format($angka, 0, ',', '.'); + return $hasil_rupiah; + } + + $sisaSebelumnya = 1000000; // Inisialisasi sisa yang harus dibayar + + foreach ($transaksiData as $transaksi) { + // Mengurangkan sisa yang harus dibayar dengan nilai amount pada transaksi + $sisa = $sisaSebelumnya - $transaksi['amount']; + + // Menampilkan data transaksi + echo ''; + echo ''; + + // Amount + echo ''; + + // Sisa yang harus dibayar + echo ''; + + // Status Pembayaran + echo ''; + + // Tanggal Transaksi + echo ''; + + echo ''; + + // Mengupdate nilai sisa yang harus dibayar untuk transaksi berikutnya + $sisaSebelumnya = $sisa; + } + ?> + +
WhosAmountRemainderStatusDate
'; + echo '
'; + + // Avatar + echo ''; + + // Nama dan Email + echo '
'; + echo '

' . $transaksi['nama'] . '

'; + echo '

' . $transaksi['email'] . '

'; + echo '
'; + + echo '
'; + echo '
' . rupiah($transaksi['amount']) . '' . rupiah($sisa) . ''; + if ($sisa <= 0) { + echo 'Lunas'; + } else { + echo 'Belum Lunas'; + } + echo '' . date('d F Y', $transaksi['time_transaction']) . '
+
+
+ + Showing 21-30 of 100 + + + + + + +
+
+
+
+ + + + diff --git a/application/views/welcome_message.php b/application/views/welcome_message.php new file mode 100644 index 0000000..951ff35 --- /dev/null +++ b/application/views/welcome_message.php @@ -0,0 +1,101 @@ + + + + + Welcome to CodeIgniter + + + + + +
+

Welcome to CodeIgniter!

+ +
+

The page you are looking at is being generated dynamically by CodeIgniter.

+ +

If you would like to edit this page you'll find it located at:

+ application/views/welcome_message.php + +

The corresponding controller for this page is found at:

+ application/controllers/Welcome.php + +

If you are exploring CodeIgniter for the very first time, you should start by reading the User Guide.


+

Login | Signup

+
+ + +
+ + + diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..3976230 --- /dev/null +++ b/composer.json @@ -0,0 +1,36 @@ +{ + "description": "The CodeIgniter framework", + "name": "codeigniter/framework", + "type": "project", + "homepage": "https://codeigniter.com", + "license": "MIT", + "support": { + "forum": "http://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.3.7", + "google/apiclient": "^2.0" + }, + "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.*" + } +} diff --git a/e.html b/e.html new file mode 100644 index 0000000..033a67f --- /dev/null +++ b/e.html @@ -0,0 +1,48 @@ +
+ +

A PHP Error was encountered

+ +

Severity: Warning

+

Message: Undefined array key "title"

+

Filename: partials/01header.php

+

Line Number: 7

+ + +

Backtrace:

+ + + + + + +

+ File: E:\www\ci\application\views\partials\01header.php
+ Line: 7
+ Function: _error_handler

+ + + + + + + + +

+ File: E:\www\ci\application\controllers\Dashboard.php
+ Line: 28
+ Function: view

+ + + + + + +

+ File: E:\www\ci\index.php
+ Line: 315
+ Function: require_once

+ + + + +
\ No newline at end of file diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..f4cce13c90c2692e8d9f2b5dfa4266ee03e1cacc GIT binary patch literal 4286 zcmeHJX;4#F6uxNHADz+u(y{%aqqZ)z+C}TAbs0g#TD5f@+(4;2tAeN%K@o8Sl&BRq zP-GDl6al4ZAp{bZtY$YPVM_=RB@0_+`FaCWr!GjG{^|_x&G*i`=X`U%^Ugi<-Xp|; zo})(-+m)nzLdbAJ$OH=NBJ(J0{_cauSVMczG<@xgs7-f z(T76!AM^_H+vDl)YCFvKS?@@&Y#xP+LaHxkbsiDn!QJP_=)bBEWu%^sf1 z-8Z-|-MEQbZ$I}fzI!%!Pn|Y?7S$Zom+n9D!qN;|ZYRa*^(N(re_+9i=o zx}*wemt3WQx>AGMIz6gtY9Nw|QN}OtDlTJpusE!jHn7Xs?VK`B`}vDe4;;T7HR+$+ zz1iT4{O-`Mu>46&HeX$NG>Q>jSFh`AX>CJuODjbStj#U3Ses$8G@;RA?Oxkrjb;n< z1|yUeTJS^?aLNVLN>R$?R~`)ypAMim*;oE7j*jG(*NuqF*03Yu1PF|L)SgqMhN{{G zwm^>}ZZ#?@>tSqofx7wz)aVTKz7b|?3tDImEv+`Rb=PFJHo;5_ePJ^HR-@AouB$h` z(&_Cc^?{gV{V84lm}h9u<3C4gfgX%>H7?(;L}a282N-x__#W<5J$APHFxO5{&SgY5M=|tB+ zlg0X)#`_jZje)4N^&@3ZYqP8Mjd)?QpjzJmu2_r05((8U1(VG~2~Ug?fgCv{I;1i6 zh|82A@h%r<5=6L^DnKDya0_VoNTyJ}PwuUlZAMxlNwmr7Z+Ve&Wo~moX zd!htitn9W=WGWO1s&Kd1fY=NrG9L+$U&IGjq@vvFc9mM=uGUr(x$?vGZ3S7ZRzhdU zhH-SRb1hBHFg$CdeK6A5(}5>e<3WK0nXD>Y%hDnxTTJI%fxLn;@I^AJuPIk)v?En& z?OV@hufx*RQ$urW+h??f7;95Yz45uZi!0S3HcbMbW5tNMrNpUt0sdeLQEJ-{u88VO zy@X~n@O#)X|Pb$ur9l}MiZ4JM`)}Ndt-!%Oj04}ObIUBENaim zE0h+p%Odz9$rrXgl*kml=Cn6(n^{XvCu_;cMD^@zIn|0QS(^6fWEl=$D1ld49`?~1 z0;4$a4$G@Odo^z=At33Qx%Q^-lXshCAa1@1#5?@qexD<0*b*2658u-`P2U5)$C=m> z#)fYM3m!q)#$BNgr%?2n(_X^NeMMw(tkJ=7>%$TAmwUx8TI~;a|MS>+C@*uq`AX?txis&!D@*wja#0H~o8gE++(J#YM${IY;;&6V|7QrY+dg?zChxmaGrK zj>DPo3eSVf>R`C6jlz!`W3g;&D#y*|&d?3JGv1rmp5U5GEaH4zKwM4=XU#t@tp9pj zI>vsp9CKaQVfI2d%yQX?dCLOfyebsaownku8LQ#y8GnF$zLt0d{&#(skQ-!f7?-%7 z7VdV6;A3`hF~&LtVB)unF!hI}nDYHXjGZ_GqsPz0XvaBlT)4~Rx;JB%v;Qr79QzZ=peoa(;>ULQ^**CrNy9)wSz!|RTW^leS&ih{V z*3Ah|hi^*JkbsmAf5-Qw|7N_*+(zoqL6Vgghj_8Y;hexkSh~O7r1h`+JMh2g0R2Y4 z`zRm|C?EsrpZbul9t@*)6vbTX3qdGF0Rbu=')) + { + error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED); + } + else + { + error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE); + } + 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'; diff --git a/license.txt b/license.txt new file mode 100644 index 0000000..82be622 --- /dev/null +++ b/license.txt @@ -0,0 +1,21 @@ +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. diff --git a/readme.rst b/readme.rst new file mode 100644 index 0000000..63a55c3 --- /dev/null +++ b/readme.rst @@ -0,0 +1,71 @@ +################### +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. + +******************* +Release Information +******************* + +This repo contains in-development code for future releases. To download the +latest stable release please visit the `CodeIgniter Downloads +`_ page. + +************************** +Changelog and New Features +************************** + +You can find a list of all changes for each release in the `user +guide change log `_. + +******************* +Server Requirements +******************* + +PHP version 5.6 or newer is recommended. + +It should work on 5.3.7 as well, but we strongly advise you NOT to run +such old versions of PHP, because of potential security and performance +issues, as well as missing features. + +************ +Installation +************ + +Please see the `installation section `_ +of the CodeIgniter User Guide. + +******* +License +******* + +Please see the `license +agreement `_. + +********* +Resources +********* + +- `User Guide `_ +- `Contributing Guide `_ +- `Language File Translations `_ +- `Community Forums `_ +- `Community Wiki `_ +- `Community Slack Channel `_ + +Report security issues to our `Security Panel `_ +or via our `page on HackerOne `_, thank you. + +*************** +Acknowledgement +*************** + +The CodeIgniter team would like to thank EllisLab, all the +contributors to the CodeIgniter project and you, the CodeIgniter user. diff --git a/src/.htaccess b/src/.htaccess new file mode 100644 index 0000000..ca5fcc8 --- /dev/null +++ b/src/.htaccess @@ -0,0 +1,6 @@ +# + # Require all denied + # +# + # Deny from all + # \ No newline at end of file diff --git a/src/css/tailwind.css b/src/css/tailwind.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/src/css/tailwind.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/src/css/tailwind.output.css b/src/css/tailwind.output.css new file mode 100644 index 0000000..b174bcd --- /dev/null +++ b/src/css/tailwind.output.css @@ -0,0 +1 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none;padding:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #d5d6d7}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#a0aec0}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#a0aec0}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:#a0aec0}input::placeholder,textarea::placeholder{color:#a0aec0}[role=button],button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}.form-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#e2e8f0;border-width:1px;border-radius:.25rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-input::-moz-placeholder{color:#9e9e9e;opacity:1}.form-input:-ms-input-placeholder{color:#9e9e9e;opacity:1}.form-input::-ms-input-placeholder{color:#9e9e9e;opacity:1}.form-input::placeholder{color:#9e9e9e;opacity:1}.form-input:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.form-textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#e2e8f0;border-width:1px;border-radius:.25rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-textarea::-moz-placeholder{color:#9e9e9e;opacity:1}.form-textarea:-ms-input-placeholder{color:#9e9e9e;opacity:1}.form-textarea::-ms-input-placeholder{color:#9e9e9e;opacity:1}.form-textarea::placeholder{color:#9e9e9e;opacity:1}.form-textarea:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.form-multiselect{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#e2e8f0;border-width:1px;border-radius:.25rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-multiselect:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.form-select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23a0aec0'%3E%3Cpath d='M15.3 9.3a1 1 0 011.4 1.4l-4 4a1 1 0 01-1.4 0l-4-4a1 1 0 011.4-1.4l3.3 3.29 3.3-3.3z'/%3E%3C/svg%3E");-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;background-repeat:no-repeat;background-color:#fff;border-color:#e2e8f0;border-width:1px;border-radius:.25rem;padding:.5rem 2.5rem .5rem .75rem;font-size:1rem;line-height:1.5;background-position:right .5rem center;background-size:1.5em 1.5em}.form-select::-ms-expand{color:#a0aec0;border:none}@media not print{.form-select::-ms-expand{display:none}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.form-select{padding-right:.75rem}}.form-select:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.form-checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;flex-shrink:0;height:1em;width:1em;color:#4299e1;background-color:#fff;border-color:#e2e8f0;border-width:1px;border-radius:.25rem}.form-checkbox:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.707 7.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4a1 1 0 00-1.414-1.414L7 8.586 5.707 7.293z'/%3E%3C/svg%3E");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media not print{.form-checkbox::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-checkbox:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.form-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;flex-shrink:0;border-radius:100%;height:1em;width:1em;color:#4299e1;background-color:#fff;border-color:#e2e8f0;border-width:1px}.form-radio:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media not print{.form-radio::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-radio:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.5rem*var(--space-y-reverse))}.space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.75rem*var(--space-x-reverse));margin-left:calc(0.75rem*(1 - var(--space-x-reverse)))}.space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1rem*var(--space-y-reverse))}.space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.5rem*var(--space-x-reverse));margin-left:calc(1.5rem*(1 - var(--space-x-reverse)))}.divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(1px*var(--divide-y-reverse))}.theme-dark .dark\:divide-gray-700>:not(template)~:not(template){--divide-opacity:1;border-color:#24262d;border-color:rgba(36,38,45,var(--divide-opacity))}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.bg-gray-50{--bg-opacity:1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.bg-red-100{--bg-opacity:1;background-color:#fde8e8;background-color:rgba(253,232,232,var(--bg-opacity))}.bg-red-600{--bg-opacity:1;background-color:#e02424;background-color:rgba(224,36,36,var(--bg-opacity))}.bg-orange-100{--bg-opacity:1;background-color:#feecdc;background-color:rgba(254,236,220,var(--bg-opacity))}.bg-green-100{--bg-opacity:1;background-color:#def7ec;background-color:rgba(222,247,236,var(--bg-opacity))}.bg-teal-100{--bg-opacity:1;background-color:#d5f5f6;background-color:rgba(213,245,246,var(--bg-opacity))}.bg-teal-500{--bg-opacity:1;background-color:#0694a2;background-color:rgba(6,148,162,var(--bg-opacity))}.bg-teal-600{--bg-opacity:1;background-color:#047481;background-color:rgba(4,116,129,var(--bg-opacity))}.bg-blue-100{--bg-opacity:1;background-color:#e1effe;background-color:rgba(225,239,254,var(--bg-opacity))}.bg-blue-500{--bg-opacity:1;background-color:#3f83f8;background-color:rgba(63,131,248,var(--bg-opacity))}.bg-blue-600{--bg-opacity:1;background-color:#1c64f2;background-color:rgba(28,100,242,var(--bg-opacity))}.bg-purple-600{--bg-opacity:1;background-color:#7e3af2;background-color:rgba(126,58,242,var(--bg-opacity))}.hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.hover\:bg-purple-700:hover{--bg-opacity:1;background-color:#6c2bd9;background-color:rgba(108,43,217,var(--bg-opacity))}.focus\:bg-white:focus{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.active\:bg-transparent:active{background-color:transparent}.active\:bg-purple-600:active{--bg-opacity:1;background-color:#7e3af2;background-color:rgba(126,58,242,var(--bg-opacity))}.theme-dark .dark\:bg-gray-700{--bg-opacity:1;background-color:#24262d;background-color:rgba(36,38,45,var(--bg-opacity))}.theme-dark .dark\:bg-gray-800{--bg-opacity:1;background-color:#1a1c23;background-color:rgba(26,28,35,var(--bg-opacity))}.theme-dark .dark\:bg-gray-900{--bg-opacity:1;background-color:#121317;background-color:rgba(18,19,23,var(--bg-opacity))}.theme-dark .dark\:bg-red-600{--bg-opacity:1;background-color:#e02424;background-color:rgba(224,36,36,var(--bg-opacity))}.theme-dark .dark\:bg-red-700{--bg-opacity:1;background-color:#c81e1e;background-color:rgba(200,30,30,var(--bg-opacity))}.theme-dark .dark\:bg-orange-500{--bg-opacity:1;background-color:#ff5a1f;background-color:rgba(255,90,31,var(--bg-opacity))}.theme-dark .dark\:bg-orange-600{--bg-opacity:1;background-color:#d03801;background-color:rgba(208,56,1,var(--bg-opacity))}.theme-dark .dark\:bg-green-500{--bg-opacity:1;background-color:#0e9f6e;background-color:rgba(14,159,110,var(--bg-opacity))}.theme-dark .dark\:bg-green-700{--bg-opacity:1;background-color:#046c4e;background-color:rgba(4,108,78,var(--bg-opacity))}.theme-dark .dark\:bg-teal-500{--bg-opacity:1;background-color:#0694a2;background-color:rgba(6,148,162,var(--bg-opacity))}.theme-dark .dark\:bg-blue-500{--bg-opacity:1;background-color:#3f83f8;background-color:rgba(63,131,248,var(--bg-opacity))}.theme-dark .dark\:hover\:bg-gray-800:hover{--bg-opacity:1;background-color:#1a1c23;background-color:rgba(26,28,35,var(--bg-opacity))}.bg-opacity-50{--bg-opacity:0.5}.border-transparent{border-color:transparent}.border-white{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.border-gray-100{--border-opacity:1;border-color:#f4f5f7;border-color:rgba(244,245,247,var(--border-opacity))}.border-gray-300{--border-opacity:1;border-color:#d5d6d7;border-color:rgba(213,214,215,var(--border-opacity))}.border-red-600{--border-opacity:1;border-color:#e02424;border-color:rgba(224,36,36,var(--border-opacity))}.border-green-600{--border-opacity:1;border-color:#057a55;border-color:rgba(5,122,85,var(--border-opacity))}.border-purple-600{--border-opacity:1;border-color:#7e3af2;border-color:rgba(126,58,242,var(--border-opacity))}.focus\:border-gray-500:focus{--border-opacity:1;border-color:#707275;border-color:rgba(112,114,117,var(--border-opacity))}.focus\:border-red-400:focus{--border-opacity:1;border-color:#f98080;border-color:rgba(249,128,128,var(--border-opacity))}.focus\:border-green-400:focus{--border-opacity:1;border-color:#31c48d;border-color:rgba(49,196,141,var(--border-opacity))}.focus\:border-purple-300:focus{--border-opacity:1;border-color:#cabffd;border-color:rgba(202,191,253,var(--border-opacity))}.focus\:border-purple-400:focus{--border-opacity:1;border-color:#ac94fa;border-color:rgba(172,148,250,var(--border-opacity))}.hover\:border-gray-500:hover{--border-opacity:1;border-color:#707275;border-color:rgba(112,114,117,var(--border-opacity))}.theme-dark .dark\:border-gray-600{--border-opacity:1;border-color:#4c4f52;border-color:rgba(76,79,82,var(--border-opacity))}.theme-dark .dark\:border-gray-700{--border-opacity:1;border-color:#24262d;border-color:rgba(36,38,45,var(--border-opacity))}.theme-dark .dark\:border-gray-800{--border-opacity:1;border-color:#1a1c23;border-color:rgba(26,28,35,var(--border-opacity))}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-full{border-radius:9999px}.rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.rounded-t-lg{border-top-left-radius:.5rem}.rounded-r-lg,.rounded-t-lg{border-top-right-radius:.5rem}.rounded-r-lg{border-bottom-right-radius:.5rem}.rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-tr-lg{border-top-right-radius:.5rem}.rounded-br-lg{border-bottom-right-radius:.5rem}.border-0{border-width:0}.border-2{border-width:2px}.border{border-width:1px}.border-r-0{border-right-width:0}.border-t{border-top-width:1px}.border-b{border-bottom-width:1px}.cursor-not-allowed{cursor:not-allowed}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.theme-dark .dark\:block{display:block}.theme-dark .dark\:hidden{display:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-12{height:3rem}.h-32{height:8rem}.h-full{height:100%}.h-screen{height:100vh}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-6xl{font-size:4rem}.leading-5{line-height:1.25rem}.leading-none{line-height:1}.leading-tight{line-height:1.25}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.my-8{margin-top:2rem;margin-bottom:2rem}.mx-auto{margin-left:auto;margin-right:auto}.-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.mt-1{margin-top:.25rem}.mr-1{margin-right:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.mb-2{margin-bottom:.5rem}.ml-2{margin-left:.5rem}.mr-3{margin-right:.75rem}.ml-3{margin-left:.75rem}.mt-4{margin-top:1rem}.mr-4{margin-right:1rem}.mb-4{margin-bottom:1rem}.ml-4{margin-left:1rem}.mr-5{margin-right:1.25rem}.mt-6{margin-top:1.5rem}.mr-6{margin-right:1.5rem}.mb-6{margin-bottom:1.5rem}.ml-6{margin-left:1.5rem}.mt-8{margin-top:2rem}.mb-8{margin-bottom:2rem}.mt-16{margin-top:4rem}.-mr-1{margin-right:-.25rem}.-ml-1{margin-left:-.25rem}.-mb-4{margin-bottom:-1rem}.max-h-0{max-height:0}.max-h-xl{max-height:36rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.min-h-screen{min-height:100vh}.min-w-0{min-width:0}.object-cover{-o-object-fit:cover;object-fit:cover}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-100{opacity:1}.focus\:outline-none:focus{outline:0}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.pr-2{padding-right:.5rem}.pl-2{padding-left:.5rem}.pl-8{padding-left:2rem}.pr-10{padding-right:2.5rem}.pl-10{padding-left:2.5rem}.pb-16{padding-bottom:4rem}.pr-20{padding-right:5rem}.pl-20{padding-left:5rem}.placeholder-gray-600::-moz-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.placeholder-gray-600:-ms-input-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.placeholder-gray-600::-ms-input-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.placeholder-gray-600::placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.focus\:placeholder-gray-500:focus::-moz-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.focus\:placeholder-gray-500:focus:-ms-input-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.focus\:placeholder-gray-500:focus::-ms-input-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.focus\:placeholder-gray-500:focus::placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.theme-dark .dark\:placeholder-gray-500::-moz-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.theme-dark .dark\:placeholder-gray-500:-ms-input-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.theme-dark .dark\:placeholder-gray-500::-ms-input-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.theme-dark .dark\:placeholder-gray-500::placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.theme-dark .dark\:focus\:placeholder-gray-600:focus::-moz-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.theme-dark .dark\:focus\:placeholder-gray-600:focus:-ms-input-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.theme-dark .dark\:focus\:placeholder-gray-600:focus::-ms-input-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.theme-dark .dark\:focus\:placeholder-gray-600:focus::placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{right:0;left:0}.inset-0,.inset-y-0{top:0;bottom:0}.top-0{top:0}.right-0{right:0}.left-0{left:0}.shadow-xs{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.shadow-inner{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.fill-current{fill:currentColor}.text-left{text-align:left}.text-center{text-align:center}.text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#9e9e9e;color:rgba(158,158,158,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#707275;color:rgba(112,114,117,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#24262d;color:rgba(36,38,45,var(--text-opacity))}.text-gray-800{--text-opacity:1;color:#1a1c23;color:rgba(26,28,35,var(--text-opacity))}.text-red-600{--text-opacity:1;color:#e02424;color:rgba(224,36,36,var(--text-opacity))}.text-red-700{--text-opacity:1;color:#c81e1e;color:rgba(200,30,30,var(--text-opacity))}.text-orange-500{--text-opacity:1;color:#ff5a1f;color:rgba(255,90,31,var(--text-opacity))}.text-orange-700{--text-opacity:1;color:#b43403;color:rgba(180,52,3,var(--text-opacity))}.text-green-500{--text-opacity:1;color:#0e9f6e;color:rgba(14,159,110,var(--text-opacity))}.text-green-600{--text-opacity:1;color:#057a55;color:rgba(5,122,85,var(--text-opacity))}.text-green-700{--text-opacity:1;color:#046c4e;color:rgba(4,108,78,var(--text-opacity))}.text-teal-500{--text-opacity:1;color:#0694a2;color:rgba(6,148,162,var(--text-opacity))}.text-blue-500{--text-opacity:1;color:#3f83f8;color:rgba(63,131,248,var(--text-opacity))}.text-purple-100{--text-opacity:1;color:#edebfe;color:rgba(237,235,254,var(--text-opacity))}.text-purple-200{--text-opacity:1;color:#dcd7fe;color:rgba(220,215,254,var(--text-opacity))}.text-purple-600{--text-opacity:1;color:#7e3af2;color:rgba(126,58,242,var(--text-opacity))}.focus-within\:text-purple-500:focus-within{--text-opacity:1;color:#9061f9;color:rgba(144,97,249,var(--text-opacity))}.focus-within\:text-purple-600:focus-within{--text-opacity:1;color:#7e3af2;color:rgba(126,58,242,var(--text-opacity))}.hover\:text-gray-700:hover{--text-opacity:1;color:#24262d;color:rgba(36,38,45,var(--text-opacity))}.hover\:text-gray-800:hover{--text-opacity:1;color:#1a1c23;color:rgba(26,28,35,var(--text-opacity))}.active\:text-gray-500:active{--text-opacity:1;color:#707275;color:rgba(112,114,117,var(--text-opacity))}.theme-dark .dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.theme-dark .dark\:text-gray-100{--text-opacity:1;color:#f4f5f7;color:rgba(244,245,247,var(--text-opacity))}.theme-dark .dark\:text-gray-200{--text-opacity:1;color:#e5e7eb;color:rgba(229,231,235,var(--text-opacity))}.theme-dark .dark\:text-gray-300{--text-opacity:1;color:#d5d6d7;color:rgba(213,214,215,var(--text-opacity))}.theme-dark .dark\:text-gray-400{--text-opacity:1;color:#9e9e9e;color:rgba(158,158,158,var(--text-opacity))}.theme-dark .dark\:text-red-100{--text-opacity:1;color:#fde8e8;color:rgba(253,232,232,var(--text-opacity))}.theme-dark .dark\:text-red-400{--text-opacity:1;color:#f98080;color:rgba(249,128,128,var(--text-opacity))}.theme-dark .dark\:text-orange-100{--text-opacity:1;color:#feecdc;color:rgba(254,236,220,var(--text-opacity))}.theme-dark .dark\:text-green-100{--text-opacity:1;color:#def7ec;color:rgba(222,247,236,var(--text-opacity))}.theme-dark .dark\:text-green-400{--text-opacity:1;color:#31c48d;color:rgba(49,196,141,var(--text-opacity))}.theme-dark .dark\:text-teal-100{--text-opacity:1;color:#d5f5f6;color:rgba(213,245,246,var(--text-opacity))}.theme-dark .dark\:text-blue-100{--text-opacity:1;color:#e1effe;color:rgba(225,239,254,var(--text-opacity))}.theme-dark .dark\:text-purple-300{--text-opacity:1;color:#cabffd;color:rgba(202,191,253,var(--text-opacity))}.theme-dark .dark\:text-purple-400{--text-opacity:1;color:#ac94fa;color:rgba(172,148,250,var(--text-opacity))}.theme-dark .dark\:focus-within\:text-purple-400:focus-within{--text-opacity:1;color:#ac94fa;color:rgba(172,148,250,var(--text-opacity))}.theme-dark .dark\:hover\:text-gray-200:hover{--text-opacity:1;color:#e5e7eb;color:rgba(229,231,235,var(--text-opacity))}.uppercase{text-transform:uppercase}.hover\:underline:hover,.underline{text-decoration:underline}.tracking-wide{letter-spacing:.025em}.align-middle{vertical-align:middle}.whitespace-no-wrap{white-space:nowrap}.w-1{width:.25rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-12{width:3rem}.w-56{width:14rem}.w-64{width:16rem}.w-full{width:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.gap-6{grid-gap:1.5rem;gap:1.5rem}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.translate-x-1{--transform-translate-x:0.25rem}.-translate-x-20{--transform-translate-x:-5rem}.-translate-y-1{--transform-translate-y:-0.25rem}.translate-y-1\/2{--transform-translate-y:50%}.transition-all{transition-property:all}.transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}.transition-colors{transition-property:background-color,border-color,color,fill,stroke}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{transition-duration:.15s}.duration-300{transition-duration:.3s}.focus\:shadow-outline-gray:focus{box-shadow:0 0 0 3px rgba(213,214,215,.45)}.focus\:shadow-outline-red:focus{box-shadow:0 0 0 3px rgba(248,180,180,.45)}.focus\:shadow-outline-green:focus{box-shadow:0 0 0 3px rgba(132,225,188,.45)}.focus\:shadow-outline-purple:focus{box-shadow:0 0 0 3px rgba(202,191,253,.45)}.theme-dark .dark\:focus\:shadow-outline-gray:focus{box-shadow:0 0 0 3px rgba(213,214,215,.45)}@media (min-width:640px){.sm\:space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0px*(1 - var(--space-y-reverse)));margin-bottom:calc(0px*var(--space-y-reverse))}.sm\:space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.5rem*var(--space-x-reverse));margin-left:calc(1.5rem*(1 - var(--space-x-reverse)))}.sm\:rounded-lg{border-radius:.5rem}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-center{justify-content:center}.sm\:m-4{margin:1rem}.sm\:mt-auto{margin-top:auto}.sm\:max-w-xl{max-width:36rem}.sm\:p-12{padding:3rem}.sm\:py-2{padding-top:.5rem;padding-bottom:.5rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:w-auto{width:auto}.sm\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width:768px){.md\:space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.md\:block{display:block}.md\:hidden{display:none}.md\:flex-row{flex-direction:row}.md\:items-end{align-items:flex-end}.md\:h-auto{height:auto}.md\:w-1\/2{width:50%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:mr-32{margin-right:8rem}}@media (min-width:1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}} \ No newline at end of file diff --git a/src/img/create-account-office-dark.jpeg b/src/img/create-account-office-dark.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..1754f9aa299b78e8d448d04695d382a9db1e42ec GIT binary patch literal 68019 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 RjK#A507%(om;MUh|Jl*4p{W1> literal 0 HcmV?d00001 diff --git a/src/img/create-account-office.jpeg b/src/img/create-account-office.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..963aeeb87e6cfa0a8dac9526653404ed98538e35 GIT binary patch literal 74885 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

XHOxX2mQ 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 ME6a0APrs)AFFH}pzyJUM literal 0 HcmV?d00001 diff --git a/src/img/dashboard.png b/src/img/dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..ad90622a97ed3bd17895d95a13f560bf49a3495d GIT binary patch literal 62560 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 Q*9<`5>FVdQ&MBb@04hQAKmY&$ literal 0 HcmV?d00001 diff --git a/src/img/forgot-password-office-dark.jpeg b/src/img/forgot-password-office-dark.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..cdd69e3193e142e58ecf6c781bcca588b02fcee0 GIT binary patch literal 58822 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 literal 0 HcmV?d00001 diff --git a/src/img/forgot-password-office.jpeg b/src/img/forgot-password-office.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..4dcaf51958e491e34f6d0d85f62ffe24c0a88b01 GIT binary patch literal 91979 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 HclLh(wt;3s literal 0 HcmV?d00001 diff --git a/src/img/github.svg b/src/img/github.svg new file mode 100644 index 0000000..824ef14 --- /dev/null +++ b/src/img/github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/img/login-office-dark.jpeg b/src/img/login-office-dark.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..9dda0540ac36f4e36e3f3bee66aea63ea4ef258d GIT binary patch literal 14198 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 literal 0 HcmV?d00001 diff --git a/src/img/twitter.svg b/src/img/twitter.svg new file mode 100644 index 0000000..c9509ba --- /dev/null +++ b/src/img/twitter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/js/charts-bars.js b/src/js/charts-bars.js new file mode 100644 index 0000000..e555db3 --- /dev/null +++ b/src/js/charts-bars.js @@ -0,0 +1,34 @@ +/** + * For usage, visit Chart.js docs https://www.chartjs.org/docs/latest/ + */ +const barConfig = { + type: 'bar', + data: { + labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'], + datasets: [ + { + label: 'Shoes', + backgroundColor: '#0694a2', + // borderColor: window.chartColors.red, + borderWidth: 1, + data: [-3, 14, 52, 74, 33, 90, 70], + }, + { + label: 'Bags', + backgroundColor: '#7e3af2', + // borderColor: window.chartColors.blue, + borderWidth: 1, + data: [66, 33, 43, 12, 54, 62, 84], + }, + ], + }, + options: { + responsive: true, + legend: { + display: false, + }, + }, +} + +const barsCtx = document.getElementById('bars') +window.myBar = new Chart(barsCtx, barConfig) diff --git a/src/js/charts-lines.js b/src/js/charts-lines.js new file mode 100644 index 0000000..b926c70 --- /dev/null +++ b/src/js/charts-lines.js @@ -0,0 +1,71 @@ +/** + * For usage, visit Chart.js docs https://www.chartjs.org/docs/latest/ + */ +const lineConfig = { + type: 'line', + data: { + labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'], + datasets: [ + { + label: 'Organic', + /** + * These colors come from Tailwind CSS palette + * https://tailwindcss.com/docs/customizing-colors/#default-color-palette + */ + backgroundColor: '#0694a2', + borderColor: '#0694a2', + data: [43, 48, 40, 54, 67, 73, 70], + fill: false, + }, + { + label: 'Paid', + fill: false, + /** + * These colors come from Tailwind CSS palette + * https://tailwindcss.com/docs/customizing-colors/#default-color-palette + */ + backgroundColor: '#7e3af2', + borderColor: '#7e3af2', + data: [24, 50, 64, 74, 52, 51, 65], + }, + ], + }, + options: { + responsive: true, + /** + * Default legends are ugly and impossible to style. + * See examples in charts.html to add your own legends + * */ + legend: { + display: false, + }, + tooltips: { + mode: 'index', + intersect: false, + }, + hover: { + mode: 'nearest', + intersect: true, + }, + scales: { + x: { + display: true, + scaleLabel: { + display: true, + labelString: 'Month', + }, + }, + y: { + display: true, + scaleLabel: { + display: true, + labelString: 'Value', + }, + }, + }, + }, +} + +// change this to the id of your chart element in HMTL +const lineCtx = document.getElementById('line') +window.myLine = new Chart(lineCtx, lineConfig) diff --git a/src/js/charts-pie.js b/src/js/charts-pie.js new file mode 100644 index 0000000..d475845 --- /dev/null +++ b/src/js/charts-pie.js @@ -0,0 +1,35 @@ +/** + * For usage, visit Chart.js docs https://www.chartjs.org/docs/latest/ + */ +const pieConfig = { + type: 'doughnut', + data: { + datasets: [ + { + data: [33, 33, 33], + /** + * These colors come from Tailwind CSS palette + * https://tailwindcss.com/docs/customizing-colors/#default-color-palette + */ + backgroundColor: ['#0694a2', '#1c64f2', '#7e3af2'], + label: 'Dataset 1', + }, + ], + labels: ['Shoes', 'Shirts', 'Bags'], + }, + options: { + responsive: true, + cutoutPercentage: 80, + /** + * Default legends are ugly and impossible to style. + * See examples in charts.html to add your own legends + * */ + legend: { + display: false, + }, + }, +} + +// change this to the id of your chart element in HMTL +const pieCtx = document.getElementById('pie') +window.myPie = new Chart(pieCtx, pieConfig) diff --git a/src/js/deleteWalert.js b/src/js/deleteWalert.js new file mode 100644 index 0000000..39374ca --- /dev/null +++ b/src/js/deleteWalert.js @@ -0,0 +1,35 @@ +function hapusData(dataID) { + const swalWithBootstrapButtons = Swal.mixin({ + customClass: { + confirmButton: 'mx-6 px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple', + cancelButton: 'mx-6 px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-red-600 border border-transparent rounded-lg active:bg-red-800 hover:bg-red-700 focus:outline-none focus:shadow-outline-purple' + }, + buttonsStyling: false + }); + + swalWithBootstrapButtons.fire({ + title: 'Apakah kamu yakin?', + text: "Catatan keuangan tidak akan bisa dikembalikan lagi!", + icon: 'warning', + showCancelButton: true, + cancelButtonText: 'Aduh, gajadi!', + confirmButtonText: 'Ya, hapus saja!', + reverseButtons: true + }).then((result) => { + if (result.isConfirmed) { + swalWithBootstrapButtons.fire( + 'Terhapus!', + 'User berhasil dihapus.. :(', + 'success' + ); + // Ganti link dengan URL yang sesuai untuk menghapus user + window.location.href = baseUrl + 'transaksi/deleteData?id=' + dataID; + } else if (result.dismiss === Swal.DismissReason.cancel) { + swalWithBootstrapButtons.fire( + 'Dibatalkan', + 'User masih aman, selaww.. :)', + 'error' + ); + } + }); +} \ No newline at end of file diff --git a/src/js/focus-trap.js b/src/js/focus-trap.js new file mode 100644 index 0000000..3de94e9 --- /dev/null +++ b/src/js/focus-trap.js @@ -0,0 +1,51 @@ +/** + * Limit focus to focusable elements inside `element` + * @param {HTMLElement} element - DOM element to focus trap inside + * @return {Function} cleanup function + */ +function focusTrap(element) { + const focusableElements = getFocusableElements(element) + const firstFocusableEl = focusableElements[0] + const lastFocusableEl = focusableElements[focusableElements.length - 1] + + // Wait for the case the element was not yet rendered + setTimeout(() => firstFocusableEl.focus(), 50) + + /** + * Get all focusable elements inside `element` + * @param {HTMLElement} element - DOM element to focus trap inside + * @return {HTMLElement[]} List of focusable elements + */ + function getFocusableElements(element = document) { + return [ + ...element.querySelectorAll( + 'a, button, details, input, select, textarea, [tabindex]:not([tabindex="-1"])' + ), + ].filter((e) => !e.hasAttribute('disabled')) + } + + function handleKeyDown(e) { + const TAB = 9 + const isTab = e.key.toLowerCase() === 'tab' || e.keyCode === TAB + + if (!isTab) return + + if (e.shiftKey) { + if (document.activeElement === firstFocusableEl) { + lastFocusableEl.focus() + e.preventDefault() + } + } else { + if (document.activeElement === lastFocusableEl) { + firstFocusableEl.focus() + e.preventDefault() + } + } + } + + element.addEventListener('keydown', handleKeyDown) + + return function cleanup() { + element.removeEventListener('keydown', handleKeyDown) + } +} diff --git a/src/js/init-alpine.js b/src/js/init-alpine.js new file mode 100644 index 0000000..46a3cd4 --- /dev/null +++ b/src/js/init-alpine.js @@ -0,0 +1,62 @@ +function data() { + function getThemeFromLocalStorage() { + // if user already changed the theme, use it + if (window.localStorage.getItem('dark')) { + return JSON.parse(window.localStorage.getItem('dark')) + } + + // else return their preferences + return ( + !!window.matchMedia && + window.matchMedia('(prefers-color-scheme: dark)').matches + ) + } + + function setThemeToLocalStorage(value) { + window.localStorage.setItem('dark', value) + } + + return { + dark: getThemeFromLocalStorage(), + toggleTheme() { + this.dark = !this.dark + setThemeToLocalStorage(this.dark) + }, + isSideMenuOpen: false, + toggleSideMenu() { + this.isSideMenuOpen = !this.isSideMenuOpen + }, + closeSideMenu() { + this.isSideMenuOpen = false + }, + isNotificationsMenuOpen: false, + toggleNotificationsMenu() { + this.isNotificationsMenuOpen = !this.isNotificationsMenuOpen + }, + closeNotificationsMenu() { + this.isNotificationsMenuOpen = false + }, + isProfileMenuOpen: false, + toggleProfileMenu() { + this.isProfileMenuOpen = !this.isProfileMenuOpen + }, + closeProfileMenu() { + this.isProfileMenuOpen = false + }, + isPagesMenuOpen: false, + togglePagesMenu() { + this.isPagesMenuOpen = !this.isPagesMenuOpen + }, + // Modal + isModalOpen: false, + trapCleanup: null, + openModal() { + this.isModalOpen = true + this.trapCleanup = focusTrap(document.querySelector('#modal')) + }, + closeModal() { + this.isModalOpen = false + this.trapCleanup() + }, + } +} diff --git a/src/js/rupiah.js b/src/js/rupiah.js new file mode 100644 index 0000000..944229a --- /dev/null +++ b/src/js/rupiah.js @@ -0,0 +1,33 @@ +// Fungsi untuk memformat nilai numerik menjadi format mata uang +function formatCurrency(input) { + // Hapus semua karakter selain angka + const numericValue = input.value.replace(/\D/g, ''); + + // Format nilai sebagai mata uang + const formattedValue = new Intl.NumberFormat('id-ID', { + style: 'currency', + currency: 'IDR', + minimumFractionDigits: 0, // Hapus desimal jika ada + }).format(numericValue); + + // Set nilai input dengan format mata uang + input.value = formattedValue; +} + +// Fungsi untuk menghapus format mata uang saat mengirimkan formulir +function removeCurrencyFormatting(input) { + input.value = input.value.replace(/\D/g, ''); +} + +// Mendapatkan elemen input berdasarkan ID +const amountInput = document.getElementById('amountInput'); + +// Tambahkan event listener untuk memformat nilai saat mengetik +amountInput.addEventListener('input', function () { + formatCurrency(this); +}); + +// Tambahkan event listener untuk menghapus format mata uang saat mengirimkan formulir +amountInput.form.addEventListener('submit', function () { + removeCurrencyFormatting(amountInput); +}); \ No newline at end of file diff --git a/src/user/image/avatar.png b/src/user/image/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..cd2e6085e799fa4b38bb53fe2ff7bcb7ab70bb3c GIT binary patch literal 1759182 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

  • c_8*v{3)l$G4 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�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 aHW`L#ykQe7Ka) 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�g%CJGB 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�!SG(<+Q{OcTTNXHSnq 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
    hLrC>DQh;-*kq&}dBh--p75B{Zkz=uhb5 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 z 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�m`q1%PNvJc{{H>2#t1=4 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

    FjDSULlyNtdH8x;Qb|bbUQBp`~=IJo)oi80y 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
    %U7R& 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

    5i$0`{>e7g!p83aRrD18>~mmp3u7p^VE- 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
    SA}Z}{V$){6jEt7= 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%0DH5 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%0DeH!rcjmLy)XB+Y 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%0DV~6S^x@p{?OY#H`m#ZN#^yqv-0ykxbZCl50gQi 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

    )!qQ(XB_7N125yunjtTr#ksAEq$8REqmK8IV4ah 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 + Require all denied + + + Deny from all + \ No newline at end of file diff --git a/system/core/Benchmark.php b/system/core/Benchmark.php new file mode 100644 index 0000000..20ac2f5 --- /dev/null +++ b/system/core/Benchmark.php @@ -0,0 +1,134 @@ +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}'; + } + +} diff --git a/system/core/CodeIgniter.php b/system/core/CodeIgniter.php new file mode 100644 index 0000000..56826dc --- /dev/null +++ b/system/core/CodeIgniter.php @@ -0,0 +1,560 @@ + '_ENV', 'G' => '_GET', 'P' => '_POST', 'C' => '_COOKIE', 'S' => '_SERVER') as $key => $superglobal) + { + if (strpos($_registered, $key) === FALSE) + { + continue; + } + + foreach (array_keys($$superglobal) as $var) + { + if (isset($GLOBALS[$var]) && ! in_array($var, $_protected, TRUE)) + { + $GLOBALS[$var] = NULL; + } + } + } + } +} + + +/* + * ------------------------------------------------------ + * 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 hooks class + * ------------------------------------------------------ + */ + $EXT =& load_class('Hooks', 'core'); + +/* + * ------------------------------------------------------ + * Is there a "pre_system" hook? + * ------------------------------------------------------ + */ + $EXT->call_hook('pre_system'); + +/* + * ------------------------------------------------------ + * 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); + } + } + +/* + * ------------------------------------------------------ + * 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'); + +/* + * ------------------------------------------------------ + * Instantiate the URI class + * ------------------------------------------------------ + */ + $URI =& load_class('URI', 'core'); + +/* + * ------------------------------------------------------ + * 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'); + +/* + * ------------------------------------------------------ + * Load the Input class and sanitize globals + * ------------------------------------------------------ + */ + $IN =& load_class('Input', 'core'); + +/* + * ------------------------------------------------------ + * 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'); diff --git a/system/core/Common.php b/system/core/Common.php new file mode 100644 index 0000000..a56cb14 --- /dev/null +++ b/system/core/Common.php @@ -0,0 +1,849 @@ +='); + } + + 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. is_writable() is also unreliable + * on Unix servers if safe_mode is on. + * + * @link https://bugs.php.net/bug.php?id=54709 + * @param string + * @return bool + */ + function is_really_writable($file) + { + // If we're on a Unix server with safe_mode off we call is_writable + if (DIRECTORY_SEPARATOR === '/' && (is_php('5.4') OR ! ini_get('safe_mode'))) + { + 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', + + 200 => 'OK', + 201 => 'Created', + 202 => 'Accepted', + 203 => 'Non-Authoritative Information', + 204 => 'No Content', + 205 => 'Reset Content', + 206 => 'Partial Content', + + 300 => 'Multiple Choices', + 301 => 'Moved Permanently', + 302 => 'Found', + 303 => 'See Other', + 304 => 'Not Modified', + 305 => 'Use Proxy', + 307 => 'Temporary 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', + 422 => 'Unprocessable Entity', + 426 => 'Upgrade Required', + 428 => 'Precondition Required', + 429 => 'Too Many Requests', + 431 => 'Request Header Fields Too Large', + + 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 http://www.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; + } +} diff --git a/system/core/Config.php b/system/core/Config.php new file mode 100644 index 0000000..2454a9d --- /dev/null +++ b/system/core/Config.php @@ -0,0 +1,380 @@ +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('debug', '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; + } + + // -------------------------------------------------------------------- + + /** + * System URL + * + * @deprecated 3.0.0 Encourages insecure practices + * @return string + */ + public function system_url() + { + $x = explode('/', preg_replace('|/*(.+?)/*$|', '\\1', BASEPATH)); + return $this->slash_item('base_url').end($x).'/'; + } + + // -------------------------------------------------------------------- + + /** + * 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; + } + +} diff --git a/system/core/Controller.php b/system/core/Controller.php new file mode 100644 index 0000000..aeccd60 --- /dev/null +++ b/system/core/Controller.php @@ -0,0 +1,104 @@ + $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; + } + +} diff --git a/system/core/Exceptions.php b/system/core/Exceptions.php new file mode 100644 index 0000000..b1bc2de --- /dev/null +++ b/system/core/Exceptions.php @@ -0,0 +1,275 @@ + '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; + } + + 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 = '

    '.(is_array($message) ? implode('

    ', $message) : $message).'

    '; + $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; + } + + $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; + } + + $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; + } + +} diff --git a/system/core/Hooks.php b/system/core/Hooks.php new file mode 100644 index 0000000..2246bbc --- /dev/null +++ b/system/core/Hooks.php @@ -0,0 +1,267 @@ +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; + } + +} diff --git a/system/core/Input.php b/system/core/Input.php new file mode 100644 index 0000000..eba5f67 --- /dev/null +++ b/system/core/Input.php @@ -0,0 +1,937 @@ +_allow_get_array = (config_item('allow_get_array') !== FALSE); + $this->_enable_xss = (config_item('global_xss_filtering') === TRUE); + $this->_enable_csrf = (config_item('csrf_protection') === TRUE); + $this->_standardize_newlines = (bool) config_item('standardize_newlines'); + + $this->security =& load_class('Security', 'core'); + + // Do we need the UTF-8 class? + if (UTF8_ENABLED === TRUE) + { + $this->uni =& load_class('Utf8', 'core'); + } + + // Sanitize global arrays + $this->_sanitize_globals(); + + // CSRF Protection check + if ($this->_enable_csrf === TRUE && ! is_cli()) + { + $this->security->csrf_verify(); + } + + 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 = NULL) + { + is_bool($xss_clean) OR $xss_clean = $this->_enable_xss; + + // 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 = NULL) + { + 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 = NULL) + { + 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 = NULL) + { + return isset($_POST[$index]) + ? $this->post($index, $xss_clean) + : $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 = NULL) + { + return isset($_GET[$index]) + ? $this->get($index, $xss_clean) + : $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 = NULL) + { + 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 = NULL) + { + 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 = NULL) + { + // 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 = '', $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', 'name', 'samesite') 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)) + { + $expire = time() - 86500; + } + 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); + } + + // Split the netmask length off the network address + sscanf($proxy_ips[$i], '%[^/]/%d', $netaddr, $masklen); + + // Again, an IPv6 address is most likely in a compressed form + if ($separator === ':') + { + $netaddr = explode(':', str_replace('::', str_repeat(':', 9 - substr_count($netaddr, ':')), $netaddr)); + for ($j = 0; $j < 8; $j++) + { + $netaddr[$j] = intval($netaddr[$j], 16); + } + } + else + { + $netaddr = explode('.', $netaddr); + } + + // Convert to binary and finally compare + if (strncmp($ip, vsprintf($sprintf, $netaddr), $masklen) === 0) + { + $this->ip_address = $spoof; + break; + } + } + } + } + + if ( ! $this->valid_ip($this->ip_address)) + { + return $this->ip_address = '0.0.0.0'; + } + + return $this->ip_address; + } + + // -------------------------------------------------------------------- + + /** + * Validate IP Address + * + * @param string $ip IP address + * @param string $which IP protocol: 'ipv4' or 'ipv6' + * @return bool + */ + public function valid_ip($ip, $which = '') + { + switch (strtolower($which)) + { + case 'ipv4': + $which = FILTER_FLAG_IPV4; + break; + case 'ipv6': + $which = FILTER_FLAG_IPV6; + break; + default: + $which = 0; + break; + } + + return (bool) filter_var($ip, FILTER_VALIDATE_IP, $which); + } + + // -------------------------------------------------------------------- + + /** + * Fetch User Agent string + * + * @return string|null User Agent string or NULL if it doesn't exist + */ + public function user_agent($xss_clean = NULL) + { + return $this->_fetch_from_array($_SERVER, 'HTTP_USER_AGENT', $xss_clean); + } + + // -------------------------------------------------------------------- + + /** + * Sanitize Globals + * + * Internal method serving for the following purposes: + * + * - Unsets $_GET data, if query strings are not enabled + * - Cleans POST, COOKIE and SERVER data + * - Standardizes newline characters to PHP_EOL + * + * @return void + */ + protected function _sanitize_globals() + { + // Is $_GET data allowed? If not we'll set the $_GET to an empty array + if ($this->_allow_get_array === FALSE) + { + $_GET = array(); + } + elseif (is_array($_GET)) + { + foreach ($_GET as $key => $val) + { + $_GET[$this->_clean_input_keys($key)] = $this->_clean_input_data($val); + } + } + + // Clean $_POST Data + if (is_array($_POST)) + { + foreach ($_POST as $key => $val) + { + $_POST[$this->_clean_input_keys($key)] = $this->_clean_input_data($val); + } + } + + // Clean $_COOKIE Data + if (is_array($_COOKIE)) + { + // Also get rid of specially treated cookies that might be set by a server + // or silly application, that are of no use to a CI application anyway + // but that when present will trip our 'Disallowed Key Characters' alarm + // http://www.ietf.org/rfc/rfc2109.txt + // note that the key names below are single quoted strings, and are not PHP variables + unset( + $_COOKIE['$Version'], + $_COOKIE['$Path'], + $_COOKIE['$Domain'] + ); + + foreach ($_COOKIE as $key => $val) + { + if (($cookie_key = $this->_clean_input_keys($key)) !== FALSE) + { + $_COOKIE[$cookie_key] = $this->_clean_input_data($val); + } + else + { + unset($_COOKIE[$key]); + } + } + } + + // Sanitize PHP_SELF + $_SERVER['PHP_SELF'] = strip_tags($_SERVER['PHP_SELF']); + + log_message('debug', 'Global POST, GET and COOKIE data sanitized'); + } + + // -------------------------------------------------------------------- + + /** + * Clean Input Data + * + * Internal method that aids in escaping data and + * standardizing newline characters to PHP_EOL. + * + * @param string|string[] $str Input string(s) + * @return string + */ + protected function _clean_input_data($str) + { + if (is_array($str)) + { + $new_array = array(); + foreach (array_keys($str) as $key) + { + $new_array[$this->_clean_input_keys($key)] = $this->_clean_input_data($str[$key]); + } + return $new_array; + } + + /* We strip slashes if magic quotes is on to keep things consistent + + NOTE: In PHP 5.4 get_magic_quotes_gpc() will always return 0 and + it will probably not exist in future versions at all. + */ + if ( ! is_php('5.4') && get_magic_quotes_gpc()) + { + $str = stripslashes($str); + } + + // Clean UTF-8 if supported + if (UTF8_ENABLED === TRUE) + { + $str = $this->uni->clean_string($str); + } + + // Remove control characters + $str = remove_invisible_characters($str, FALSE); + + // Standardize newlines if needed + if ($this->_standardize_newlines === TRUE) + { + return preg_replace('/(?:\r\n|[\r\n])/', PHP_EOL, $str); + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Clean Keys + * + * Internal method that helps to prevent malicious users + * from trying to exploit keys we make sure that keys are + * only named with alpha-numeric text and a few other items. + * + * @param string $str Input string + * @param bool $fatal Whether to terminate script exection + * or to return FALSE if an invalid + * key is encountered + * @return string|bool + */ + protected function _clean_input_keys($str, $fatal = TRUE) + { + if ( ! preg_match('/^[a-z0-9:_\/|-]+$/i', $str)) + { + if ($fatal === TRUE) + { + return FALSE; + } + else + { + set_status_header(503); + echo 'Disallowed Key Characters.'; + exit(7); // EXIT_USER_INPUT + } + } + + // Clean UTF-8 if supported + if (UTF8_ENABLED === TRUE) + { + return $this->uni->clean_string($str); + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Request Headers + * + * @param bool $xss_clean Whether to apply XSS filtering + * @return array + */ + public function request_headers($xss_clean = FALSE) + { + // If header is already defined, return it immediately + if ( ! empty($this->headers)) + { + return $this->_fetch_from_array($this->headers, NULL, $xss_clean); + } + + // In Apache, you can simply call apache_request_headers() + if (function_exists('apache_request_headers')) + { + $this->headers = apache_request_headers(); + } + else + { + isset($_SERVER['CONTENT_TYPE']) && $this->headers['Content-Type'] = $_SERVER['CONTENT_TYPE']; + + foreach ($_SERVER as $key => $val) + { + if (sscanf($key, 'HTTP_%s', $header) === 1) + { + // take SOME_HEADER and turn it into Some-Header + $header = str_replace('_', ' ', strtolower($header)); + $header = str_replace(' ', '-', ucwords($header)); + + $this->headers[$header] = $_SERVER[$key]; + } + } + } + + return $this->_fetch_from_array($this->headers, NULL, $xss_clean); + } + + // -------------------------------------------------------------------- + + /** + * Get Request Header + * + * Returns the value of a single member of the headers class member + * + * @param string $index Header name + * @param bool $xss_clean Whether to apply XSS filtering + * @return string|null The requested header on success or NULL on failure + */ + public function get_request_header($index, $xss_clean = FALSE) + { + static $headers; + + if ( ! isset($headers)) + { + empty($this->headers) && $this->request_headers(); + foreach ($this->headers as $key => $value) + { + $headers[strtolower($key)] = $value; + } + } + + $index = strtolower($index); + + if ( ! isset($headers[$index])) + { + return NULL; + } + + return ($xss_clean === TRUE) + ? $this->security->xss_clean($headers[$index]) + : $headers[$index]; + } + + // -------------------------------------------------------------------- + + /** + * Is AJAX request? + * + * Test to see if a request contains the HTTP_X_REQUESTED_WITH header. + * + * @return bool + */ + public function is_ajax_request() + { + return ( ! empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest'); + } + + // -------------------------------------------------------------------- + + /** + * Is CLI request? + * + * Test to see if a request was made from the command line. + * + * @deprecated 3.0.0 Use is_cli() instead + * @return bool + */ + public function is_cli_request() + { + return is_cli(); + } + + // -------------------------------------------------------------------- + + /** + * Get Request Method + * + * Return the request method + * + * @param bool $upper Whether to return in upper or lower case + * (default: FALSE) + * @return string + */ + public function method($upper = FALSE) + { + return ($upper) + ? strtoupper($this->server('REQUEST_METHOD')) + : strtolower($this->server('REQUEST_METHOD')); + } + + // ------------------------------------------------------------------------ + + /** + * Magic __get() + * + * Allows read access to protected properties + * + * @param string $name + * @return mixed + */ + public function __get($name) + { + if ($name === 'raw_input_stream') + { + isset($this->_raw_input_stream) OR $this->_raw_input_stream = file_get_contents('php://input'); + return $this->_raw_input_stream; + } + elseif ($name === 'ip_address') + { + return $this->ip_address; + } + } + +} diff --git a/system/core/Lang.php b/system/core/Lang.php new file mode 100644 index 0000000..1829906 --- /dev/null +++ b/system/core/Lang.php @@ -0,0 +1,204 @@ +load($value, $idiom, $return, $add_suffix, $alt_path); + } + + return; + } + + $langfile = str_replace('.php', '', $langfile); + + if ($add_suffix === TRUE) + { + $langfile = preg_replace('/_lang$/', '', $langfile).'_lang'; + } + + $langfile .= '.php'; + + if (empty($idiom) OR ! preg_match('/^[a-z_-]+$/i', $idiom)) + { + $config =& get_config(); + $idiom = empty($config['language']) ? 'english' : $config['language']; + } + + if ($return === FALSE && isset($this->is_loaded[$langfile]) && $this->is_loaded[$langfile] === $idiom) + { + return; + } + + // Load the base file, so any others found can override it + $basepath = BASEPATH.'language/'.$idiom.'/'.$langfile; + if (($found = file_exists($basepath)) === TRUE) + { + include($basepath); + } + + // Do we have an alternative path to look in? + if ($alt_path !== '') + { + $alt_path .= 'language/'.$idiom.'/'.$langfile; + if (file_exists($alt_path)) + { + include($alt_path); + $found = TRUE; + } + } + else + { + foreach (get_instance()->load->get_package_paths(TRUE) as $package_path) + { + $package_path .= 'language/'.$idiom.'/'.$langfile; + if ($basepath !== $package_path && file_exists($package_path)) + { + include($package_path); + $found = TRUE; + break; + } + } + } + + if ($found !== TRUE) + { + show_error('Unable to load the requested language file: language/'.$idiom.'/'.$langfile); + } + + if ( ! isset($lang) OR ! is_array($lang)) + { + log_message('error', 'Language file contains no data: language/'.$idiom.'/'.$langfile); + + if ($return === TRUE) + { + return array(); + } + return; + } + + if ($return === TRUE) + { + return $lang; + } + + $this->is_loaded[$langfile] = $idiom; + $this->language = array_merge($this->language, $lang); + + log_message('info', 'Language file loaded: language/'.$idiom.'/'.$langfile); + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Language line + * + * Fetches a single line of text from the language array + * + * @param string $line Language line key + * @param bool $log_errors Whether to log an error message if the line is not found + * @return string Translation + */ + public function line($line, $log_errors = TRUE) + { + $value = isset($this->language[$line]) ? $this->language[$line] : FALSE; + + // Because killer robots like unicorns! + if ($value === FALSE && $log_errors === TRUE) + { + log_message('error', 'Could not find the language line "'.$line.'"'); + } + + return $value; + } + +} diff --git a/system/core/Loader.php b/system/core/Loader.php new file mode 100644 index 0000000..a70487e --- /dev/null +++ b/system/core/Loader.php @@ -0,0 +1,1416 @@ + TRUE); + + /** + * List of paths to load libraries from + * + * @var array + */ + protected $_ci_library_paths = array(APPPATH, BASEPATH); + + /** + * List of paths to load models from + * + * @var array + */ + protected $_ci_model_paths = array(APPPATH); + + /** + * List of paths to load helpers from + * + * @var array + */ + protected $_ci_helper_paths = array(APPPATH, BASEPATH); + + /** + * List of cached variables + * + * @var array + */ + protected $_ci_cached_vars = array(); + + /** + * List of loaded classes + * + * @var array + */ + protected $_ci_classes = array(); + + /** + * List of loaded models + * + * @var array + */ + protected $_ci_models = array(); + + /** + * List of loaded helpers + * + * @var array + */ + protected $_ci_helpers = array(); + + /** + * List of class name mappings + * + * @var array + */ + protected $_ci_varmap = array( + 'unit_test' => 'unit', + 'user_agent' => 'agent' + ); + + // -------------------------------------------------------------------- + + /** + * Class constructor + * + * Sets component load paths, gets the initial output buffering level. + * + * @return void + */ + public function __construct() + { + $this->_ci_ob_level = ob_get_level(); + $this->_ci_classes =& is_loaded(); + + log_message('info', 'Loader Class Initialized'); + } + + // -------------------------------------------------------------------- + + /** + * Initializer + * + * @todo Figure out a way to move this to the constructor + * without breaking *package_path*() methods. + * @uses CI_Loader::_ci_autoloader() + * @used-by CI_Controller::__construct() + * @return void + */ + public function initialize() + { + $this->_ci_autoloader(); + } + + // -------------------------------------------------------------------- + + /** + * Is Loaded + * + * A utility method to test if a class is in the self::$_ci_classes array. + * + * @used-by Mainly used by Form Helper function _get_validation_object(). + * + * @param string $class Class name to check for + * @return string|bool Class object name if loaded or FALSE + */ + public function is_loaded($class) + { + return array_search(ucfirst($class), $this->_ci_classes, TRUE); + } + + // -------------------------------------------------------------------- + + /** + * Library Loader + * + * Loads and instantiates libraries. + * Designed to be called from application controllers. + * + * @param mixed $library Library name + * @param array $params Optional parameters to pass to the library class constructor + * @param string $object_name An optional object name to assign to + * @return object + */ + public function library($library, $params = NULL, $object_name = NULL) + { + if (empty($library)) + { + return $this; + } + elseif (is_array($library)) + { + foreach ($library as $key => $value) + { + if (is_int($key)) + { + $this->library($value, $params); + } + else + { + $this->library($key, $params, $value); + } + } + + return $this; + } + + if ($params !== NULL && ! is_array($params)) + { + $params = NULL; + } + + $this->_ci_load_library($library, $params, $object_name); + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Model Loader + * + * Loads and instantiates models. + * + * @param mixed $model Model name + * @param string $name An optional object name to assign to + * @param bool $db_conn An optional database connection configuration to initialize + * @return object + */ + public function model($model, $name = '', $db_conn = FALSE) + { + if (empty($model)) + { + return $this; + } + elseif (is_array($model)) + { + foreach ($model as $key => $value) + { + is_int($key) ? $this->model($value, '', $db_conn) : $this->model($key, $value, $db_conn); + } + + return $this; + } + + $path = ''; + + // Is the model in a sub-folder? If so, parse out the filename and path. + if (($last_slash = strrpos($model, '/')) !== FALSE) + { + // The path is in front of the last slash + $path = substr($model, 0, ++$last_slash); + + // And the model name behind it + $model = substr($model, $last_slash); + } + + if (empty($name)) + { + $name = $model; + } + + if (in_array($name, $this->_ci_models, TRUE)) + { + return $this; + } + + $CI =& get_instance(); + if (isset($CI->$name)) + { + throw new RuntimeException('The model name you are loading is the name of a resource that is already being used: '.$name); + } + + if ($db_conn !== FALSE && ! class_exists('CI_DB', FALSE)) + { + if ($db_conn === TRUE) + { + $db_conn = ''; + } + + $this->database($db_conn, FALSE, TRUE); + } + + // Note: All of the code under this condition used to be just: + // + // load_class('Model', 'core'); + // + // However, load_class() instantiates classes + // to cache them for later use and that prevents + // MY_Model from being an abstract class and is + // sub-optimal otherwise anyway. + if ( ! class_exists('CI_Model', FALSE)) + { + $app_path = APPPATH.'core'.DIRECTORY_SEPARATOR; + if (file_exists($app_path.'Model.php')) + { + require_once($app_path.'Model.php'); + if ( ! class_exists('CI_Model', FALSE)) + { + throw new RuntimeException($app_path."Model.php exists, but doesn't declare class CI_Model"); + } + + log_message('info', 'CI_Model class loaded'); + } + elseif ( ! class_exists('CI_Model', FALSE)) + { + require_once(BASEPATH.'core'.DIRECTORY_SEPARATOR.'Model.php'); + } + + $class = config_item('subclass_prefix').'Model'; + if (file_exists($app_path.$class.'.php')) + { + require_once($app_path.$class.'.php'); + if ( ! class_exists($class, FALSE)) + { + throw new RuntimeException($app_path.$class.".php exists, but doesn't declare class ".$class); + } + + log_message('info', config_item('subclass_prefix').'Model class loaded'); + } + } + + $model = ucfirst($model); + if ( ! class_exists($model, FALSE)) + { + foreach ($this->_ci_model_paths as $mod_path) + { + if ( ! file_exists($mod_path.'models/'.$path.$model.'.php')) + { + continue; + } + + require_once($mod_path.'models/'.$path.$model.'.php'); + if ( ! class_exists($model, FALSE)) + { + throw new RuntimeException($mod_path."models/".$path.$model.".php exists, but doesn't declare class ".$model); + } + + break; + } + + if ( ! class_exists($model, FALSE)) + { + throw new RuntimeException('Unable to locate the model you have specified: '.$model); + } + } + elseif ( ! is_subclass_of($model, 'CI_Model')) + { + throw new RuntimeException("Class ".$model." already exists and doesn't extend CI_Model"); + } + + $this->_ci_models[] = $name; + $model = new $model(); + $CI->$name = $model; + log_message('info', 'Model "'.get_class($model).'" initialized'); + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Database Loader + * + * @param mixed $params Database configuration options + * @param bool $return Whether to return the database object + * @param bool $query_builder Whether to enable Query Builder + * (overrides the configuration setting) + * + * @return object|bool Database object if $return is set to TRUE, + * FALSE on failure, CI_Loader instance in any other case + */ + public function database($params = '', $return = FALSE, $query_builder = NULL) + { + // Grab the super object + $CI =& get_instance(); + + // Do we even need to load the database class? + if ($return === FALSE && $query_builder === NULL && isset($CI->db) && is_object($CI->db) && ! empty($CI->db->conn_id)) + { + return FALSE; + } + + require_once(BASEPATH.'database/DB.php'); + + if ($return === TRUE) + { + return DB($params, $query_builder); + } + + // Initialize the db variable. Needed to prevent + // reference errors with some configurations + $CI->db = ''; + + // Load the DB class + $CI->db =& DB($params, $query_builder); + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Load the Database Utilities Class + * + * @param object $db Database object + * @param bool $return Whether to return the DB Utilities class object or not + * @return object + */ + public function dbutil($db = NULL, $return = FALSE) + { + $CI =& get_instance(); + + if ( ! is_object($db) OR ! ($db instanceof CI_DB)) + { + class_exists('CI_DB', FALSE) OR $this->database(); + $db =& $CI->db; + } + + require_once(BASEPATH.'database/DB_utility.php'); + require_once(BASEPATH.'database/drivers/'.$db->dbdriver.'/'.$db->dbdriver.'_utility.php'); + $class = 'CI_DB_'.$db->dbdriver.'_utility'; + + if ($return === TRUE) + { + return new $class($db); + } + + $CI->dbutil = new $class($db); + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Load the Database Forge Class + * + * @param object $db Database object + * @param bool $return Whether to return the DB Forge class object or not + * @return object + */ + public function dbforge($db = NULL, $return = FALSE) + { + $CI =& get_instance(); + if ( ! is_object($db) OR ! ($db instanceof CI_DB)) + { + class_exists('CI_DB', FALSE) OR $this->database(); + $db =& $CI->db; + } + + require_once(BASEPATH.'database/DB_forge.php'); + require_once(BASEPATH.'database/drivers/'.$db->dbdriver.'/'.$db->dbdriver.'_forge.php'); + + if ( ! empty($db->subdriver)) + { + $driver_path = BASEPATH.'database/drivers/'.$db->dbdriver.'/subdrivers/'.$db->dbdriver.'_'.$db->subdriver.'_forge.php'; + if (file_exists($driver_path)) + { + require_once($driver_path); + $class = 'CI_DB_'.$db->dbdriver.'_'.$db->subdriver.'_forge'; + } + } + else + { + $class = 'CI_DB_'.$db->dbdriver.'_forge'; + } + + if ($return === TRUE) + { + return new $class($db); + } + + $CI->dbforge = new $class($db); + return $this; + } + + // -------------------------------------------------------------------- + + /** + * View Loader + * + * Loads "view" files. + * + * @param string $view View name + * @param array $vars An associative array of data + * to be extracted for use in the view + * @param bool $return Whether to return the view output + * or leave it to the Output class + * @return object|string + */ + public function view($view, $vars = array(), $return = FALSE) + { + return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_prepare_view_vars($vars), '_ci_return' => $return)); + } + + // -------------------------------------------------------------------- + + /** + * Generic File Loader + * + * @param string $path File path + * @param bool $return Whether to return the file output + * @return object|string + */ + public function file($path, $return = FALSE) + { + return $this->_ci_load(array('_ci_path' => $path, '_ci_return' => $return)); + } + + // -------------------------------------------------------------------- + + /** + * Set Variables + * + * Once variables are set they become available within + * the controller class and its "view" files. + * + * @param array|object|string $vars + * An associative array or object containing values + * to be set, or a value's name if string + * @param string $val Value to set, only used if $vars is a string + * @return object + */ + public function vars($vars, $val = '') + { + $vars = is_string($vars) + ? array($vars => $val) + : $this->_ci_prepare_view_vars($vars); + + foreach ($vars as $key => $val) + { + $this->_ci_cached_vars[$key] = $val; + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Clear Cached Variables + * + * Clears the cached variables. + * + * @return CI_Loader + */ + public function clear_vars() + { + $this->_ci_cached_vars = array(); + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Get Variable + * + * Check if a variable is set and retrieve it. + * + * @param string $key Variable name + * @return mixed The variable or NULL if not found + */ + public function get_var($key) + { + return isset($this->_ci_cached_vars[$key]) ? $this->_ci_cached_vars[$key] : NULL; + } + + // -------------------------------------------------------------------- + + /** + * Get Variables + * + * Retrieves all loaded variables. + * + * @return array + */ + public function get_vars() + { + return $this->_ci_cached_vars; + } + + // -------------------------------------------------------------------- + + /** + * Helper Loader + * + * @param string|string[] $helpers Helper name(s) + * @return object + */ + public function helper($helpers = array()) + { + is_array($helpers) OR $helpers = array($helpers); + foreach ($helpers as &$helper) + { + $filename = basename($helper); + $filepath = ($filename === $helper) ? '' : substr($helper, 0, strlen($helper) - strlen($filename)); + $filename = strtolower(preg_replace('#(_helper)?(\.php)?$#i', '', $filename)).'_helper'; + $helper = $filepath.$filename; + + if (isset($this->_ci_helpers[$helper])) + { + continue; + } + + // Is this a helper extension request? + $ext_helper = config_item('subclass_prefix').$filename; + $ext_loaded = FALSE; + foreach ($this->_ci_helper_paths as $path) + { + if (file_exists($path.'helpers/'.$ext_helper.'.php')) + { + include_once($path.'helpers/'.$ext_helper.'.php'); + $ext_loaded = TRUE; + } + } + + // If we have loaded extensions - check if the base one is here + if ($ext_loaded === TRUE) + { + $base_helper = BASEPATH.'helpers/'.$helper.'.php'; + if ( ! file_exists($base_helper)) + { + show_error('Unable to load the requested file: helpers/'.$helper.'.php'); + } + + include_once($base_helper); + $this->_ci_helpers[$helper] = TRUE; + log_message('info', 'Helper loaded: '.$helper); + continue; + } + + // No extensions found ... try loading regular helpers and/or overrides + foreach ($this->_ci_helper_paths as $path) + { + if (file_exists($path.'helpers/'.$helper.'.php')) + { + include_once($path.'helpers/'.$helper.'.php'); + + $this->_ci_helpers[$helper] = TRUE; + log_message('info', 'Helper loaded: '.$helper); + break; + } + } + + // unable to load the helper + if ( ! isset($this->_ci_helpers[$helper])) + { + show_error('Unable to load the requested file: helpers/'.$helper.'.php'); + } + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Load Helpers + * + * An alias for the helper() method in case the developer has + * written the plural form of it. + * + * @uses CI_Loader::helper() + * @param string|string[] $helpers Helper name(s) + * @return object + */ + public function helpers($helpers = array()) + { + return $this->helper($helpers); + } + + // -------------------------------------------------------------------- + + /** + * Language Loader + * + * Loads language files. + * + * @param string|string[] $files List of language file names to load + * @param string Language name + * @return object + */ + public function language($files, $lang = '') + { + get_instance()->lang->load($files, $lang); + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Config Loader + * + * Loads a config file (an alias for CI_Config::load()). + * + * @uses CI_Config::load() + * @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 config($file, $use_sections = FALSE, $fail_gracefully = FALSE) + { + return get_instance()->config->load($file, $use_sections, $fail_gracefully); + } + + // -------------------------------------------------------------------- + + /** + * Driver Loader + * + * Loads a driver library. + * + * @param string|string[] $library Driver name(s) + * @param array $params Optional parameters to pass to the driver + * @param string $object_name An optional object name to assign to + * + * @return object|bool Object or FALSE on failure if $library is a string + * and $object_name is set. CI_Loader instance otherwise. + */ + public function driver($library, $params = NULL, $object_name = NULL) + { + if (is_array($library)) + { + foreach ($library as $key => $value) + { + if (is_int($key)) + { + $this->driver($value, $params); + } + else + { + $this->driver($key, $params, $value); + } + } + + return $this; + } + elseif (empty($library)) + { + return FALSE; + } + + if ( ! class_exists('CI_Driver_Library', FALSE)) + { + // We aren't instantiating an object here, just making the base class available + require BASEPATH.'libraries/Driver.php'; + } + + // We can save the loader some time since Drivers will *always* be in a subfolder, + // and typically identically named to the library + if ( ! strpos($library, '/')) + { + $library = ucfirst($library).'/'.$library; + } + + return $this->library($library, $params, $object_name); + } + + // -------------------------------------------------------------------- + + /** + * Add Package Path + * + * Prepends a parent path to the library, model, helper and config + * path arrays. + * + * @see CI_Loader::$_ci_library_paths + * @see CI_Loader::$_ci_model_paths + * @see CI_Loader::$_ci_helper_paths + * @see CI_Config::$_config_paths + * + * @param string $path Path to add + * @param bool $view_cascade (default: TRUE) + * @return object + */ + public function add_package_path($path, $view_cascade = TRUE) + { + $path = rtrim($path, '/').'/'; + + array_unshift($this->_ci_library_paths, $path); + array_unshift($this->_ci_model_paths, $path); + array_unshift($this->_ci_helper_paths, $path); + + $this->_ci_view_paths = array($path.'views/' => $view_cascade) + $this->_ci_view_paths; + + // Add config file path + $config =& $this->_ci_get_component('config'); + $config->_config_paths[] = $path; + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Get Package Paths + * + * Return a list of all package paths. + * + * @param bool $include_base Whether to include BASEPATH (default: FALSE) + * @return array + */ + public function get_package_paths($include_base = FALSE) + { + return ($include_base === TRUE) ? $this->_ci_library_paths : $this->_ci_model_paths; + } + + // -------------------------------------------------------------------- + + /** + * Remove Package Path + * + * Remove a path from the library, model, helper and/or config + * path arrays if it exists. If no path is provided, the most recently + * added path will be removed removed. + * + * @param string $path Path to remove + * @return object + */ + public function remove_package_path($path = '') + { + $config =& $this->_ci_get_component('config'); + + if ($path === '') + { + array_shift($this->_ci_library_paths); + array_shift($this->_ci_model_paths); + array_shift($this->_ci_helper_paths); + array_shift($this->_ci_view_paths); + array_pop($config->_config_paths); + } + else + { + $path = rtrim($path, '/').'/'; + foreach (array('_ci_library_paths', '_ci_model_paths', '_ci_helper_paths') as $var) + { + if (($key = array_search($path, $this->{$var})) !== FALSE) + { + unset($this->{$var}[$key]); + } + } + + if (isset($this->_ci_view_paths[$path.'views/'])) + { + unset($this->_ci_view_paths[$path.'views/']); + } + + if (($key = array_search($path, $config->_config_paths)) !== FALSE) + { + unset($config->_config_paths[$key]); + } + } + + // make sure the application default paths are still in the array + $this->_ci_library_paths = array_unique(array_merge($this->_ci_library_paths, array(APPPATH, BASEPATH))); + $this->_ci_helper_paths = array_unique(array_merge($this->_ci_helper_paths, array(APPPATH, BASEPATH))); + $this->_ci_model_paths = array_unique(array_merge($this->_ci_model_paths, array(APPPATH))); + $this->_ci_view_paths = array_merge($this->_ci_view_paths, array(APPPATH.'views/' => TRUE)); + $config->_config_paths = array_unique(array_merge($config->_config_paths, array(APPPATH))); + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Internal CI Data Loader + * + * Used to load views and files. + * + * Variables are prefixed with _ci_ to avoid symbol collision with + * variables made available to view files. + * + * @used-by CI_Loader::view() + * @used-by CI_Loader::file() + * @param array $_ci_data Data to load + * @return object + */ + protected function _ci_load($_ci_data) + { + // Set the default data variables + foreach (array('_ci_view', '_ci_vars', '_ci_path', '_ci_return') as $_ci_val) + { + $$_ci_val = isset($_ci_data[$_ci_val]) ? $_ci_data[$_ci_val] : FALSE; + } + + $file_exists = FALSE; + + // Set the path to the requested file + if (is_string($_ci_path) && $_ci_path !== '') + { + $_ci_x = explode('/', $_ci_path); + $_ci_file = end($_ci_x); + } + else + { + $_ci_ext = pathinfo($_ci_view, PATHINFO_EXTENSION); + $_ci_file = ($_ci_ext === '') ? $_ci_view.'.php' : $_ci_view; + + foreach ($this->_ci_view_paths as $_ci_view_file => $cascade) + { + if (file_exists($_ci_view_file.$_ci_file)) + { + $_ci_path = $_ci_view_file.$_ci_file; + $file_exists = TRUE; + break; + } + + if ( ! $cascade) + { + break; + } + } + } + + if ( ! $file_exists && ! file_exists($_ci_path)) + { + show_error('Unable to load the requested file: '.$_ci_file); + } + + // This allows anything loaded using $this->load (views, files, etc.) + // to become accessible from within the Controller and Model functions. + $_ci_CI =& get_instance(); + foreach (get_object_vars($_ci_CI) as $_ci_key => $_ci_var) + { + if ( ! isset($this->$_ci_key)) + { + $this->$_ci_key =& $_ci_CI->$_ci_key; + } + } + + /* + * Extract and cache variables + * + * You can either set variables using the dedicated $this->load->vars() + * function or via the second parameter of this function. We'll merge + * the two types and cache them so that views that are embedded within + * other views can have access to these variables. + */ + empty($_ci_vars) OR $this->_ci_cached_vars = array_merge($this->_ci_cached_vars, $_ci_vars); + extract($this->_ci_cached_vars); + + /* + * Buffer the output + * + * We buffer the output for two reasons: + * 1. Speed. You get a significant speed boost. + * 2. So that the final rendered template can be post-processed by + * the output class. Why do we need post processing? For one thing, + * in order to show the elapsed page load time. Unless we can + * intercept the content right before it's sent to the browser and + * then stop the timer it won't be accurate. + */ + ob_start(); + + // If the PHP installation does not support short tags we'll + // do a little string replacement, changing the short tags + // to standard PHP echo statements. + if ( ! is_php('5.4') && ! ini_get('short_open_tag') && config_item('rewrite_short_tags') === TRUE) + { + echo eval('?>'.preg_replace('/;*\s*\?>/', '; ?>', str_replace(' $this->_ci_ob_level + 1) + { + ob_end_flush(); + } + else + { + $_ci_CI->output->append_output(ob_get_contents()); + @ob_end_clean(); + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Internal CI Library Loader + * + * @used-by CI_Loader::library() + * @uses CI_Loader::_ci_init_library() + * + * @param string $class Class name to load + * @param mixed $params Optional parameters to pass to the class constructor + * @param string $object_name Optional object name to assign to + * @return void + */ + protected function _ci_load_library($class, $params = NULL, $object_name = NULL) + { + // Get the class name, and while we're at it trim any slashes. + // The directory path can be included as part of the class name, + // but we don't want a leading slash + $class = str_replace('.php', '', trim($class, '/')); + + // Was the path included with the class name? + // We look for a slash to determine this + if (($last_slash = strrpos($class, '/')) !== FALSE) + { + // Extract the path + $subdir = substr($class, 0, ++$last_slash); + + // Get the filename from the path + $class = substr($class, $last_slash); + } + else + { + $subdir = ''; + } + + $class = ucfirst($class); + + // Is this a stock library? There are a few special conditions if so ... + if (file_exists(BASEPATH.'libraries/'.$subdir.$class.'.php')) + { + return $this->_ci_load_stock_library($class, $subdir, $params, $object_name); + } + + // Safety: Was the class already loaded by a previous call? + if (class_exists($class, FALSE)) + { + $property = $object_name; + if (empty($property)) + { + $property = strtolower($class); + isset($this->_ci_varmap[$property]) && $property = $this->_ci_varmap[$property]; + } + + $CI =& get_instance(); + if (isset($CI->$property)) + { + log_message('debug', $class.' class already loaded. Second attempt ignored.'); + return; + } + + return $this->_ci_init_library($class, '', $params, $object_name); + } + + // Let's search for the requested library file and load it. + foreach ($this->_ci_library_paths as $path) + { + // BASEPATH has already been checked for + if ($path === BASEPATH) + { + continue; + } + + $filepath = $path.'libraries/'.$subdir.$class.'.php'; + // Does the file exist? No? Bummer... + if ( ! file_exists($filepath)) + { + continue; + } + + include_once($filepath); + return $this->_ci_init_library($class, '', $params, $object_name); + } + + // One last attempt. Maybe the library is in a subdirectory, but it wasn't specified? + if ($subdir === '') + { + return $this->_ci_load_library($class.'/'.$class, $params, $object_name); + } + + // If we got this far we were unable to find the requested class. + log_message('error', 'Unable to load the requested class: '.$class); + show_error('Unable to load the requested class: '.$class); + } + + // -------------------------------------------------------------------- + + /** + * Internal CI Stock Library Loader + * + * @used-by CI_Loader::_ci_load_library() + * @uses CI_Loader::_ci_init_library() + * + * @param string $library_name Library name to load + * @param string $file_path Path to the library filename, relative to libraries/ + * @param mixed $params Optional parameters to pass to the class constructor + * @param string $object_name Optional object name to assign to + * @return void + */ + protected function _ci_load_stock_library($library_name, $file_path, $params, $object_name) + { + $prefix = 'CI_'; + + if (class_exists($prefix.$library_name, FALSE)) + { + if (class_exists(config_item('subclass_prefix').$library_name, FALSE)) + { + $prefix = config_item('subclass_prefix'); + } + + $property = $object_name; + if (empty($property)) + { + $property = strtolower($library_name); + isset($this->_ci_varmap[$property]) && $property = $this->_ci_varmap[$property]; + } + + $CI =& get_instance(); + if ( ! isset($CI->$property)) + { + return $this->_ci_init_library($library_name, $prefix, $params, $object_name); + } + + log_message('debug', $library_name.' class already loaded. Second attempt ignored.'); + return; + } + + $paths = $this->_ci_library_paths; + array_pop($paths); // BASEPATH + array_pop($paths); // APPPATH (needs to be the first path checked) + array_unshift($paths, APPPATH); + + foreach ($paths as $path) + { + if (file_exists($path = $path.'libraries/'.$file_path.$library_name.'.php')) + { + // Override + include_once($path); + if (class_exists($prefix.$library_name, FALSE)) + { + return $this->_ci_init_library($library_name, $prefix, $params, $object_name); + } + + log_message('debug', $path.' exists, but does not declare '.$prefix.$library_name); + } + } + + include_once(BASEPATH.'libraries/'.$file_path.$library_name.'.php'); + + // Check for extensions + $subclass = config_item('subclass_prefix').$library_name; + foreach ($paths as $path) + { + if (file_exists($path = $path.'libraries/'.$file_path.$subclass.'.php')) + { + include_once($path); + if (class_exists($subclass, FALSE)) + { + $prefix = config_item('subclass_prefix'); + break; + } + + log_message('debug', $path.' exists, but does not declare '.$subclass); + } + } + + return $this->_ci_init_library($library_name, $prefix, $params, $object_name); + } + + // -------------------------------------------------------------------- + + /** + * Internal CI Library Instantiator + * + * @used-by CI_Loader::_ci_load_stock_library() + * @used-by CI_Loader::_ci_load_library() + * + * @param string $class Class name + * @param string $prefix Class name prefix + * @param array|null|bool $config Optional configuration to pass to the class constructor: + * FALSE to skip; + * NULL to search in config paths; + * array containing configuration data + * @param string $object_name Optional object name to assign to + * @return void + */ + protected function _ci_init_library($class, $prefix, $config = FALSE, $object_name = NULL) + { + // Is there an associated config file for this class? Note: these should always be lowercase + if ($config === NULL) + { + // Fetch the config paths containing any package paths + $config_component = $this->_ci_get_component('config'); + + if (is_array($config_component->_config_paths)) + { + $found = FALSE; + foreach ($config_component->_config_paths as $path) + { + // We test for both uppercase and lowercase, for servers that + // are case-sensitive with regard to file names. Load global first, + // override with environment next + if (file_exists($path.'config/'.strtolower($class).'.php')) + { + include($path.'config/'.strtolower($class).'.php'); + $found = TRUE; + } + elseif (file_exists($path.'config/'.ucfirst(strtolower($class)).'.php')) + { + include($path.'config/'.ucfirst(strtolower($class)).'.php'); + $found = TRUE; + } + + if (file_exists($path.'config/'.ENVIRONMENT.'/'.strtolower($class).'.php')) + { + include($path.'config/'.ENVIRONMENT.'/'.strtolower($class).'.php'); + $found = TRUE; + } + elseif (file_exists($path.'config/'.ENVIRONMENT.'/'.ucfirst(strtolower($class)).'.php')) + { + include($path.'config/'.ENVIRONMENT.'/'.ucfirst(strtolower($class)).'.php'); + $found = TRUE; + } + + // Break on the first found configuration, thus package + // files are not overridden by default paths + if ($found === TRUE) + { + break; + } + } + } + } + + $class_name = $prefix.$class; + + // Is the class name valid? + if ( ! class_exists($class_name, FALSE)) + { + log_message('error', 'Non-existent class: '.$class_name); + show_error('Non-existent class: '.$class_name); + } + + // Set the variable name we will assign the class to + // Was a custom class name supplied? If so we'll use it + if (empty($object_name)) + { + $object_name = strtolower($class); + if (isset($this->_ci_varmap[$object_name])) + { + $object_name = $this->_ci_varmap[$object_name]; + } + } + + // Don't overwrite existing properties + $CI =& get_instance(); + if (isset($CI->$object_name)) + { + if ($CI->$object_name instanceof $class_name) + { + log_message('debug', $class_name." has already been instantiated as '".$object_name."'. Second attempt aborted."); + return; + } + + show_error("Resource '".$object_name."' already exists and is not a ".$class_name." instance."); + } + + // Save the class name and object name + $this->_ci_classes[$object_name] = $class; + + // Instantiate the class + $CI->$object_name = isset($config) + ? new $class_name($config) + : new $class_name(); + } + + // -------------------------------------------------------------------- + + /** + * CI Autoloader + * + * Loads component listed in the config/autoload.php file. + * + * @used-by CI_Loader::initialize() + * @return void + */ + protected function _ci_autoloader() + { + if (file_exists(APPPATH.'config/autoload.php')) + { + include(APPPATH.'config/autoload.php'); + } + + if (file_exists(APPPATH.'config/'.ENVIRONMENT.'/autoload.php')) + { + include(APPPATH.'config/'.ENVIRONMENT.'/autoload.php'); + } + + if ( ! isset($autoload)) + { + return; + } + + // Autoload packages + if (isset($autoload['packages'])) + { + foreach ($autoload['packages'] as $package_path) + { + $this->add_package_path($package_path); + } + } + + // Load any custom config file + if (count($autoload['config']) > 0) + { + foreach ($autoload['config'] as $val) + { + $this->config($val); + } + } + + // Autoload helpers and languages + foreach (array('helper', 'language') as $type) + { + if (isset($autoload[$type]) && count($autoload[$type]) > 0) + { + $this->$type($autoload[$type]); + } + } + + // Autoload drivers + if (isset($autoload['drivers'])) + { + $this->driver($autoload['drivers']); + } + + // Load libraries + if (isset($autoload['libraries']) && count($autoload['libraries']) > 0) + { + // Load the database driver. + if (in_array('database', $autoload['libraries'])) + { + $this->database(); + $autoload['libraries'] = array_diff($autoload['libraries'], array('database')); + } + + // Load all other libraries + $this->library($autoload['libraries']); + } + + // Autoload models + if (isset($autoload['model'])) + { + $this->model($autoload['model']); + } + } + + // -------------------------------------------------------------------- + + /** + * Prepare variables for _ci_vars, to be later extract()-ed inside views + * + * Converts objects to associative arrays and filters-out internal + * variable names (i.e. keys prefixed with '_ci_'). + * + * @param mixed $vars + * @return array + */ + protected function _ci_prepare_view_vars($vars) + { + if ( ! is_array($vars)) + { + $vars = is_object($vars) + ? get_object_vars($vars) + : array(); + } + + foreach (array_keys($vars) as $key) + { + if (strncmp($key, '_ci_', 4) === 0) + { + unset($vars[$key]); + } + } + + return $vars; + } + + // -------------------------------------------------------------------- + + /** + * CI Component getter + * + * Get a reference to a specific library or model. + * + * @param string $component Component name + * @return bool + */ + protected function &_ci_get_component($component) + { + $CI =& get_instance(); + return $CI->$component; + } +} diff --git a/system/core/Log.php b/system/core/Log.php new file mode 100644 index 0000000..ca3e38a --- /dev/null +++ b/system/core/Log.php @@ -0,0 +1,297 @@ + 1, 'DEBUG' => 2, 'INFO' => 3, 'ALL' => 4); + + /** + * mbstring.func_overload flag + * + * @var bool + */ + protected static $func_overload; + + // -------------------------------------------------------------------- + + /** + * Class constructor + * + * @return void + */ + public function __construct() + { + $config =& get_config(); + + isset(self::$func_overload) OR self::$func_overload = ( ! is_php('8.0') && extension_loaded('mbstring') && @ini_get('mbstring.func_overload')); + + $this->_log_path = ($config['log_path'] !== '') ? $config['log_path'] : APPPATH.'logs/'; + $this->_file_ext = (isset($config['log_file_extension']) && $config['log_file_extension'] !== '') + ? ltrim($config['log_file_extension'], '.') : 'php'; + + file_exists($this->_log_path) OR mkdir($this->_log_path, 0755, TRUE); + + if ( ! is_dir($this->_log_path) OR ! is_really_writable($this->_log_path)) + { + $this->_enabled = FALSE; + } + + if (is_numeric($config['log_threshold'])) + { + $this->_threshold = (int) $config['log_threshold']; + } + elseif (is_array($config['log_threshold'])) + { + $this->_threshold = 0; + $this->_threshold_array = array_flip($config['log_threshold']); + } + + if ( ! empty($config['log_date_format'])) + { + $this->_date_fmt = $config['log_date_format']; + } + + if ( ! empty($config['log_file_permissions']) && is_int($config['log_file_permissions'])) + { + $this->_file_permissions = $config['log_file_permissions']; + } + } + + // -------------------------------------------------------------------- + + /** + * Write Log File + * + * Generally this function will be called using the global log_message() function + * + * @param string $level The error level: 'error', 'debug' or 'info' + * @param string $msg The error message + * @return bool + */ + public function write_log($level, $msg) + { + if ($this->_enabled === FALSE) + { + return FALSE; + } + + $level = strtoupper($level); + + if (( ! isset($this->_levels[$level]) OR ($this->_levels[$level] > $this->_threshold)) + && ! isset($this->_threshold_array[$this->_levels[$level]])) + { + return FALSE; + } + + $filepath = $this->_log_path.'log-'.date('Y-m-d').'.'.$this->_file_ext; + $message = ''; + + if ( ! file_exists($filepath)) + { + $newfile = TRUE; + // Only add protection to php files + if ($this->_file_ext === 'php') + { + $message .= "\n\n"; + } + } + + if ( ! $fp = @fopen($filepath, 'ab')) + { + return FALSE; + } + + flock($fp, LOCK_EX); + + // Instantiating DateTime with microseconds appended to initial date is needed for proper support of this format + if (strpos($this->_date_fmt, 'u') !== FALSE) + { + $microtime_full = microtime(TRUE); + $microtime_short = sprintf("%06d", ($microtime_full - floor($microtime_full)) * 1000000); + $date = new DateTime(date('Y-m-d H:i:s.'.$microtime_short, $microtime_full)); + $date = $date->format($this->_date_fmt); + } + else + { + $date = date($this->_date_fmt); + } + + $message .= $this->_format_line($level, $date, $msg); + + for ($written = 0, $length = self::strlen($message); $written < $length; $written += $result) + { + if (($result = fwrite($fp, self::substr($message, $written))) === FALSE) + { + break; + } + } + + flock($fp, LOCK_UN); + fclose($fp); + + if (isset($newfile) && $newfile === TRUE) + { + chmod($filepath, $this->_file_permissions); + } + + return is_int($result); + } + + // -------------------------------------------------------------------- + + /** + * Format the log line. + * + * This is for extensibility of log formatting + * If you want to change the log format, extend the CI_Log class and override this method + * + * @param string $level The error level + * @param string $date Formatted date string + * @param string $message The log message + * @return string Formatted log line with a new line character at the end + */ + protected function _format_line($level, $date, $message) + { + return $level.' - '.$date.' --> '.$message.PHP_EOL; + } + + // -------------------------------------------------------------------- + + /** + * Byte-safe strlen() + * + * @param string $str + * @return int + */ + protected static function strlen($str) + { + return (self::$func_overload) + ? mb_strlen($str, '8bit') + : strlen($str); + } + + // -------------------------------------------------------------------- + + /** + * Byte-safe substr() + * + * @param string $str + * @param int $start + * @param int $length + * @return string + */ + protected static function substr($str, $start, $length = NULL) + { + if (self::$func_overload) + { + // mb_substr($str, $start, null, '8bit') returns an empty + // string on PHP 5.3 + isset($length) OR $length = ($start >= 0 ? self::strlen($str) - $start : -$start); + return mb_substr($str, $start, $length, '8bit'); + } + + return isset($length) + ? substr($str, $start, $length) + : substr($str, $start); + } +} diff --git a/system/core/Model.php b/system/core/Model.php new file mode 100644 index 0000000..b2bbbd4 --- /dev/null +++ b/system/core/Model.php @@ -0,0 +1,77 @@ +$key; + } + +} diff --git a/system/core/Output.php b/system/core/Output.php new file mode 100644 index 0000000..a629a09 --- /dev/null +++ b/system/core/Output.php @@ -0,0 +1,847 @@ +_zlib_oc = (bool) ini_get('zlib.output_compression'); + $this->_compress_output = ( + $this->_zlib_oc === FALSE + && config_item('compress_output') === TRUE + && extension_loaded('zlib') + ); + + isset(self::$func_overload) OR self::$func_overload = ( ! is_php('8.0') && extension_loaded('mbstring') && @ini_get('mbstring.func_overload')); + + // Get mime types for later + $this->mimes =& get_mimes(); + + log_message('info', 'Output Class Initialized'); + } + + // -------------------------------------------------------------------- + + /** + * Get Output + * + * Returns the current output string. + * + * @return string + */ + public function get_output() + { + return $this->final_output; + } + + // -------------------------------------------------------------------- + + /** + * Set Output + * + * Sets the output string. + * + * @param string $output Output data + * @return CI_Output + */ + public function set_output($output) + { + $this->final_output = $output; + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Append Output + * + * Appends data onto the output string. + * + * @param string $output Data to append + * @return CI_Output + */ + public function append_output($output) + { + $this->final_output .= $output; + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set Header + * + * Lets you set a server header which will be sent with the final output. + * + * Note: If a file is cached, headers will not be sent. + * @todo We need to figure out how to permit headers to be cached. + * + * @param string $header Header + * @param bool $replace Whether to replace the old header value, if already set + * @return CI_Output + */ + public function set_header($header, $replace = TRUE) + { + // If zlib.output_compression is enabled it will compress the output, + // but it will not modify the content-length header to compensate for + // the reduction, causing the browser to hang waiting for more data. + // We'll just skip content-length in those cases. + if ($this->_zlib_oc && strncasecmp($header, 'content-length', 14) === 0) + { + return $this; + } + + $this->headers[] = array($header, $replace); + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set Content-Type Header + * + * @param string $mime_type Extension of the file we're outputting + * @param string $charset Character set (default: NULL) + * @return CI_Output + */ + public function set_content_type($mime_type, $charset = NULL) + { + if (strpos($mime_type, '/') === FALSE) + { + $extension = ltrim($mime_type, '.'); + + // Is this extension supported? + if (isset($this->mimes[$extension])) + { + $mime_type =& $this->mimes[$extension]; + + if (is_array($mime_type)) + { + $mime_type = current($mime_type); + } + } + } + + $this->mime_type = $mime_type; + + if (empty($charset)) + { + $charset = config_item('charset'); + } + + $header = 'Content-Type: '.$mime_type + .(empty($charset) ? '' : '; charset='.$charset); + + $this->headers[] = array($header, TRUE); + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Get Current Content-Type Header + * + * @return string 'text/html', if not already set + */ + public function get_content_type() + { + for ($i = 0, $c = count($this->headers); $i < $c; $i++) + { + if (sscanf($this->headers[$i][0], 'Content-Type: %[^;]', $content_type) === 1) + { + return $content_type; + } + } + + return 'text/html'; + } + + // -------------------------------------------------------------------- + + /** + * Get Header + * + * @param string $header + * @return string + */ + public function get_header($header) + { + // We only need [x][0] from our multi-dimensional array + $header_lines = array_map(function ($headers) + { + return array_shift($headers); + }, $this->headers); + + $headers = array_merge( + $header_lines, + headers_list() + ); + + if (empty($headers) OR empty($header)) + { + return NULL; + } + + // Count backwards, in order to get the last matching header + for ($c = count($headers) - 1; $c > -1; $c--) + { + if (strncasecmp($header, $headers[$c], $l = self::strlen($header)) === 0) + { + return trim(self::substr($headers[$c], $l+1)); + } + } + + return NULL; + } + + // -------------------------------------------------------------------- + + /** + * Set HTTP Status Header + * + * As of version 1.7.2, this is an alias for common function + * set_status_header(). + * + * @param int $code Status code (default: 200) + * @param string $text Optional message + * @return CI_Output + */ + public function set_status_header($code = 200, $text = '') + { + set_status_header($code, $text); + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Enable/disable Profiler + * + * @param bool $val TRUE to enable or FALSE to disable + * @return CI_Output + */ + public function enable_profiler($val = TRUE) + { + $this->enable_profiler = is_bool($val) ? $val : TRUE; + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set Profiler Sections + * + * Allows override of default/config settings for + * Profiler section display. + * + * @param array $sections Profiler sections + * @return CI_Output + */ + public function set_profiler_sections($sections) + { + if (isset($sections['query_toggle_count'])) + { + $this->_profiler_sections['query_toggle_count'] = (int) $sections['query_toggle_count']; + unset($sections['query_toggle_count']); + } + + foreach ($sections as $section => $enable) + { + $this->_profiler_sections[$section] = ($enable !== FALSE); + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Set Cache + * + * @param int $time Cache expiration time in minutes + * @return CI_Output + */ + public function cache($time) + { + $this->cache_expiration = is_numeric($time) ? $time : 0; + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Display Output + * + * Processes and sends finalized output data to the browser along + * with any server headers and profile data. It also stops benchmark + * timers so the page rendering speed and memory usage can be shown. + * + * Note: All "view" data is automatically put into $this->final_output + * by controller class. + * + * @uses CI_Output::$final_output + * @param string $output Output data override + * @return void + */ + public function _display($output = '') + { + // Note: We use load_class() because we can't use $CI =& get_instance() + // since this function is sometimes called by the caching mechanism, + // which happens before the CI super object is available. + $BM =& load_class('Benchmark', 'core'); + $CFG =& load_class('Config', 'core'); + + // Grab the super object if we can. + if (class_exists('CI_Controller', FALSE)) + { + $CI =& get_instance(); + } + + // -------------------------------------------------------------------- + + // Set the output data + if ($output === '') + { + $output =& $this->final_output; + } + + // -------------------------------------------------------------------- + + // Do we need to write a cache file? Only if the controller does not have its + // own _output() method and we are not dealing with a cache file, which we + // can determine by the existence of the $CI object above + if ($this->cache_expiration > 0 && isset($CI) && ! method_exists($CI, '_output')) + { + $this->_write_cache($output); + } + + // -------------------------------------------------------------------- + + // Parse out the elapsed time and memory usage, + // then swap the pseudo-variables with the data + + $elapsed = $BM->elapsed_time('total_execution_time_start', 'total_execution_time_end'); + + if ($this->parse_exec_vars === TRUE) + { + $memory = round(memory_get_usage() / 1024 / 1024, 2).'MB'; + $output = str_replace(array('{elapsed_time}', '{memory_usage}'), array($elapsed, $memory), $output); + } + + // -------------------------------------------------------------------- + + // Is compression requested? + if (isset($CI) // This means that we're not serving a cache file, if we were, it would already be compressed + && $this->_compress_output === TRUE + && isset($_SERVER['HTTP_ACCEPT_ENCODING']) && strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== FALSE) + { + ob_start('ob_gzhandler'); + } + + // -------------------------------------------------------------------- + + // Are there any server headers to send? + if (count($this->headers) > 0) + { + foreach ($this->headers as $header) + { + @header($header[0], $header[1]); + } + } + + // -------------------------------------------------------------------- + + // Does the $CI object exist? + // If not we know we are dealing with a cache file so we'll + // simply echo out the data and exit. + if ( ! isset($CI)) + { + if ($this->_compress_output === TRUE) + { + if (isset($_SERVER['HTTP_ACCEPT_ENCODING']) && strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== FALSE) + { + header('Content-Encoding: gzip'); + header('Content-Length: '.self::strlen($output)); + } + else + { + // User agent doesn't support gzip compression, + // so we'll have to decompress our cache + $output = gzinflate(self::substr($output, 10, -8)); + } + } + + echo $output; + log_message('info', 'Final output sent to browser'); + log_message('debug', 'Total execution time: '.$elapsed); + return; + } + + // -------------------------------------------------------------------- + + // Do we need to generate profile data? + // If so, load the Profile class and run it. + if ($this->enable_profiler === TRUE) + { + $CI->load->library('profiler'); + if ( ! empty($this->_profiler_sections)) + { + $CI->profiler->set_sections($this->_profiler_sections); + } + + // If the output data contains closing and tags + // we will remove them and add them back after we insert the profile data + $output = preg_replace('|.*?|is', '', $output, -1, $count).$CI->profiler->run(); + if ($count > 0) + { + $output .= ''; + } + } + + // Does the controller contain a function named _output()? + // If so send the output there. Otherwise, echo it. + if (method_exists($CI, '_output')) + { + $CI->_output($output); + } + else + { + echo $output; // Send it to the browser! + } + + log_message('info', 'Final output sent to browser'); + log_message('debug', 'Total execution time: '.$elapsed); + } + + // -------------------------------------------------------------------- + + /** + * Write Cache + * + * @param string $output Output data to cache + * @return void + */ + public function _write_cache($output) + { + $CI =& get_instance(); + $path = $CI->config->item('cache_path'); + $cache_path = ($path === '') ? APPPATH.'cache/' : $path; + + if ( ! is_dir($cache_path) OR ! is_really_writable($cache_path)) + { + log_message('error', 'Unable to write cache file: '.$cache_path); + return; + } + + $uri = $CI->config->item('base_url') + .$CI->config->item('index_page') + .$CI->uri->uri_string(); + + if (($cache_query_string = $CI->config->item('cache_query_string')) && ! empty($_SERVER['QUERY_STRING'])) + { + if (is_array($cache_query_string)) + { + $uri .= '?'.http_build_query(array_intersect_key($_GET, array_flip($cache_query_string))); + } + else + { + $uri .= '?'.$_SERVER['QUERY_STRING']; + } + } + + $cache_path .= md5($uri); + + if ( ! $fp = @fopen($cache_path, 'w+b')) + { + log_message('error', 'Unable to write cache file: '.$cache_path); + return; + } + + if ( ! flock($fp, LOCK_EX)) + { + log_message('error', 'Unable to secure a file lock for file at: '.$cache_path); + fclose($fp); + return; + } + + // If output compression is enabled, compress the cache + // itself, so that we don't have to do that each time + // we're serving it + if ($this->_compress_output === TRUE) + { + $output = gzencode($output); + + if ($this->get_header('content-type') === NULL) + { + $this->set_content_type($this->mime_type); + } + } + + $expire = time() + ($this->cache_expiration * 60); + + // Put together our serialized info. + $cache_info = serialize(array( + 'expire' => $expire, + 'headers' => $this->headers + )); + + $output = $cache_info.'ENDCI--->'.$output; + + for ($written = 0, $length = self::strlen($output); $written < $length; $written += $result) + { + if (($result = fwrite($fp, self::substr($output, $written))) === FALSE) + { + break; + } + } + + flock($fp, LOCK_UN); + fclose($fp); + + if ( ! is_int($result)) + { + @unlink($cache_path); + log_message('error', 'Unable to write the complete cache content at: '.$cache_path); + return; + } + + chmod($cache_path, 0640); + log_message('debug', 'Cache file written: '.$cache_path); + + // Send HTTP cache-control headers to browser to match file cache settings. + $this->set_cache_header($_SERVER['REQUEST_TIME'], $expire); + } + + // -------------------------------------------------------------------- + + /** + * Update/serve cached output + * + * @uses CI_Config + * @uses CI_URI + * + * @param object &$CFG CI_Config class instance + * @param object &$URI CI_URI class instance + * @return bool TRUE on success or FALSE on failure + */ + public function _display_cache(&$CFG, &$URI) + { + $cache_path = ($CFG->item('cache_path') === '') ? APPPATH.'cache/' : $CFG->item('cache_path'); + + // Build the file path. The file name is an MD5 hash of the full URI + $uri = $CFG->item('base_url').$CFG->item('index_page').$URI->uri_string; + + if (($cache_query_string = $CFG->item('cache_query_string')) && ! empty($_SERVER['QUERY_STRING'])) + { + if (is_array($cache_query_string)) + { + $uri .= '?'.http_build_query(array_intersect_key($_GET, array_flip($cache_query_string))); + } + else + { + $uri .= '?'.$_SERVER['QUERY_STRING']; + } + } + + $filepath = $cache_path.md5($uri); + + if ( ! file_exists($filepath) OR ! $fp = @fopen($filepath, 'rb')) + { + return FALSE; + } + + flock($fp, LOCK_SH); + + $cache = (filesize($filepath) > 0) ? fread($fp, filesize($filepath)) : ''; + + flock($fp, LOCK_UN); + fclose($fp); + + // Look for embedded serialized file info. + if ( ! preg_match('/^(.*)ENDCI--->/', $cache, $match)) + { + return FALSE; + } + + $cache_info = unserialize($match[1]); + $expire = $cache_info['expire']; + + $last_modified = filemtime($filepath); + + // Has the file expired? + if ($_SERVER['REQUEST_TIME'] >= $expire && is_really_writable($cache_path)) + { + // If so we'll delete it. + @unlink($filepath); + log_message('debug', 'Cache file has expired. File deleted.'); + return FALSE; + } + + // Send the HTTP cache control headers + $this->set_cache_header($last_modified, $expire); + + // Add headers from cache file. + foreach ($cache_info['headers'] as $header) + { + $this->set_header($header[0], $header[1]); + } + + // Display the cache + $this->_display(self::substr($cache, self::strlen($match[0]))); + log_message('debug', 'Cache file is current. Sending it to browser.'); + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Delete cache + * + * @param string $uri URI string + * @return bool + */ + public function delete_cache($uri = '') + { + $CI =& get_instance(); + $cache_path = $CI->config->item('cache_path'); + if ($cache_path === '') + { + $cache_path = APPPATH.'cache/'; + } + + if ( ! is_dir($cache_path)) + { + log_message('error', 'Unable to find cache path: '.$cache_path); + return FALSE; + } + + if (empty($uri)) + { + $uri = $CI->uri->uri_string(); + + if (($cache_query_string = $CI->config->item('cache_query_string')) && ! empty($_SERVER['QUERY_STRING'])) + { + if (is_array($cache_query_string)) + { + $uri .= '?'.http_build_query(array_intersect_key($_GET, array_flip($cache_query_string))); + } + else + { + $uri .= '?'.$_SERVER['QUERY_STRING']; + } + } + } + + $cache_path .= md5($CI->config->item('base_url').$CI->config->item('index_page').ltrim($uri, '/')); + + if ( ! @unlink($cache_path)) + { + log_message('error', 'Unable to delete cache file for '.$uri); + return FALSE; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Set Cache Header + * + * Set the HTTP headers to match the server-side file cache settings + * in order to reduce bandwidth. + * + * @param int $last_modified Timestamp of when the page was last modified + * @param int $expiration Timestamp of when should the requested page expire from cache + * @return void + */ + public function set_cache_header($last_modified, $expiration) + { + $max_age = $expiration - $_SERVER['REQUEST_TIME']; + + if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && $last_modified <= strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE'])) + { + $this->set_status_header(304); + exit; + } + + header('Pragma: public'); + header('Cache-Control: max-age='.$max_age.', public'); + header('Expires: '.gmdate('D, d M Y H:i:s', $expiration).' GMT'); + header('Last-modified: '.gmdate('D, d M Y H:i:s', $last_modified).' GMT'); + } + + // -------------------------------------------------------------------- + + /** + * Byte-safe strlen() + * + * @param string $str + * @return int + */ + protected static function strlen($str) + { + return (self::$func_overload) + ? mb_strlen($str, '8bit') + : strlen($str); + } + + // -------------------------------------------------------------------- + + /** + * Byte-safe substr() + * + * @param string $str + * @param int $start + * @param int $length + * @return string + */ + protected static function substr($str, $start, $length = NULL) + { + if (self::$func_overload) + { + // mb_substr($str, $start, null, '8bit') returns an empty + // string on PHP 5.3 + isset($length) OR $length = ($start >= 0 ? self::strlen($str) - $start : -$start); + return mb_substr($str, $start, $length, '8bit'); + } + + return isset($length) + ? substr($str, $start, $length) + : substr($str, $start); + } +} diff --git a/system/core/Router.php b/system/core/Router.php new file mode 100644 index 0000000..ab1f44e --- /dev/null +++ b/system/core/Router.php @@ -0,0 +1,516 @@ +config =& load_class('Config', 'core'); + $this->uri =& load_class('URI', 'core'); + + $this->enable_query_strings = ( ! is_cli() && $this->config->item('enable_query_strings') === TRUE); + + // If a directory override is configured, it has to be set before any dynamic routing logic + is_array($routing) && isset($routing['directory']) && $this->set_directory($routing['directory']); + $this->_set_routing(); + + // Set any routing overrides that may exist in the main index file + if (is_array($routing)) + { + empty($routing['controller']) OR $this->set_class($routing['controller']); + empty($routing['function']) OR $this->set_method($routing['function']); + } + + log_message('info', 'Router Class Initialized'); + } + + // -------------------------------------------------------------------- + + /** + * Set route mapping + * + * Determines what should be served based on the URI request, + * as well as any "routes" that have been set in the routing config file. + * + * @return void + */ + protected function _set_routing() + { + // Load the routes.php file. It would be great if we could + // skip this for enable_query_strings = TRUE, but then + // default_controller would be empty ... + if (file_exists(APPPATH.'config/routes.php')) + { + include(APPPATH.'config/routes.php'); + } + + if (file_exists(APPPATH.'config/'.ENVIRONMENT.'/routes.php')) + { + include(APPPATH.'config/'.ENVIRONMENT.'/routes.php'); + } + + // Validate & get reserved routes + if (isset($route) && is_array($route)) + { + isset($route['default_controller']) && $this->default_controller = $route['default_controller']; + isset($route['translate_uri_dashes']) && $this->translate_uri_dashes = $route['translate_uri_dashes']; + unset($route['default_controller'], $route['translate_uri_dashes']); + $this->routes = $route; + } + + // Are query strings enabled in the config file? Normally CI doesn't utilize query strings + // since URI segments are more search-engine friendly, but they can optionally be used. + // If this feature is enabled, we will gather the directory/class/method a little differently + if ($this->enable_query_strings) + { + // If the directory is set at this time, it means an override exists, so skip the checks + if ( ! isset($this->directory)) + { + $_d = $this->config->item('directory_trigger'); + $_d = isset($_GET[$_d]) ? trim($_GET[$_d], " \t\n\r\0\x0B/") : ''; + + if ($_d !== '') + { + $this->uri->filter_uri($_d); + $this->set_directory($_d); + } + } + + $_c = trim($this->config->item('controller_trigger')); + if ( ! empty($_GET[$_c])) + { + $this->uri->filter_uri($_GET[$_c]); + $this->set_class($_GET[$_c]); + + $_f = trim($this->config->item('function_trigger')); + if ( ! empty($_GET[$_f])) + { + $this->uri->filter_uri($_GET[$_f]); + $this->set_method($_GET[$_f]); + } + + $this->uri->rsegments = array( + 1 => $this->class, + 2 => $this->method + ); + } + else + { + $this->_set_default_controller(); + } + + // Routing rules don't apply to query strings and we don't need to detect + // directories, so we're done here + return; + } + + // Is there anything to parse? + if ($this->uri->uri_string !== '') + { + $this->_parse_routes(); + } + else + { + $this->_set_default_controller(); + } + } + + // -------------------------------------------------------------------- + + /** + * Set request route + * + * Takes an array of URI segments as input and sets the class/method + * to be called. + * + * @used-by CI_Router::_parse_routes() + * @param array $segments URI segments + * @return void + */ + protected function _set_request($segments = array()) + { + $segments = $this->_validate_request($segments); + // If we don't have any segments left - try the default controller; + // WARNING: Directories get shifted out of the segments array! + if (empty($segments)) + { + $this->_set_default_controller(); + return; + } + + if ($this->translate_uri_dashes === TRUE) + { + $segments[0] = str_replace('-', '_', $segments[0]); + if (isset($segments[1])) + { + $segments[1] = str_replace('-', '_', $segments[1]); + } + } + + $this->set_class($segments[0]); + if (isset($segments[1])) + { + $this->set_method($segments[1]); + } + else + { + $segments[1] = 'index'; + } + + array_unshift($segments, NULL); + unset($segments[0]); + $this->uri->rsegments = $segments; + } + + // -------------------------------------------------------------------- + + /** + * Set default controller + * + * @return void + */ + protected function _set_default_controller() + { + if (empty($this->default_controller)) + { + show_error('Unable to determine what should be displayed. A default route has not been specified in the routing file.'); + } + + // Is the method being specified? + if (sscanf($this->default_controller, '%[^/]/%s', $class, $method) !== 2) + { + $method = 'index'; + } + + if ( ! file_exists(APPPATH.'controllers/'.$this->directory.ucfirst($class).'.php')) + { + // This will trigger 404 later + return; + } + + $this->set_class($class); + $this->set_method($method); + + // Assign routed segments, index starting from 1 + $this->uri->rsegments = array( + 1 => $class, + 2 => $method + ); + + log_message('debug', 'No URI present. Default controller set.'); + } + + // -------------------------------------------------------------------- + + /** + * Validate request + * + * Attempts validate the URI request and determine the controller path. + * + * @used-by CI_Router::_set_request() + * @param array $segments URI segments + * @return mixed URI segments + */ + protected function _validate_request($segments) + { + $c = count($segments); + $directory_override = isset($this->directory); + + // Loop through our segments and return as soon as a controller + // is found or when such a directory doesn't exist + while ($c-- > 0) + { + $test = $this->directory + .ucfirst($this->translate_uri_dashes === TRUE ? str_replace('-', '_', $segments[0]) : $segments[0]); + + if ( ! file_exists(APPPATH.'controllers/'.$test.'.php') + && $directory_override === FALSE + && is_dir(APPPATH.'controllers/'.$this->directory.$segments[0]) + ) + { + $this->set_directory(array_shift($segments), TRUE); + continue; + } + + return $segments; + } + + // This means that all segments were actually directories + return $segments; + } + + // -------------------------------------------------------------------- + + /** + * Parse Routes + * + * Matches any routes that may exist in the config/routes.php file + * against the URI to determine if the class/method need to be remapped. + * + * @return void + */ + protected function _parse_routes() + { + // Turn the segment array into a URI string + $uri = implode('/', $this->uri->segments); + + // Get HTTP verb + $http_verb = isset($_SERVER['REQUEST_METHOD']) ? strtolower($_SERVER['REQUEST_METHOD']) : 'cli'; + + // Loop through the route array looking for wildcards + foreach ($this->routes as $key => $val) + { + // Check if route format is using HTTP verbs + if (is_array($val)) + { + $val = array_change_key_case($val, CASE_LOWER); + if (isset($val[$http_verb])) + { + $val = $val[$http_verb]; + } + else + { + continue; + } + } + + // Convert wildcards to RegEx + $key = str_replace(array(':any', ':num'), array('[^/]+', '[0-9]+'), $key); + + // Does the RegEx match? + if (preg_match('#^'.$key.'$#', $uri, $matches)) + { + // Are we using callbacks to process back-references? + if ( ! is_string($val) && is_callable($val)) + { + // Remove the original string from the matches array. + array_shift($matches); + + // Execute the callback using the values in matches as its parameters. + $val = call_user_func_array($val, $matches); + } + // Are we using the default routing method for back-references? + elseif (strpos($val, '$') !== FALSE && strpos($key, '(') !== FALSE) + { + $val = preg_replace('#^'.$key.'$#', $val, $uri); + } + + $this->_set_request(explode('/', $val)); + return; + } + } + + // If we got this far it means we didn't encounter a + // matching route so we'll set the site default route + $this->_set_request(array_values($this->uri->segments)); + } + + // -------------------------------------------------------------------- + + /** + * Set class name + * + * @param string $class Class name + * @return void + */ + public function set_class($class) + { + $this->class = str_replace(array('/', '.'), '', $class); + } + + // -------------------------------------------------------------------- + + /** + * Fetch the current class + * + * @deprecated 3.0.0 Read the 'class' property instead + * @return string + */ + public function fetch_class() + { + return $this->class; + } + + // -------------------------------------------------------------------- + + /** + * Set method name + * + * @param string $method Method name + * @return void + */ + public function set_method($method) + { + $this->method = $method; + } + + // -------------------------------------------------------------------- + + /** + * Fetch the current method + * + * @deprecated 3.0.0 Read the 'method' property instead + * @return string + */ + public function fetch_method() + { + return $this->method; + } + + // -------------------------------------------------------------------- + + /** + * Set directory name + * + * @param string $dir Directory name + * @param bool $append Whether we're appending rather than setting the full value + * @return void + */ + public function set_directory($dir, $append = FALSE) + { + if ($append !== TRUE OR empty($this->directory)) + { + $this->directory = str_replace('.', '', trim($dir, '/')).'/'; + } + else + { + $this->directory .= str_replace('.', '', trim($dir, '/')).'/'; + } + } + + // -------------------------------------------------------------------- + + /** + * Fetch directory + * + * Feches the sub-directory (if any) that contains the requested + * controller class. + * + * @deprecated 3.0.0 Read the 'directory' property instead + * @return string + */ + public function fetch_directory() + { + return $this->directory; + } + +} diff --git a/system/core/Security.php b/system/core/Security.php new file mode 100644 index 0000000..e7772e0 --- /dev/null +++ b/system/core/Security.php @@ -0,0 +1,1111 @@ +', '<', '>', + "'", '"', '&', '$', '#', + '{', '}', '[', ']', '=', + ';', '?', '%20', '%22', + '%3c', // < + '%253c', // < + '%3e', // > + '%0e', // > + '%28', // ( + '%29', // ) + '%2528', // ( + '%26', // & + '%24', // $ + '%3f', // ? + '%3b', // ; + '%3d' // = + ); + + /** + * Character set + * + * Will be overridden by the constructor. + * + * @var string + */ + public $charset = 'UTF-8'; + + /** + * XSS Hash + * + * Random Hash for protecting URLs. + * + * @var string + */ + protected $_xss_hash; + + /** + * CSRF Hash + * + * Random hash for Cross Site Request Forgery protection cookie + * + * @var string + */ + protected $_csrf_hash; + + /** + * CSRF Expire time + * + * Expiration time for Cross Site Request Forgery protection cookie. + * Defaults to two hours (in seconds). + * + * @var int + */ + protected $_csrf_expire = 7200; + + /** + * CSRF Token name + * + * Token name for Cross Site Request Forgery protection cookie. + * + * @var string + */ + protected $_csrf_token_name = 'ci_csrf_token'; + + /** + * CSRF Cookie name + * + * Cookie name for Cross Site Request Forgery protection cookie. + * + * @var string + */ + protected $_csrf_cookie_name = 'ci_csrf_token'; + + /** + * List of never allowed strings + * + * @var array + */ + protected $_never_allowed_str = array( + 'document.cookie' => '[removed]', + '(document).cookie' => '[removed]', + 'document.write' => '[removed]', + '(document).write' => '[removed]', + '.parentNode' => '[removed]', + '.innerHTML' => '[removed]', + '-moz-binding' => '[removed]', + '' => '-->', + ' '<![CDATA[', + '' => '<comment>', + '<%' => '<%' + ); + + /** + * List of never allowed regex replacements + * + * @var array + */ + protected $_never_allowed_regex = array( + 'javascript\s*:', + '(\(?document\)?|\(?window\)?(\.document)?)\.(location|on\w*)', + 'expression\s*(\(|&\#40;)', // CSS and IE + 'vbscript\s*:', // IE, surprise! + 'wscript\s*:', // IE + 'jscript\s*:', // IE + 'vbs\s*:', // IE + 'Redirect\s+30\d', + "([\"'])?data\s*:[^\\1]*?base64[^\\1]*?,[^\\1]*?\\1?" + ); + + /** + * Class constructor + * + * @return void + */ + public function __construct() + { + // Is CSRF protection enabled? + if (config_item('csrf_protection')) + { + // CSRF config + foreach (array('csrf_expire', 'csrf_token_name', 'csrf_cookie_name') as $key) + { + if (NULL !== ($val = config_item($key))) + { + $this->{'_'.$key} = $val; + } + } + + // Append application specific cookie prefix + if ($cookie_prefix = config_item('cookie_prefix')) + { + $this->_csrf_cookie_name = $cookie_prefix.$this->_csrf_cookie_name; + } + + // Set the CSRF hash + $this->_csrf_set_hash(); + } + + $this->charset = strtoupper((string) config_item('charset')); + + log_message('info', 'Security Class Initialized'); + } + + // -------------------------------------------------------------------- + + /** + * CSRF Verify + * + * @return CI_Security + */ + public function csrf_verify() + { + // If it's not a POST request we will set the CSRF cookie + if (strtoupper($_SERVER['REQUEST_METHOD']) !== 'POST') + { + return $this->csrf_set_cookie(); + } + + // Check if URI has been whitelisted from CSRF checks + if ($exclude_uris = config_item('csrf_exclude_uris')) + { + $uri = load_class('URI', 'core'); + foreach ($exclude_uris as $excluded) + { + if (preg_match('#^'.$excluded.'$#i'.(UTF8_ENABLED ? 'u' : ''), $uri->uri_string())) + { + return $this; + } + } + } + + // Check CSRF token validity, but don't error on mismatch just yet - we'll want to regenerate + $valid = isset($_POST[$this->_csrf_token_name], $_COOKIE[$this->_csrf_cookie_name]) + && is_string($_POST[$this->_csrf_token_name]) && is_string($_COOKIE[$this->_csrf_cookie_name]) + && hash_equals($_POST[$this->_csrf_token_name], $_COOKIE[$this->_csrf_cookie_name]); + + // We kill this since we're done and we don't want to pollute the _POST array + unset($_POST[$this->_csrf_token_name]); + + // Regenerate on every submission? + if (config_item('csrf_regenerate')) + { + // Nothing should last forever + unset($_COOKIE[$this->_csrf_cookie_name]); + $this->_csrf_hash = NULL; + } + + $this->_csrf_set_hash(); + $this->csrf_set_cookie(); + + if ($valid !== TRUE) + { + $this->csrf_show_error(); + } + + log_message('info', 'CSRF token verified'); + return $this; + } + + // -------------------------------------------------------------------- + + /** + * CSRF Set Cookie + * + * @codeCoverageIgnore + * @return CI_Security + */ + public function csrf_set_cookie() + { + $expire = time() + $this->_csrf_expire; + $secure_cookie = (bool) config_item('cookie_secure'); + + if ($secure_cookie && ! is_https()) + { + return FALSE; + } + + if (is_php('7.3')) + { + setcookie( + $this->_csrf_cookie_name, + $this->_csrf_hash, + array( + 'expires' => $expire, + 'path' => config_item('cookie_path'), + 'domain' => config_item('cookie_domain'), + 'secure' => $secure_cookie, + 'httponly' => config_item('cookie_httponly'), + 'samesite' => 'Strict' + ) + ); + } + else + { + $domain = trim(config_item('cookie_domain')); + header('Set-Cookie: '.$this->_csrf_cookie_name.'='.$this->_csrf_hash + .'; Expires='.gmdate('D, d-M-Y H:i:s T', $expire) + .'; Max-Age='.$this->_csrf_expire + .'; Path='.rawurlencode(config_item('cookie_path')) + .($domain === '' ? '' : '; Domain='.$domain) + .($secure_cookie ? '; Secure' : '') + .(config_item('cookie_httponly') ? '; HttpOnly' : '') + .'; SameSite=Strict' + ); + } + + log_message('info', 'CSRF cookie sent'); + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Show CSRF Error + * + * @return void + */ + public function csrf_show_error() + { + show_error('The action you have requested is not allowed.', 403); + } + + // -------------------------------------------------------------------- + + /** + * Get CSRF Hash + * + * @see CI_Security::$_csrf_hash + * @return string CSRF hash + */ + public function get_csrf_hash() + { + return $this->_csrf_hash; + } + + // -------------------------------------------------------------------- + + /** + * Get CSRF Token Name + * + * @see CI_Security::$_csrf_token_name + * @return string CSRF token name + */ + public function get_csrf_token_name() + { + return $this->_csrf_token_name; + } + + // -------------------------------------------------------------------- + + /** + * XSS Clean + * + * Sanitizes data so that Cross Site Scripting Hacks can be + * prevented. This method does a fair amount of work but + * it is extremely thorough, designed to prevent even the + * most obscure XSS attempts. Nothing is ever 100% foolproof, + * of course, but I haven't been able to get anything passed + * the filter. + * + * Note: Should only be used to deal with data upon submission. + * It's not something that should be used for general + * runtime processing. + * + * @link http://channel.bitflux.ch/wiki/XSS_Prevention + * Based in part on some code and ideas from Bitflux. + * + * @link http://ha.ckers.org/xss.html + * To help develop this script I used this great list of + * vulnerabilities along with a few other hacks I've + * harvested from examining vulnerabilities in other programs. + * + * @param string|string[] $str Input data + * @param bool $is_image Whether the input is an image + * @return string + */ + public function xss_clean($str, $is_image = FALSE) + { + // Is the string an array? + if (is_array($str)) + { + foreach ($str as $key => &$value) + { + $str[$key] = $this->xss_clean($value); + } + + return $str; + } + + // Remove Invisible Characters + $str = remove_invisible_characters($str); + + /* + * URL Decode + * + * Just in case stuff like this is submitted: + * + * Google + * + * Note: Use rawurldecode() so it does not remove plus signs + */ + if (stripos($str, '%') !== false) + { + do + { + $oldstr = $str; + $str = rawurldecode($str); + $str = preg_replace_callback('#%(?:\s*[0-9a-f]){2,}#i', array($this, '_urldecodespaces'), $str); + } + while ($oldstr !== $str); + unset($oldstr); + } + + /* + * Convert character entities to ASCII + * + * This permits our tests below to work reliably. + * We only convert entities that are within tags since + * these are the ones that will pose security problems. + */ + $str = preg_replace_callback("/[^a-z0-9>]+[a-z0-9]+=([\'\"]).*?\\1/si", array($this, '_convert_attribute'), $str); + $str = preg_replace_callback('/<\w+.*/si', array($this, '_decode_entity'), $str); + + // Remove Invisible Characters Again! + $str = remove_invisible_characters($str); + + /* + * Convert all tabs to spaces + * + * This prevents strings like this: ja vascript + * NOTE: we deal with spaces between characters later. + * NOTE: preg_replace was found to be amazingly slow here on + * large blocks of data, so we use str_replace. + */ + $str = str_replace("\t", ' ', $str); + + // Capture converted string for later comparison + $converted_string = $str; + + // Remove Strings that are never allowed + $str = $this->_do_never_allowed($str); + + /* + * Makes PHP tags safe + * + * Note: XML tags are inadvertently replaced too: + * + * '), array('<?', '?>'), $str); + } + + /* + * Compact any exploded words + * + * This corrects words like: j a v a s c r i p t + * These words are compacted back to their correct state. + */ + $words = array( + 'javascript', 'expression', 'vbscript', 'jscript', 'wscript', + 'vbs', 'script', 'base64', 'applet', 'alert', 'document', + 'write', 'cookie', 'window', 'confirm', 'prompt', 'eval' + ); + + foreach ($words as $word) + { + $word = implode('\s*', str_split($word)).'\s*'; + + // We only want to do this when it is followed by a non-word character + // That way valid stuff like "dealer to" does not become "dealerto" + $str = preg_replace_callback('#('.substr($word, 0, -3).')(\W)#is', array($this, '_compact_exploded_words'), $str); + } + + /* + * Remove disallowed Javascript in links or img tags + * We used to do some version comparisons and use of stripos(), + * but it is dog slow compared to these simplified non-capturing + * preg_match(), especially if the pattern exists in the string + * + * Note: It was reported that not only space characters, but all in + * the following pattern can be parsed as separators between a tag name + * and its attributes: [\d\s"\'`;,\/\=\(\x00\x0B\x09\x0C] + * ... however, remove_invisible_characters() above already strips the + * hex-encoded ones, so we'll skip them below. + */ + do + { + $original = $str; + + if (preg_match('/]+([^>]*?)(?:>|$)#si', array($this, '_js_link_removal'), $str); + } + + if (preg_match('/]*?)(?:\s?/?>|$)#si', array($this, '_js_img_removal'), $str); + } + + if (preg_match('/script|xss/i', $str)) + { + $str = preg_replace('##si', '[removed]', $str); + } + } + while ($original !== $str); + unset($original); + + /* + * Sanitize naughty HTML elements + * + * If a tag containing any of the words in the list + * below is found, the tag gets converted to entities. + * + * So this: + * Becomes: <blink> + */ + $pattern = '#' + .'<((?/*\s*)((?[a-z0-9]+)(?=[^a-z0-9]|$)|.+)' // tag start and name, followed by a non-tag character + .'[^\s\042\047a-z0-9>/=]*' // a valid attribute character immediately after the tag would count as a separator + // optional attributes + .'(?(?:[\s\042\047/=]*' // non-attribute characters, excluding > (tag close) for obvious reasons + .'[^\s\042\047>/=]+' // attribute characters + // optional attribute-value + .'(?:\s*=' // attribute-value separator + .'(?:[^\s\042\047=><`]+|\s*\042[^\042]*\042|\s*\047[^\047]*\047|\s*(?U:[^\s\042\047=><`]*))' // single, double or non-quoted value + .')?' // end optional attribute-value group + .')*)' // end optional attributes group + .'[^>]*)(?\>)?#isS'; + + // Note: It would be nice to optimize this for speed, BUT + // only matching the naughty elements here results in + // false positives and in turn - vulnerabilities! + do + { + $old_str = $str; + $str = preg_replace_callback($pattern, array($this, '_sanitize_naughty_html'), $str); + } + while ($old_str !== $str); + unset($old_str); + + /* + * Sanitize naughty scripting elements + * + * Similar to above, only instead of looking for + * tags it looks for PHP and JavaScript commands + * that are disallowed. Rather than removing the + * code, it simply converts the parenthesis to entities + * rendering the code un-executable. + * + * For example: eval('some code') + * Becomes: eval('some code') + */ + $str = preg_replace( + '#(alert|prompt|confirm|cmd|passthru|eval|exec|expression|system|fopen|fsockopen|file|file_get_contents|readfile|unlink)(\s*)\((.*?)\)#si', + '\\1\\2(\\3)', + $str + ); + + // Same thing, but for "tag functions" (e.g. eval`some code`) + // See https://github.com/bcit-ci/CodeIgniter/issues/5420 + $str = preg_replace( + '#(alert|prompt|confirm|cmd|passthru|eval|exec|expression|system|fopen|fsockopen|file|file_get_contents|readfile|unlink)(\s*)`(.*?)`#si', + '\\1\\2`\\3`', + $str + ); + + // Final clean up + // This adds a bit of extra precaution in case + // something got through the above filters + $str = $this->_do_never_allowed($str); + + /* + * Images are Handled in a Special Way + * - Essentially, we want to know that after all of the character + * conversion is done whether any unwanted, likely XSS, code was found. + * If not, we return TRUE, as the image is clean. + * However, if the string post-conversion does not matched the + * string post-removal of XSS, then it fails, as there was unwanted XSS + * code found and removed/changed during processing. + */ + if ($is_image === TRUE) + { + return ($str === $converted_string); + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * XSS Hash + * + * Generates the XSS hash if needed and returns it. + * + * @see CI_Security::$_xss_hash + * @return string XSS hash + */ + public function xss_hash() + { + if ($this->_xss_hash === NULL) + { + $rand = $this->get_random_bytes(16); + $this->_xss_hash = ($rand === FALSE) + ? md5(uniqid(mt_rand(), TRUE)) + : bin2hex($rand); + } + + return $this->_xss_hash; + } + + // -------------------------------------------------------------------- + + /** + * Get random bytes + * + * @param int $length Output length + * @return string + */ + public function get_random_bytes($length) + { + if (empty($length) OR ! ctype_digit((string) $length)) + { + return FALSE; + } + + if (function_exists('random_bytes')) + { + try + { + // The cast is required to avoid TypeError + return random_bytes((int) $length); + } + catch (Exception $e) + { + // If random_bytes() can't do the job, we can't either ... + // There's no point in using fallbacks. + log_message('error', $e->getMessage()); + return FALSE; + } + } + + // Unfortunately, none of the following PRNGs is guaranteed to exist ... + if (defined('MCRYPT_DEV_URANDOM') && ($output = mcrypt_create_iv($length, MCRYPT_DEV_URANDOM)) !== FALSE) + { + return $output; + } + + if (is_readable('/dev/urandom') && ($fp = fopen('/dev/urandom', 'rb')) !== FALSE) + { + // Try not to waste entropy ... + is_php('5.4') && stream_set_chunk_size($fp, $length); + $output = fread($fp, $length); + fclose($fp); + if ($output !== FALSE) + { + return $output; + } + } + + if (function_exists('openssl_random_pseudo_bytes')) + { + return openssl_random_pseudo_bytes($length); + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * HTML Entities Decode + * + * A replacement for html_entity_decode() + * + * The reason we are not using html_entity_decode() by itself is because + * while it is not technically correct to leave out the semicolon + * at the end of an entity most browsers will still interpret the entity + * correctly. html_entity_decode() does not convert entities without + * semicolons, so we are left with our own little solution here. Bummer. + * + * @link http://php.net/html-entity-decode + * + * @param string $str Input + * @param string $charset Character set + * @return string + */ + public function entity_decode($str, $charset = NULL) + { + if (strpos($str, '&') === FALSE) + { + return $str; + } + + static $_entities; + + isset($charset) OR $charset = $this->charset; + $flag = is_php('5.4') + ? ENT_COMPAT | ENT_HTML5 + : ENT_COMPAT; + + if ( ! isset($_entities)) + { + $_entities = array_map('strtolower', get_html_translation_table(HTML_ENTITIES, $flag, $charset)); + + // If we're not on PHP 5.4+, add the possibly dangerous HTML 5 + // entities to the array manually + if ($flag === ENT_COMPAT) + { + $_entities[':'] = ':'; + $_entities['('] = '('; + $_entities[')'] = ')'; + $_entities["\n"] = ' '; + $_entities["\t"] = ' '; + } + } + + do + { + $str_compare = $str; + + // Decode standard entities, avoiding false positives + if (preg_match_all('/&[a-z]{2,}(?![a-z;])/i', $str, $matches)) + { + $replace = array(); + $matches = array_unique(array_map('strtolower', $matches[0])); + foreach ($matches as &$match) + { + if (($char = array_search($match.';', $_entities, TRUE)) !== FALSE) + { + $replace[$match] = $char; + } + } + + $str = str_replace(array_keys($replace), array_values($replace), $str); + } + + // Decode numeric & UTF16 two byte entities + $str = html_entity_decode( + preg_replace('/(&#(?:x0*[0-9a-f]{2,5}(?![0-9a-f;])|(?:0*\d{2,4}(?![0-9;]))))/iS', '$1;', $str), + $flag, + $charset + ); + + if ($flag === ENT_COMPAT) + { + $str = str_replace(array_values($_entities), array_keys($_entities), $str); + } + } + while ($str_compare !== $str); + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Sanitize Filename + * + * @param string $str Input file name + * @param bool $relative_path Whether to preserve paths + * @return string + */ + public function sanitize_filename($str, $relative_path = FALSE) + { + $bad = $this->filename_bad_chars; + + if ( ! $relative_path) + { + $bad[] = './'; + $bad[] = '/'; + } + + $str = remove_invisible_characters($str, FALSE); + + do + { + $old = $str; + $str = str_replace($bad, '', $str); + } + while ($old !== $str); + + return stripslashes($str); + } + + // ---------------------------------------------------------------- + + /** + * Strip Image Tags + * + * @param string $str + * @return string + */ + public function strip_image_tags($str) + { + return preg_replace( + array( + '##i', + '#`]+)).*?\>#i' + ), + '\\2', + $str + ); + } + + // ---------------------------------------------------------------- + + /** + * URL-decode taking spaces into account + * + * @see https://github.com/bcit-ci/CodeIgniter/issues/4877 + * @param array $matches + * @return string + */ + protected function _urldecodespaces($matches) + { + $input = $matches[0]; + $nospaces = preg_replace('#\s+#', '', $input); + return ($nospaces === $input) + ? $input + : rawurldecode($nospaces); + } + + // ---------------------------------------------------------------- + + /** + * Compact Exploded Words + * + * Callback method for xss_clean() to remove whitespace from + * things like 'j a v a s c r i p t'. + * + * @used-by CI_Security::xss_clean() + * @param array $matches + * @return string + */ + protected function _compact_exploded_words($matches) + { + return preg_replace('/\s+/s', '', $matches[1]).$matches[2]; + } + + // -------------------------------------------------------------------- + + /** + * Sanitize Naughty HTML + * + * Callback method for xss_clean() to remove naughty HTML elements. + * + * @used-by CI_Security::xss_clean() + * @param array $matches + * @return string + */ + protected function _sanitize_naughty_html($matches) + { + static $naughty_tags = array( + 'alert', 'area', 'prompt', 'confirm', 'applet', 'audio', 'basefont', 'base', 'behavior', 'bgsound', + 'blink', 'body', 'embed', 'expression', 'form', 'frameset', 'frame', 'head', 'html', 'ilayer', + 'iframe', 'input', 'button', 'select', 'isindex', 'layer', 'link', 'meta', 'keygen', 'object', + 'plaintext', 'style', 'script', 'textarea', 'title', 'math', 'video', 'svg', 'xml', 'xss' + ); + + static $evil_attributes = array( + 'on\w+', 'style', 'xmlns', 'formaction', 'form', 'xlink:href', 'FSCommand', 'seekSegmentTime' + ); + + // First, escape unclosed tags + if (empty($matches['closeTag'])) + { + return '<'.$matches[1]; + } + // Is the element that we caught naughty? If so, escape it + elseif (in_array(strtolower($matches['tagName']), $naughty_tags, TRUE)) + { + return '<'.$matches[1].'>'; + } + // For other tags, see if their attributes are "evil" and strip those + elseif (isset($matches['attributes'])) + { + // We'll store the already filtered attributes here + $attributes = array(); + + // Attribute-catching pattern + $attributes_pattern = '#' + .'(?[^\s\042\047>/=]+)' // attribute characters + // optional attribute-value + .'(?:\s*=(?[^\s\042\047=><`]+|\s*\042[^\042]*\042|\s*\047[^\047]*\047|\s*(?U:[^\s\042\047=><`]*)))' // attribute-value separator + .'#i'; + + // Blacklist pattern for evil attribute names + $is_evil_pattern = '#^('.implode('|', $evil_attributes).')$#i'; + + // Each iteration filters a single attribute + do + { + // Strip any non-alpha characters that may precede an attribute. + // Browsers often parse these incorrectly and that has been a + // of numerous XSS issues we've had. + $matches['attributes'] = preg_replace('#^[^a-z]+#i', '', $matches['attributes']); + + if ( ! preg_match($attributes_pattern, $matches['attributes'], $attribute, PREG_OFFSET_CAPTURE)) + { + // No (valid) attribute found? Discard everything else inside the tag + break; + } + + if ( + // Is it indeed an "evil" attribute? + preg_match($is_evil_pattern, $attribute['name'][0]) + // Or does it have an equals sign, but no value and not quoted? Strip that too! + OR (trim($attribute['value'][0]) === '') + ) + { + $attributes[] = 'xss=removed'; + } + else + { + $attributes[] = $attribute[0][0]; + } + + $matches['attributes'] = substr($matches['attributes'], $attribute[0][1] + strlen($attribute[0][0])); + } + while ($matches['attributes'] !== ''); + + $attributes = empty($attributes) + ? '' + : ' '.implode(' ', $attributes); + return '<'.$matches['slash'].$matches['tagName'].$attributes.'>'; + } + + return $matches[0]; + } + + // -------------------------------------------------------------------- + + /** + * JS Link Removal + * + * Callback method for xss_clean() to sanitize links. + * + * This limits the PCRE backtracks, making it more performance friendly + * and prevents PREG_BACKTRACK_LIMIT_ERROR from being triggered in + * PHP 5.2+ on link-heavy strings. + * + * @used-by CI_Security::xss_clean() + * @param array $match + * @return string + */ + protected function _js_link_removal($match) + { + return str_replace( + $match[1], + preg_replace( + '#href=.*?(?:(?:alert|prompt|confirm)(?:\(|&\#40;|`|&\#96;)|javascript:|livescript:|mocha:|charset=|window\.|\(?document\)?\.|\.cookie|_filter_attributes($match[1]) + ), + $match[0] + ); + } + + // -------------------------------------------------------------------- + + /** + * JS Image Removal + * + * Callback method for xss_clean() to sanitize image tags. + * + * This limits the PCRE backtracks, making it more performance friendly + * and prevents PREG_BACKTRACK_LIMIT_ERROR from being triggered in + * PHP 5.2+ on image tag heavy strings. + * + * @used-by CI_Security::xss_clean() + * @param array $match + * @return string + */ + protected function _js_img_removal($match) + { + return str_replace( + $match[1], + preg_replace( + '#src=.*?(?:(?:alert|prompt|confirm|eval)(?:\(|&\#40;|`|&\#96;)|javascript:|livescript:|mocha:|charset=|window\.|\(?document\)?\.|\.cookie|_filter_attributes($match[1]) + ), + $match[0] + ); + } + + // -------------------------------------------------------------------- + + /** + * Attribute Conversion + * + * @used-by CI_Security::xss_clean() + * @param array $match + * @return string + */ + protected function _convert_attribute($match) + { + return str_replace(array('>', '<', '\\'), array('>', '<', '\\\\'), $match[0]); + } + + // -------------------------------------------------------------------- + + /** + * Filter Attributes + * + * Filters tag attributes for consistency and safety. + * + * @used-by CI_Security::_js_img_removal() + * @used-by CI_Security::_js_link_removal() + * @param string $str + * @return string + */ + protected function _filter_attributes($str) + { + $out = ''; + if (preg_match_all('#\s*[a-z\-]+\s*=\s*(\042|\047)([^\\1]*?)\\1#is', $str, $matches)) + { + foreach ($matches[0] as $match) + { + $out .= preg_replace('#/\*.*?\*/#s', '', $match); + } + } + + return $out; + } + + // -------------------------------------------------------------------- + + /** + * HTML Entity Decode Callback + * + * @used-by CI_Security::xss_clean() + * @param array $match + * @return string + */ + protected function _decode_entity($match) + { + // Protect GET variables in URLs + // 901119URL5918AMP18930PROTECT8198 + $match = preg_replace('|\&([a-z\_0-9\-]+)\=([a-z\_0-9\-/]+)|i', $this->xss_hash().'\\1=\\2', $match[0]); + + // Decode, then un-protect URL GET vars + return str_replace( + $this->xss_hash(), + '&', + $this->entity_decode($match, $this->charset) + ); + } + + // -------------------------------------------------------------------- + + /** + * Do Never Allowed + * + * @used-by CI_Security::xss_clean() + * @param string + * @return string + */ + protected function _do_never_allowed($str) + { + $str = str_replace(array_keys($this->_never_allowed_str), $this->_never_allowed_str, $str); + + foreach ($this->_never_allowed_regex as $regex) + { + $str = preg_replace('#'.$regex.'#is', '[removed]', $str); + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Set CSRF Hash and Cookie + * + * @return string + */ + protected function _csrf_set_hash() + { + if ($this->_csrf_hash === NULL) + { + // If the cookie exists we will use its value. + // We don't necessarily want to regenerate it with + // each page load since a page could contain embedded + // sub-pages causing this feature to fail + if (isset($_COOKIE[$this->_csrf_cookie_name]) && is_string($_COOKIE[$this->_csrf_cookie_name]) + && preg_match('#^[0-9a-f]{32}$#iS', $_COOKIE[$this->_csrf_cookie_name]) === 1) + { + return $this->_csrf_hash = $_COOKIE[$this->_csrf_cookie_name]; + } + + $rand = $this->get_random_bytes(16); + $this->_csrf_hash = ($rand === FALSE) + ? md5(uniqid(mt_rand(), TRUE)) + : bin2hex($rand); + } + + return $this->_csrf_hash; + } + +} diff --git a/system/core/URI.php b/system/core/URI.php new file mode 100644 index 0000000..6a55439 --- /dev/null +++ b/system/core/URI.php @@ -0,0 +1,644 @@ +config =& load_class('Config', 'core'); + + // If query strings are enabled, we don't need to parse any segments. + // However, they don't make sense under CLI. + if (is_cli() OR $this->config->item('enable_query_strings') !== TRUE) + { + $this->_permitted_uri_chars = $this->config->item('permitted_uri_chars'); + + // If it's a CLI request, ignore the configuration + if (is_cli()) + { + $uri = $this->_parse_argv(); + } + else + { + $protocol = $this->config->item('uri_protocol'); + empty($protocol) && $protocol = 'REQUEST_URI'; + + switch ($protocol) + { + case 'AUTO': // For BC purposes only + case 'REQUEST_URI': + $uri = $this->_parse_request_uri(); + break; + case 'QUERY_STRING': + $uri = $this->_parse_query_string(); + break; + case 'PATH_INFO': + default: + $uri = isset($_SERVER[$protocol]) + ? $_SERVER[$protocol] + : $this->_parse_request_uri(); + break; + } + } + + $this->_set_uri_string($uri); + } + + log_message('info', 'URI Class Initialized'); + } + + // -------------------------------------------------------------------- + + /** + * Set URI String + * + * @param string $str + * @return void + */ + protected function _set_uri_string($str) + { + // Filter out control characters and trim slashes + $this->uri_string = trim(remove_invisible_characters($str, FALSE), '/'); + + if ($this->uri_string !== '') + { + // Remove the URL suffix, if present + if (($suffix = (string) $this->config->item('url_suffix')) !== '') + { + $slen = strlen($suffix); + + if (substr($this->uri_string, -$slen) === $suffix) + { + $this->uri_string = substr($this->uri_string, 0, -$slen); + } + } + + $this->segments[0] = NULL; + // Populate the segments array + foreach (explode('/', trim($this->uri_string, '/')) as $val) + { + $val = trim($val); + // Filter segments for security + $this->filter_uri($val); + + if ($val !== '') + { + $this->segments[] = $val; + } + } + + unset($this->segments[0]); + } + } + + // -------------------------------------------------------------------- + + /** + * Parse REQUEST_URI + * + * Will parse REQUEST_URI and automatically detect the URI from it, + * while fixing the query string if necessary. + * + * @return string + */ + protected function _parse_request_uri() + { + if ( ! isset($_SERVER['REQUEST_URI'], $_SERVER['SCRIPT_NAME'])) + { + return ''; + } + + // parse_url() returns false if no host is present, but the path or query string + // contains a colon followed by a number + $uri = parse_url('http://dummy'.$_SERVER['REQUEST_URI']); + $query = isset($uri['query']) ? $uri['query'] : ''; + $uri = isset($uri['path']) ? $uri['path'] : ''; + + if (isset($_SERVER['SCRIPT_NAME'][0])) + { + if (strpos($uri, $_SERVER['SCRIPT_NAME']) === 0) + { + $uri = (string) substr($uri, strlen($_SERVER['SCRIPT_NAME'])); + } + elseif (strpos($uri, dirname($_SERVER['SCRIPT_NAME'])) === 0) + { + $uri = (string) substr($uri, strlen(dirname($_SERVER['SCRIPT_NAME']))); + } + } + + // This section ensures that even on servers that require the URI to be in the query string (Nginx) a correct + // URI is found, and also fixes the QUERY_STRING server var and $_GET array. + if (trim($uri, '/') === '' && strncmp($query, '/', 1) === 0) + { + $query = explode('?', $query, 2); + $uri = $query[0]; + $_SERVER['QUERY_STRING'] = isset($query[1]) ? $query[1] : ''; + } + else + { + $_SERVER['QUERY_STRING'] = $query; + } + + parse_str($_SERVER['QUERY_STRING'], $_GET); + + if ($uri === '/' OR $uri === '') + { + return '/'; + } + + // Do some final cleaning of the URI and return it + return $this->_remove_relative_directory($uri); + } + + // -------------------------------------------------------------------- + + /** + * Parse QUERY_STRING + * + * Will parse QUERY_STRING and automatically detect the URI from it. + * + * @return string + */ + protected function _parse_query_string() + { + $uri = isset($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : @getenv('QUERY_STRING'); + + if (trim($uri, '/') === '') + { + return ''; + } + elseif (strncmp($uri, '/', 1) === 0) + { + $uri = explode('?', $uri, 2); + $_SERVER['QUERY_STRING'] = isset($uri[1]) ? $uri[1] : ''; + $uri = $uri[0]; + } + + parse_str($_SERVER['QUERY_STRING'], $_GET); + + return $this->_remove_relative_directory($uri); + } + + // -------------------------------------------------------------------- + + /** + * Parse CLI arguments + * + * Take each command line argument and assume it is a URI segment. + * + * @return string + */ + protected function _parse_argv() + { + $args = array_slice($_SERVER['argv'], 1); + return $args ? implode('/', $args) : ''; + } + + // -------------------------------------------------------------------- + + /** + * Remove relative directory (../) and multi slashes (///) + * + * Do some final cleaning of the URI and return it, currently only used in self::_parse_request_uri() + * + * @param string $uri + * @return string + */ + protected function _remove_relative_directory($uri) + { + $uris = array(); + $tok = strtok($uri, '/'); + while ($tok !== FALSE) + { + if (( ! empty($tok) OR $tok === '0') && $tok !== '..') + { + $uris[] = $tok; + } + $tok = strtok('/'); + } + + return implode('/', $uris); + } + + // -------------------------------------------------------------------- + + /** + * Filter URI + * + * Filters segments for malicious characters. + * + * @param string $str + * @return void + */ + public function filter_uri(&$str) + { + if ( ! empty($str) && ! empty($this->_permitted_uri_chars) && ! preg_match('/^['.$this->_permitted_uri_chars.']+$/i'.(UTF8_ENABLED ? 'u' : ''), $str)) + { + show_error('The URI you submitted has disallowed characters.', 400); + } + } + + // -------------------------------------------------------------------- + + /** + * Fetch URI Segment + * + * @see CI_URI::$segments + * @param int $n Index + * @param mixed $no_result What to return if the segment index is not found + * @return mixed + */ + public function segment($n, $no_result = NULL) + { + return isset($this->segments[$n]) ? $this->segments[$n] : $no_result; + } + + // -------------------------------------------------------------------- + + /** + * Fetch URI "routed" Segment + * + * Returns the re-routed URI segment (assuming routing rules are used) + * based on the index provided. If there is no routing, will return + * the same result as CI_URI::segment(). + * + * @see CI_URI::$rsegments + * @see CI_URI::segment() + * @param int $n Index + * @param mixed $no_result What to return if the segment index is not found + * @return mixed + */ + public function rsegment($n, $no_result = NULL) + { + return isset($this->rsegments[$n]) ? $this->rsegments[$n] : $no_result; + } + + // -------------------------------------------------------------------- + + /** + * URI to assoc + * + * Generates an associative array of URI data starting at the supplied + * segment index. For example, if this is your URI: + * + * example.com/user/search/name/joe/location/UK/gender/male + * + * You can use this method to generate an array with this prototype: + * + * array ( + * name => joe + * location => UK + * gender => male + * ) + * + * @param int $n Index (default: 3) + * @param array $default Default values + * @return array + */ + public function uri_to_assoc($n = 3, $default = array()) + { + return $this->_uri_to_assoc($n, $default, 'segment'); + } + + // -------------------------------------------------------------------- + + /** + * Routed URI to assoc + * + * Identical to CI_URI::uri_to_assoc(), only it uses the re-routed + * segment array. + * + * @see CI_URI::uri_to_assoc() + * @param int $n Index (default: 3) + * @param array $default Default values + * @return array + */ + public function ruri_to_assoc($n = 3, $default = array()) + { + return $this->_uri_to_assoc($n, $default, 'rsegment'); + } + + // -------------------------------------------------------------------- + + /** + * Internal URI-to-assoc + * + * Generates a key/value pair from the URI string or re-routed URI string. + * + * @used-by CI_URI::uri_to_assoc() + * @used-by CI_URI::ruri_to_assoc() + * @param int $n Index (default: 3) + * @param array $default Default values + * @param string $which Array name ('segment' or 'rsegment') + * @return array + */ + protected function _uri_to_assoc($n = 3, $default = array(), $which = 'segment') + { + if ( ! is_numeric($n)) + { + return $default; + } + + if (isset($this->keyval[$which], $this->keyval[$which][$n])) + { + return $this->keyval[$which][$n]; + } + + $total_segments = "total_{$which}s"; + $segment_array = "{$which}_array"; + + if ($this->$total_segments() < $n) + { + return (count($default) === 0) + ? array() + : array_fill_keys($default, NULL); + } + + $segments = array_slice($this->$segment_array(), ($n - 1)); + $i = 0; + $lastval = ''; + $retval = array(); + foreach ($segments as $seg) + { + if ($i % 2) + { + $retval[$lastval] = $seg; + } + else + { + $retval[$seg] = NULL; + $lastval = $seg; + } + + $i++; + } + + if (count($default) > 0) + { + foreach ($default as $val) + { + if ( ! array_key_exists($val, $retval)) + { + $retval[$val] = NULL; + } + } + } + + // Cache the array for reuse + isset($this->keyval[$which]) OR $this->keyval[$which] = array(); + $this->keyval[$which][$n] = $retval; + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Assoc to URI + * + * Generates a URI string from an associative array. + * + * @param array $array Input array of key/value pairs + * @return string URI string + */ + public function assoc_to_uri($array) + { + $temp = array(); + foreach ((array) $array as $key => $val) + { + $temp[] = $key; + $temp[] = $val; + } + + return implode('/', $temp); + } + + // -------------------------------------------------------------------- + + /** + * Slash segment + * + * Fetches an URI segment with a slash. + * + * @param int $n Index + * @param string $where Where to add the slash ('trailing' or 'leading') + * @return string + */ + public function slash_segment($n, $where = 'trailing') + { + return $this->_slash_segment($n, $where, 'segment'); + } + + // -------------------------------------------------------------------- + + /** + * Slash routed segment + * + * Fetches an URI routed segment with a slash. + * + * @param int $n Index + * @param string $where Where to add the slash ('trailing' or 'leading') + * @return string + */ + public function slash_rsegment($n, $where = 'trailing') + { + return $this->_slash_segment($n, $where, 'rsegment'); + } + + // -------------------------------------------------------------------- + + /** + * Internal Slash segment + * + * Fetches an URI Segment and adds a slash to it. + * + * @used-by CI_URI::slash_segment() + * @used-by CI_URI::slash_rsegment() + * + * @param int $n Index + * @param string $where Where to add the slash ('trailing' or 'leading') + * @param string $which Array name ('segment' or 'rsegment') + * @return string + */ + protected function _slash_segment($n, $where = 'trailing', $which = 'segment') + { + $leading = $trailing = '/'; + + if ($where === 'trailing') + { + $leading = ''; + } + elseif ($where === 'leading') + { + $trailing = ''; + } + + return $leading.$this->$which($n).$trailing; + } + + // -------------------------------------------------------------------- + + /** + * Segment Array + * + * @return array CI_URI::$segments + */ + public function segment_array() + { + return $this->segments; + } + + // -------------------------------------------------------------------- + + /** + * Routed Segment Array + * + * @return array CI_URI::$rsegments + */ + public function rsegment_array() + { + return $this->rsegments; + } + + // -------------------------------------------------------------------- + + /** + * Total number of segments + * + * @return int + */ + public function total_segments() + { + return count($this->segments); + } + + // -------------------------------------------------------------------- + + /** + * Total number of routed segments + * + * @return int + */ + public function total_rsegments() + { + return count($this->rsegments); + } + + // -------------------------------------------------------------------- + + /** + * Fetch URI string + * + * @return string CI_URI::$uri_string + */ + public function uri_string() + { + return $this->uri_string; + } + + // -------------------------------------------------------------------- + + /** + * Fetch Re-routed URI string + * + * @return string + */ + public function ruri_string() + { + return ltrim(load_class('Router', 'core')->directory, '/').implode('/', $this->rsegments); + } + +} diff --git a/system/core/Utf8.php b/system/core/Utf8.php new file mode 100644 index 0000000..0547223 --- /dev/null +++ b/system/core/Utf8.php @@ -0,0 +1,165 @@ +is_ascii($str) === FALSE) + { + if (MB_ENABLED) + { + $str = mb_convert_encoding($str, 'UTF-8', 'UTF-8'); + } + elseif (ICONV_ENABLED) + { + $str = @iconv('UTF-8', 'UTF-8//IGNORE', $str); + } + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Remove ASCII control characters + * + * Removes all ASCII control characters except horizontal tabs, + * line feeds, and carriage returns, as all others can cause + * problems in XML. + * + * @param string $str String to clean + * @return string + */ + public function safe_ascii_for_xml($str) + { + return remove_invisible_characters($str, FALSE); + } + + // -------------------------------------------------------------------- + + /** + * Convert to UTF-8 + * + * Attempts to convert a string to UTF-8. + * + * @param string $str Input string + * @param string $encoding Input encoding + * @return string $str encoded in UTF-8 or FALSE on failure + */ + public function convert_to_utf8($str, $encoding) + { + if (MB_ENABLED) + { + return mb_convert_encoding($str, 'UTF-8', $encoding); + } + elseif (ICONV_ENABLED) + { + return @iconv($encoding, 'UTF-8', $str); + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Is ASCII? + * + * Tests if a string is standard 7-bit ASCII or not. + * + * @param string $str String to check + * @return bool + */ + public function is_ascii($str) + { + return (preg_match('/[^\x00-\x7F]/S', $str) === 0); + } + +} diff --git a/system/core/compat/hash.php b/system/core/compat/hash.php new file mode 100644 index 0000000..3fe3b85 --- /dev/null +++ b/system/core/compat/hash.php @@ -0,0 +1,255 @@ + 32, + 'haval128,3' => 128, + 'haval160,3' => 128, + 'haval192,3' => 128, + 'haval224,3' => 128, + 'haval256,3' => 128, + 'haval128,4' => 128, + 'haval160,4' => 128, + 'haval192,4' => 128, + 'haval224,4' => 128, + 'haval256,4' => 128, + 'haval128,5' => 128, + 'haval160,5' => 128, + 'haval192,5' => 128, + 'haval224,5' => 128, + 'haval256,5' => 128, + 'md2' => 16, + 'md4' => 64, + 'md5' => 64, + 'ripemd128' => 64, + 'ripemd160' => 64, + 'ripemd256' => 64, + 'ripemd320' => 64, + 'salsa10' => 64, + 'salsa20' => 64, + 'sha1' => 64, + 'sha224' => 64, + 'sha256' => 64, + 'sha384' => 128, + 'sha512' => 128, + 'snefru' => 32, + 'snefru256' => 32, + 'tiger128,3' => 64, + 'tiger160,3' => 64, + 'tiger192,3' => 64, + 'tiger128,4' => 64, + 'tiger160,4' => 64, + 'tiger192,4' => 64, + 'whirlpool' => 64 + ); + + if (isset($block_sizes[$algo], $password[$block_sizes[$algo]])) + { + $password = hash($algo, $password, TRUE); + } + + $hash = ''; + // Note: Blocks are NOT 0-indexed + for ($bc = (int) ceil($length / $hash_length), $bi = 1; $bi <= $bc; $bi++) + { + $key = $derived_key = hash_hmac($algo, $salt.pack('N', $bi), $password, TRUE); + for ($i = 1; $i < $iterations; $i++) + { + $derived_key ^= $key = hash_hmac($algo, $key, $password, TRUE); + } + + $hash .= $derived_key; + } + + // This is not RFC-compatible, but we're aiming for natural PHP compatibility + if ( ! $raw_output) + { + $hash = bin2hex($hash); + } + + return defined('MB_OVERLOAD_STRING') + ? mb_substr($hash, 0, $length, '8bit') + : substr($hash, 0, $length); + } +} diff --git a/system/core/compat/index.html b/system/core/compat/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/system/core/compat/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

    Directory access is forbidden.

    + + + diff --git a/system/core/compat/mbstring.php b/system/core/compat/mbstring.php new file mode 100644 index 0000000..1c49d18 --- /dev/null +++ b/system/core/compat/mbstring.php @@ -0,0 +1,150 @@ + 0, 'algoName' => 'unknown', 'options' => array()) + : array('algo' => 1, 'algoName' => 'bcrypt', 'options' => array('cost' => $hash)); + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('password_hash')) +{ + /** + * password_hash() + * + * @link http://php.net/password_hash + * @param string $password + * @param int $algo + * @param array $options + * @return mixed + */ + function password_hash($password, $algo, array $options = array()) + { + static $func_overload; + isset($func_overload) OR $func_overload = (extension_loaded('mbstring') && ini_get('mbstring.func_overload')); + + if ($algo !== 1) + { + trigger_error('password_hash(): Unknown hashing algorithm: '.(int) $algo, E_USER_WARNING); + return NULL; + } + + if (isset($options['cost']) && ($options['cost'] < 4 OR $options['cost'] > 31)) + { + trigger_error('password_hash(): Invalid bcrypt cost parameter specified: '.(int) $options['cost'], E_USER_WARNING); + return NULL; + } + + if (isset($options['salt']) && ($saltlen = ($func_overload ? mb_strlen($options['salt'], '8bit') : strlen($options['salt']))) < 22) + { + trigger_error('password_hash(): Provided salt is too short: '.$saltlen.' expecting 22', E_USER_WARNING); + return NULL; + } + elseif ( ! isset($options['salt'])) + { + if (function_exists('random_bytes')) + { + try + { + $options['salt'] = random_bytes(16); + } + catch (Exception $e) + { + log_message('error', 'compat/password: Error while trying to use random_bytes(): '.$e->getMessage()); + return FALSE; + } + } + elseif (defined('MCRYPT_DEV_URANDOM')) + { + $options['salt'] = mcrypt_create_iv(16, MCRYPT_DEV_URANDOM); + } + elseif (DIRECTORY_SEPARATOR === '/' && (is_readable($dev = '/dev/arandom') OR is_readable($dev = '/dev/urandom'))) + { + if (($fp = fopen($dev, 'rb')) === FALSE) + { + log_message('error', 'compat/password: Unable to open '.$dev.' for reading.'); + return FALSE; + } + + // Try not to waste entropy ... + is_php('5.4') && stream_set_chunk_size($fp, 16); + + $options['salt'] = ''; + for ($read = 0; $read < 16; $read = ($func_overload) ? mb_strlen($options['salt'], '8bit') : strlen($options['salt'])) + { + if (($read = fread($fp, 16 - $read)) === FALSE) + { + log_message('error', 'compat/password: Error while reading from '.$dev.'.'); + return FALSE; + } + $options['salt'] .= $read; + } + + fclose($fp); + } + elseif (function_exists('openssl_random_pseudo_bytes')) + { + $is_secure = NULL; + $options['salt'] = openssl_random_pseudo_bytes(16, $is_secure); + if ($is_secure !== TRUE) + { + log_message('error', 'compat/password: openssl_random_pseudo_bytes() set the $cryto_strong flag to FALSE'); + return FALSE; + } + } + else + { + log_message('error', 'compat/password: No CSPRNG available.'); + return FALSE; + } + + $options['salt'] = str_replace('+', '.', rtrim(base64_encode($options['salt']), '=')); + } + elseif ( ! preg_match('#^[a-zA-Z0-9./]+$#D', $options['salt'])) + { + $options['salt'] = str_replace('+', '.', rtrim(base64_encode($options['salt']), '=')); + } + + isset($options['cost']) OR $options['cost'] = 10; + + return (strlen($password = crypt($password, sprintf('$2y$%02d$%s', $options['cost'], $options['salt']))) === 60) + ? $password + : FALSE; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('password_needs_rehash')) +{ + /** + * password_needs_rehash() + * + * @link http://php.net/password_needs_rehash + * @param string $hash + * @param int $algo + * @param array $options + * @return bool + */ + function password_needs_rehash($hash, $algo, array $options = array()) + { + $info = password_get_info($hash); + + if ($algo !== $info['algo']) + { + return TRUE; + } + elseif ($algo === 1) + { + $options['cost'] = isset($options['cost']) ? (int) $options['cost'] : 10; + return ($info['options']['cost'] !== $options['cost']); + } + + // Odd at first glance, but according to a comment in PHP's own unit tests, + // because it is an unknown algorithm - it's valid and therefore doesn't + // need rehashing. + return FALSE; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('password_verify')) +{ + /** + * password_verify() + * + * @link http://php.net/password_verify + * @param string $password + * @param string $hash + * @return bool + */ + function password_verify($password, $hash) + { + if (strlen($hash) !== 60 OR strlen($password = crypt($password, $hash)) !== 60) + { + return FALSE; + } + + $compare = 0; + for ($i = 0; $i < 60; $i++) + { + $compare |= (ord($password[$i]) ^ ord($hash[$i])); + } + + return ($compare === 0); + } +} diff --git a/system/core/compat/standard.php b/system/core/compat/standard.php new file mode 100644 index 0000000..18b1281 --- /dev/null +++ b/system/core/compat/standard.php @@ -0,0 +1,183 @@ + + + + 403 Forbidden + + + +

    Directory access is forbidden.

    + + + diff --git a/system/database/DB.php b/system/database/DB.php new file mode 100644 index 0000000..23581af --- /dev/null +++ b/system/database/DB.php @@ -0,0 +1,219 @@ +load->get_package_paths() as $path) + { + if ($path !== APPPATH) + { + if (file_exists($file_path = $path.'config/'.ENVIRONMENT.'/database.php')) + { + include($file_path); + } + elseif (file_exists($file_path = $path.'config/database.php')) + { + include($file_path); + } + } + } + } + + if ( ! isset($db) OR count($db) === 0) + { + show_error('No database connection settings were found in the database config file.'); + } + + if ($params !== '') + { + $active_group = $params; + } + + if ( ! isset($active_group)) + { + show_error('You have not specified a database connection group via $active_group in your config/database.php file.'); + } + elseif ( ! isset($db[$active_group])) + { + show_error('You have specified an invalid database connection group ('.$active_group.') in your config/database.php file.'); + } + + $params = $db[$active_group]; + } + elseif (is_string($params)) + { + /** + * Parse the URL from the DSN string + * Database settings can be passed as discreet + * parameters or as a data source name in the first + * parameter. DSNs must have this prototype: + * $dsn = 'driver://username:password@hostname/database'; + */ + if (($dsn = @parse_url($params)) === FALSE) + { + show_error('Invalid DB Connection String'); + } + + $params = array( + 'dbdriver' => $dsn['scheme'], + 'hostname' => isset($dsn['host']) ? rawurldecode($dsn['host']) : '', + 'port' => isset($dsn['port']) ? rawurldecode($dsn['port']) : '', + 'username' => isset($dsn['user']) ? rawurldecode($dsn['user']) : '', + 'password' => isset($dsn['pass']) ? rawurldecode($dsn['pass']) : '', + 'database' => isset($dsn['path']) ? rawurldecode(substr($dsn['path'], 1)) : '' + ); + + // Were additional config items set? + if (isset($dsn['query'])) + { + parse_str($dsn['query'], $extra); + + foreach ($extra as $key => $val) + { + if (is_string($val) && in_array(strtoupper($val), array('TRUE', 'FALSE', 'NULL'))) + { + $val = var_export($val, TRUE); + } + + $params[$key] = $val; + } + } + } + + // No DB specified yet? Beat them senseless... + if (empty($params['dbdriver'])) + { + show_error('You have not selected a database type to connect to.'); + } + + // Load the DB classes. Note: Since the query builder class is optional + // we need to dynamically create a class that extends proper parent class + // based on whether we're using the query builder class or not. + if ($query_builder_override !== NULL) + { + $query_builder = $query_builder_override; + } + // Backwards compatibility work-around for keeping the + // $active_record config variable working. Should be + // removed in v3.1 + elseif ( ! isset($query_builder) && isset($active_record)) + { + $query_builder = $active_record; + } + + require_once(BASEPATH.'database/DB_driver.php'); + + if ( ! isset($query_builder) OR $query_builder === TRUE) + { + require_once(BASEPATH.'database/DB_query_builder.php'); + if ( ! class_exists('CI_DB', FALSE)) + { + /** + * CI_DB + * + * Acts as an alias for both CI_DB_driver and CI_DB_query_builder. + * + * @see CI_DB_query_builder + * @see CI_DB_driver + */ + class CI_DB extends CI_DB_query_builder { } + } + } + elseif ( ! class_exists('CI_DB', FALSE)) + { + /** + * @ignore + */ + class CI_DB extends CI_DB_driver { } + } + + // Load the DB driver + $driver_file = BASEPATH.'database/drivers/'.$params['dbdriver'].'/'.$params['dbdriver'].'_driver.php'; + + file_exists($driver_file) OR show_error('Invalid DB driver'); + require_once($driver_file); + + // Instantiate the DB adapter + $driver = 'CI_DB_'.$params['dbdriver'].'_driver'; + $DB = new $driver($params); + + // Check for a subdriver + if ( ! empty($DB->subdriver)) + { + $driver_file = BASEPATH.'database/drivers/'.$DB->dbdriver.'/subdrivers/'.$DB->dbdriver.'_'.$DB->subdriver.'_driver.php'; + + if (file_exists($driver_file)) + { + require_once($driver_file); + $driver = 'CI_DB_'.$DB->dbdriver.'_'.$DB->subdriver.'_driver'; + $DB = new $driver($params); + } + } + + $DB->initialize(); + return $DB; +} diff --git a/system/database/DB_cache.php b/system/database/DB_cache.php new file mode 100644 index 0000000..d05ebb2 --- /dev/null +++ b/system/database/DB_cache.php @@ -0,0 +1,222 @@ +CI and load the file helper since we use it a lot + $this->CI =& get_instance(); + $this->db =& $db; + $this->CI->load->helper('file'); + + $this->check_path(); + } + + // -------------------------------------------------------------------- + + /** + * Set Cache Directory Path + * + * @param string $path Path to the cache directory + * @return bool + */ + public function check_path($path = '') + { + if ($path === '') + { + if ($this->db->cachedir === '') + { + return $this->db->cache_off(); + } + + $path = $this->db->cachedir; + } + + // Add a trailing slash to the path if needed + $path = realpath($path) + ? rtrim(realpath($path), DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR + : rtrim($path, '/').'/'; + + if ( ! is_dir($path)) + { + log_message('debug', 'DB cache path error: '.$path); + + // If the path is wrong we'll turn off caching + return $this->db->cache_off(); + } + + if ( ! is_really_writable($path)) + { + log_message('debug', 'DB cache dir not writable: '.$path); + + // If the path is not really writable we'll turn off caching + return $this->db->cache_off(); + } + + $this->db->cachedir = $path; + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Retrieve a cached query + * + * The URI being requested will become the name of the cache sub-folder. + * An MD5 hash of the SQL statement will become the cache file name. + * + * @param string $sql + * @return string + */ + public function read($sql) + { + $segment_one = ($this->CI->uri->segment(1) == FALSE) ? 'default' : $this->CI->uri->segment(1); + $segment_two = ($this->CI->uri->segment(2) == FALSE) ? 'index' : $this->CI->uri->segment(2); + $filepath = $this->db->cachedir.$segment_one.'+'.$segment_two.'/'.md5($sql); + + if ( ! is_file($filepath) OR FALSE === ($cachedata = file_get_contents($filepath))) + { + return FALSE; + } + + return unserialize($cachedata); + } + + // -------------------------------------------------------------------- + + /** + * Write a query to a cache file + * + * @param string $sql + * @param object $object + * @return bool + */ + public function write($sql, $object) + { + $segment_one = ($this->CI->uri->segment(1) == FALSE) ? 'default' : $this->CI->uri->segment(1); + $segment_two = ($this->CI->uri->segment(2) == FALSE) ? 'index' : $this->CI->uri->segment(2); + $dir_path = $this->db->cachedir.$segment_one.'+'.$segment_two.'/'; + $filename = md5($sql); + + if ( ! is_dir($dir_path) && ! @mkdir($dir_path, 0750)) + { + return FALSE; + } + + if (write_file($dir_path.$filename, serialize($object)) === FALSE) + { + return FALSE; + } + + chmod($dir_path.$filename, 0640); + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Delete cache files within a particular directory + * + * @param string $segment_one + * @param string $segment_two + * @return void + */ + public function delete($segment_one = '', $segment_two = '') + { + if ($segment_one === '') + { + $segment_one = ($this->CI->uri->segment(1) == FALSE) ? 'default' : $this->CI->uri->segment(1); + } + + if ($segment_two === '') + { + $segment_two = ($this->CI->uri->segment(2) == FALSE) ? 'index' : $this->CI->uri->segment(2); + } + + $dir_path = $this->db->cachedir.$segment_one.'+'.$segment_two.'/'; + delete_files($dir_path, TRUE); + } + + // -------------------------------------------------------------------- + + /** + * Delete all existing cache files + * + * @return void + */ + public function delete_all() + { + delete_files($this->db->cachedir, TRUE, TRUE); + } + +} diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php new file mode 100644 index 0000000..522f1bb --- /dev/null +++ b/system/database/DB_driver.php @@ -0,0 +1,1999 @@ + $val) + { + $this->$key = $val; + } + } + + log_message('info', 'Database Driver Class Initialized'); + } + + // -------------------------------------------------------------------- + + /** + * Initialize Database Settings + * + * @return bool + */ + public function initialize() + { + /* If an established connection is available, then there's + * no need to connect and select the database. + * + * Depending on the database driver, conn_id can be either + * boolean TRUE, a resource or an object. + */ + if ($this->conn_id) + { + return TRUE; + } + + // ---------------------------------------------------------------- + + // Connect to the database and set the connection ID + $this->conn_id = $this->db_connect($this->pconnect); + + // No connection resource? Check if there is a failover else throw an error + if ( ! $this->conn_id) + { + // Check if there is a failover set + if ( ! empty($this->failover) && is_array($this->failover)) + { + // Go over all the failovers + foreach ($this->failover as $failover) + { + // Replace the current settings with those of the failover + foreach ($failover as $key => $val) + { + $this->$key = $val; + } + + // Try to connect + $this->conn_id = $this->db_connect($this->pconnect); + + // If a connection is made break the foreach loop + if ($this->conn_id) + { + break; + } + } + } + + // We still don't have a connection? + if ( ! $this->conn_id) + { + log_message('error', 'Unable to connect to the database'); + + if ($this->db_debug) + { + $this->display_error('db_unable_to_connect'); + } + + return FALSE; + } + } + + // Now we set the character set and that's all + return $this->db_set_charset($this->char_set); + } + + // -------------------------------------------------------------------- + + /** + * DB connect + * + * This is just a dummy method that all drivers will override. + * + * @return mixed + */ + public function db_connect() + { + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Persistent database connection + * + * @return mixed + */ + public function db_pconnect() + { + return $this->db_connect(TRUE); + } + + // -------------------------------------------------------------------- + + /** + * Reconnect + * + * Keep / reestablish the db connection if no queries have been + * sent for a length of time exceeding the server's idle timeout. + * + * This is just a dummy method to allow drivers without such + * functionality to not declare it, while others will override it. + * + * @return void + */ + public function reconnect() + { + } + + // -------------------------------------------------------------------- + + /** + * Select database + * + * This is just a dummy method to allow drivers without such + * functionality to not declare it, while others will override it. + * + * @return bool + */ + public function db_select() + { + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Last error + * + * @return array + */ + public function error() + { + return array('code' => NULL, 'message' => NULL); + } + + // -------------------------------------------------------------------- + + /** + * Set client character set + * + * @param string + * @return bool + */ + public function db_set_charset($charset) + { + if (method_exists($this, '_db_set_charset') && ! $this->_db_set_charset($charset)) + { + log_message('error', 'Unable to set database connection charset: '.$charset); + + if ($this->db_debug) + { + $this->display_error('db_unable_to_set_charset', $charset); + } + + return FALSE; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * The name of the platform in use (mysql, mssql, etc...) + * + * @return string + */ + public function platform() + { + return $this->dbdriver; + } + + // -------------------------------------------------------------------- + + /** + * Database version number + * + * Returns a string containing the version of the database being used. + * Most drivers will override this method. + * + * @return string + */ + public function version() + { + if (isset($this->data_cache['version'])) + { + return $this->data_cache['version']; + } + + if (FALSE === ($sql = $this->_version())) + { + return ($this->db_debug) ? $this->display_error('db_unsupported_function') : FALSE; + } + + $query = $this->query($sql)->row(); + return $this->data_cache['version'] = $query->ver; + } + + // -------------------------------------------------------------------- + + /** + * Version number query string + * + * @return string + */ + protected function _version() + { + return 'SELECT VERSION() AS ver'; + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * Accepts an SQL string as input and returns a result object upon + * successful execution of a "read" type query. Returns boolean TRUE + * upon successful execution of a "write" type query. Returns boolean + * FALSE upon failure, and if the $db_debug variable is set to TRUE + * will raise an error. + * + * @param string $sql + * @param array $binds = FALSE An array of binding data + * @param bool $return_object = NULL + * @return mixed + */ + public function query($sql, $binds = FALSE, $return_object = NULL) + { + if ($sql === '') + { + log_message('error', 'Invalid query: '.$sql); + return ($this->db_debug) ? $this->display_error('db_invalid_query') : FALSE; + } + elseif ( ! is_bool($return_object)) + { + $return_object = ! $this->is_write_type($sql); + } + + // Verify table prefix and replace if necessary + if ($this->dbprefix !== '' && $this->swap_pre !== '' && $this->dbprefix !== $this->swap_pre) + { + $sql = preg_replace('/(\W)'.$this->swap_pre.'(\S+?)/', '\\1'.$this->dbprefix.'\\2', $sql); + } + + // Compile binds if needed + if ($binds !== FALSE) + { + $sql = $this->compile_binds($sql, $binds); + } + + // Is query caching enabled? If the query is a "read type" + // we will load the caching class and return the previously + // cached query if it exists + if ($this->cache_on === TRUE && $return_object === TRUE && $this->_cache_init()) + { + $this->load_rdriver(); + if (FALSE !== ($cache = $this->CACHE->read($sql))) + { + return $cache; + } + } + + // Save the query for debugging + if ($this->save_queries === TRUE) + { + $this->queries[] = $sql; + } + + // Start the Query Timer + $time_start = microtime(TRUE); + + // Run the Query + if (FALSE === ($this->result_id = $this->simple_query($sql))) + { + if ($this->save_queries === TRUE) + { + $this->query_times[] = 0; + } + + // This will trigger a rollback if transactions are being used + if ($this->_trans_depth !== 0) + { + $this->_trans_status = FALSE; + } + + // Grab the error now, as we might run some additional queries before displaying the error + $error = $this->error(); + + // Log errors + log_message('error', 'Query error: '.$error['message'].' - Invalid query: '.$sql); + + if ($this->db_debug) + { + // We call this function in order to roll-back queries + // if transactions are enabled. If we don't call this here + // the error message will trigger an exit, causing the + // transactions to remain in limbo. + while ($this->_trans_depth !== 0) + { + $trans_depth = $this->_trans_depth; + $this->trans_complete(); + if ($trans_depth === $this->_trans_depth) + { + log_message('error', 'Database: Failure during an automated transaction commit/rollback!'); + break; + } + } + + // Display errors + return $this->display_error(array('Error Number: '.$error['code'], $error['message'], $sql)); + } + + return FALSE; + } + + // Stop and aggregate the query time results + $time_end = microtime(TRUE); + $this->benchmark += $time_end - $time_start; + + if ($this->save_queries === TRUE) + { + $this->query_times[] = $time_end - $time_start; + } + + // Increment the query counter + $this->query_count++; + + // Will we have a result object instantiated? If not - we'll simply return TRUE + if ($return_object !== TRUE) + { + // If caching is enabled we'll auto-cleanup any existing files related to this particular URI + if ($this->cache_on === TRUE && $this->cache_autodel === TRUE && $this->_cache_init()) + { + $this->CACHE->delete(); + } + + return TRUE; + } + + // Load and instantiate the result driver + $driver = $this->load_rdriver(); + $RES = new $driver($this); + + // Is query caching enabled? If so, we'll serialize the + // result object and save it to a cache file. + if ($this->cache_on === TRUE && $this->_cache_init()) + { + // We'll create a new instance of the result object + // only without the platform specific driver since + // we can't use it with cached data (the query result + // resource ID won't be any good once we've cached the + // result object, so we'll have to compile the data + // and save it) + $CR = new CI_DB_result($this); + $CR->result_object = $RES->result_object(); + $CR->result_array = $RES->result_array(); + $CR->num_rows = $RES->num_rows(); + + // Reset these since cached objects can not utilize resource IDs. + $CR->conn_id = NULL; + $CR->result_id = NULL; + + $this->CACHE->write($sql, $CR); + } + + return $RES; + } + + // -------------------------------------------------------------------- + + /** + * Load the result drivers + * + * @return string the name of the result class + */ + public function load_rdriver() + { + $driver = 'CI_DB_'.$this->dbdriver.'_result'; + + if ( ! class_exists($driver, FALSE)) + { + require_once(BASEPATH.'database/DB_result.php'); + require_once(BASEPATH.'database/drivers/'.$this->dbdriver.'/'.$this->dbdriver.'_result.php'); + } + + return $driver; + } + + // -------------------------------------------------------------------- + + /** + * Simple Query + * This is a simplified version of the query() function. Internally + * we only use it when running transaction commands since they do + * not require all the features of the main query() function. + * + * @param string the sql query + * @return mixed + */ + public function simple_query($sql) + { + if ( ! $this->conn_id) + { + if ( ! $this->initialize()) + { + return FALSE; + } + } + + return $this->_execute($sql); + } + + // -------------------------------------------------------------------- + + /** + * Disable Transactions + * This permits transactions to be disabled at run-time. + * + * @return void + */ + public function trans_off() + { + $this->trans_enabled = FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Enable/disable Transaction Strict Mode + * + * When strict mode is enabled, if you are running multiple groups of + * transactions, if one group fails all subsequent groups will be + * rolled back. + * + * If strict mode is disabled, each group is treated autonomously, + * meaning a failure of one group will not affect any others + * + * @param bool $mode = TRUE + * @return void + */ + public function trans_strict($mode = TRUE) + { + $this->trans_strict = is_bool($mode) ? $mode : TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Start Transaction + * + * @param bool $test_mode = FALSE + * @return bool + */ + public function trans_start($test_mode = FALSE) + { + if ( ! $this->trans_enabled) + { + return FALSE; + } + + return $this->trans_begin($test_mode); + } + + // -------------------------------------------------------------------- + + /** + * Complete Transaction + * + * @return bool + */ + public function trans_complete() + { + if ( ! $this->trans_enabled) + { + return FALSE; + } + + // The query() function will set this flag to FALSE in the event that a query failed + if ($this->_trans_status === FALSE OR $this->_trans_failure === TRUE) + { + $this->trans_rollback(); + + // If we are NOT running in strict mode, we will reset + // the _trans_status flag so that subsequent groups of + // transactions will be permitted. + if ($this->trans_strict === FALSE) + { + $this->_trans_status = TRUE; + } + + log_message('debug', 'DB Transaction Failure'); + return FALSE; + } + + return $this->trans_commit(); + } + + // -------------------------------------------------------------------- + + /** + * Lets you retrieve the transaction flag to determine if it has failed + * + * @return bool + */ + public function trans_status() + { + return $this->_trans_status; + } + + // -------------------------------------------------------------------- + + /** + * Returns TRUE if a transaction is currently active + * + * @return bool + */ + public function trans_active() + { + return (bool) $this->_trans_depth; + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @param bool $test_mode + * @return bool + */ + public function trans_begin($test_mode = FALSE) + { + if ( ! $this->trans_enabled) + { + return FALSE; + } + // When transactions are nested we only begin/commit/rollback the outermost ones + elseif ($this->_trans_depth > 0) + { + $this->_trans_depth++; + return TRUE; + } + + // Reset the transaction failure flag. + // If the $test_mode flag is set to TRUE transactions will be rolled back + // even if the queries produce a successful result. + $this->_trans_failure = ($test_mode === TRUE); + + if ($this->_trans_begin()) + { + $this->_trans_status = TRUE; + $this->_trans_depth++; + return TRUE; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @return bool + */ + public function trans_commit() + { + if ( ! $this->trans_enabled OR $this->_trans_depth === 0) + { + return FALSE; + } + // When transactions are nested we only begin/commit/rollback the outermost ones + elseif ($this->_trans_depth > 1 OR $this->_trans_commit()) + { + $this->_trans_depth--; + return TRUE; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @return bool + */ + public function trans_rollback() + { + if ( ! $this->trans_enabled OR $this->_trans_depth === 0) + { + return FALSE; + } + // When transactions are nested we only begin/commit/rollback the outermost ones + elseif ($this->_trans_depth > 1 OR $this->_trans_rollback()) + { + $this->_trans_depth--; + return TRUE; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Compile Bindings + * + * @param string the sql statement + * @param array an array of bind data + * @return string + */ + public function compile_binds($sql, $binds) + { + if (empty($this->bind_marker) OR strpos($sql, $this->bind_marker) === FALSE) + { + return $sql; + } + elseif ( ! is_array($binds)) + { + $binds = array($binds); + $bind_count = 1; + } + else + { + // Make sure we're using numeric keys + $binds = array_values($binds); + $bind_count = count($binds); + } + + // We'll need the marker length later + $ml = strlen($this->bind_marker); + + // Make sure not to replace a chunk inside a string that happens to match the bind marker + if ($c = preg_match_all("/'[^']*'|\"[^\"]*\"/i", $sql, $matches)) + { + $c = preg_match_all('/'.preg_quote($this->bind_marker, '/').'/i', + str_replace($matches[0], + str_replace($this->bind_marker, str_repeat(' ', $ml), $matches[0]), + $sql, $c), + $matches, PREG_OFFSET_CAPTURE); + + // Bind values' count must match the count of markers in the query + if ($bind_count !== $c) + { + return $sql; + } + } + elseif (($c = preg_match_all('/'.preg_quote($this->bind_marker, '/').'/i', $sql, $matches, PREG_OFFSET_CAPTURE)) !== $bind_count) + { + return $sql; + } + + do + { + $c--; + $escaped_value = $this->escape($binds[$c]); + if (is_array($escaped_value)) + { + $escaped_value = '('.implode(',', $escaped_value).')'; + } + $sql = substr_replace($sql, $escaped_value, $matches[0][$c][1], $ml); + } + while ($c !== 0); + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Determines if a query is a "write" type. + * + * @param string An SQL query string + * @return bool + */ + public function is_write_type($sql) + { + return (bool) preg_match('/^\s*"?(SET|INSERT|UPDATE|DELETE|REPLACE|CREATE|DROP|TRUNCATE|LOAD|COPY|ALTER|RENAME|GRANT|REVOKE|LOCK|UNLOCK|REINDEX|MERGE)\s/i', $sql); + } + + // -------------------------------------------------------------------- + + /** + * Calculate the aggregate query elapsed time + * + * @param int The number of decimal places + * @return string + */ + public function elapsed_time($decimals = 6) + { + return number_format($this->benchmark, $decimals); + } + + // -------------------------------------------------------------------- + + /** + * Returns the total number of queries + * + * @return int + */ + public function total_queries() + { + return $this->query_count; + } + + // -------------------------------------------------------------------- + + /** + * Returns the last query that was executed + * + * @return string + */ + public function last_query() + { + return end($this->queries); + } + + // -------------------------------------------------------------------- + + /** + * "Smart" Escape String + * + * Escapes data based on type + * Sets boolean and null types + * + * @param string + * @return mixed + */ + public function escape($str) + { + if (is_array($str)) + { + $str = array_map(array(&$this, 'escape'), $str); + return $str; + } + elseif (is_string($str) OR (is_object($str) && method_exists($str, '__toString'))) + { + return "'".$this->escape_str($str)."'"; + } + elseif (is_bool($str)) + { + return ($str === FALSE) ? 0 : 1; + } + elseif ($str === NULL) + { + return 'NULL'; + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Escape String + * + * @param string|string[] $str Input string + * @param bool $like Whether or not the string will be used in a LIKE condition + * @return string + */ + public function escape_str($str, $like = FALSE) + { + if (is_array($str)) + { + foreach ($str as $key => $val) + { + $str[$key] = $this->escape_str($val, $like); + } + + return $str; + } + + $str = $this->_escape_str($str); + + // escape LIKE condition wildcards + if ($like === TRUE) + { + return str_replace( + array($this->_like_escape_chr, '%', '_'), + array($this->_like_escape_chr.$this->_like_escape_chr, $this->_like_escape_chr.'%', $this->_like_escape_chr.'_'), + $str + ); + } + + return $str; + } + + // -------------------------------------------------------------------- + + /** + * Escape LIKE String + * + * Calls the individual driver for platform + * specific escaping for LIKE conditions + * + * @param string|string[] + * @return mixed + */ + public function escape_like_str($str) + { + return $this->escape_str($str, TRUE); + } + + // -------------------------------------------------------------------- + + /** + * Platform-dependent string escape + * + * @param string + * @return string + */ + protected function _escape_str($str) + { + return str_replace("'", "''", remove_invisible_characters($str, FALSE)); + } + + // -------------------------------------------------------------------- + + /** + * Primary + * + * Retrieves the primary key. It assumes that the row in the first + * position is the primary key + * + * @param string $table Table name + * @return string + */ + public function primary($table) + { + $fields = $this->list_fields($table); + return is_array($fields) ? current($fields) : FALSE; + } + + // -------------------------------------------------------------------- + + /** + * "Count All" query + * + * Generates a platform-specific query string that counts all records in + * the specified database + * + * @param string + * @return int + */ + public function count_all($table = '') + { + if ($table === '') + { + return 0; + } + + $query = $this->query($this->_count_string.$this->escape_identifiers('numrows').' FROM '.$this->protect_identifiers($table, TRUE, NULL, FALSE)); + if ($query->num_rows() === 0) + { + return 0; + } + + $query = $query->row(); + $this->_reset_select(); + return (int) $query->numrows; + } + + // -------------------------------------------------------------------- + + /** + * Returns an array of table names + * + * @param string $constrain_by_prefix = FALSE + * @return array + */ + public function list_tables($constrain_by_prefix = FALSE) + { + // Is there a cached result? + if (isset($this->data_cache['table_names'])) + { + return $this->data_cache['table_names']; + } + + if (FALSE === ($sql = $this->_list_tables($constrain_by_prefix))) + { + return ($this->db_debug) ? $this->display_error('db_unsupported_function') : FALSE; + } + + $this->data_cache['table_names'] = array(); + $query = $this->query($sql); + + foreach ($query->result_array() as $row) + { + // Do we know from which column to get the table name? + if ( ! isset($key)) + { + if (isset($row['table_name'])) + { + $key = 'table_name'; + } + elseif (isset($row['TABLE_NAME'])) + { + $key = 'TABLE_NAME'; + } + else + { + /* We have no other choice but to just get the first element's key. + * Due to array_shift() accepting its argument by reference, if + * E_STRICT is on, this would trigger a warning. So we'll have to + * assign it first. + */ + $key = array_keys($row); + $key = array_shift($key); + } + } + + $this->data_cache['table_names'][] = $row[$key]; + } + + return $this->data_cache['table_names']; + } + + // -------------------------------------------------------------------- + + /** + * Determine if a particular table exists + * + * @param string $table_name + * @return bool + */ + public function table_exists($table_name) + { + return in_array($this->protect_identifiers($table_name, TRUE, FALSE, FALSE), $this->list_tables()); + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * @param string $table Table name + * @return array + */ + public function list_fields($table) + { + if (FALSE === ($sql = $this->_list_columns($table))) + { + return ($this->db_debug) ? $this->display_error('db_unsupported_function') : FALSE; + } + + $query = $this->query($sql); + $fields = array(); + + foreach ($query->result_array() as $row) + { + // Do we know from where to get the column's name? + if ( ! isset($key)) + { + if (isset($row['column_name'])) + { + $key = 'column_name'; + } + elseif (isset($row['COLUMN_NAME'])) + { + $key = 'COLUMN_NAME'; + } + else + { + // We have no other choice but to just get the first element's key. + $key = key($row); + } + } + + $fields[] = $row[$key]; + } + + return $fields; + } + + // -------------------------------------------------------------------- + + /** + * Determine if a particular field exists + * + * @param string + * @param string + * @return bool + */ + public function field_exists($field_name, $table_name) + { + return in_array($field_name, $this->list_fields($table_name)); + } + + // -------------------------------------------------------------------- + + /** + * Returns an object with field data + * + * @param string $table the table name + * @return array + */ + public function field_data($table) + { + $query = $this->query($this->_field_data($this->protect_identifiers($table, TRUE, NULL, FALSE))); + return ($query) ? $query->field_data() : FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Escape the SQL Identifiers + * + * This function escapes column and table names + * + * @param mixed + * @return mixed + */ + public function escape_identifiers($item) + { + if ($this->_escape_char === '' OR empty($item) OR in_array($item, $this->_reserved_identifiers)) + { + return $item; + } + elseif (is_array($item)) + { + foreach ($item as $key => $value) + { + $item[$key] = $this->escape_identifiers($value); + } + + return $item; + } + // Avoid breaking functions and literal values inside queries + elseif (ctype_digit($item) OR $item[0] === "'" OR ($this->_escape_char !== '"' && $item[0] === '"') OR strpos($item, '(') !== FALSE) + { + return $item; + } + + static $preg_ec = array(); + + if (empty($preg_ec)) + { + if (is_array($this->_escape_char)) + { + $preg_ec = array( + preg_quote($this->_escape_char[0], '/'), + preg_quote($this->_escape_char[1], '/'), + $this->_escape_char[0], + $this->_escape_char[1] + ); + } + else + { + $preg_ec[0] = $preg_ec[1] = preg_quote($this->_escape_char, '/'); + $preg_ec[2] = $preg_ec[3] = $this->_escape_char; + } + } + + foreach ($this->_reserved_identifiers as $id) + { + if (strpos($item, '.'.$id) !== FALSE) + { + return preg_replace('/'.$preg_ec[0].'?([^'.$preg_ec[1].'\.]+)'.$preg_ec[1].'?\./i', $preg_ec[2].'$1'.$preg_ec[3].'.', $item); + } + } + + return preg_replace('/'.$preg_ec[0].'?([^'.$preg_ec[1].'\.]+)'.$preg_ec[1].'?(\.)?/i', $preg_ec[2].'$1'.$preg_ec[3].'$2', $item); + } + + // -------------------------------------------------------------------- + + /** + * Generate an insert string + * + * @param string the table upon which the query will be performed + * @param array an associative array data of key/values + * @return string + */ + public function insert_string($table, $data) + { + $fields = $values = array(); + + foreach ($data as $key => $val) + { + $fields[] = $this->escape_identifiers($key); + $values[] = $this->escape($val); + } + + return $this->_insert($this->protect_identifiers($table, TRUE, NULL, FALSE), $fields, $values); + } + + // -------------------------------------------------------------------- + + /** + * Insert statement + * + * Generates a platform-specific insert string from the supplied data + * + * @param string the table name + * @param array the insert keys + * @param array the insert values + * @return string + */ + protected function _insert($table, $keys, $values) + { + return 'INSERT INTO '.$table.' ('.implode(', ', $keys).') VALUES ('.implode(', ', $values).')'; + } + + // -------------------------------------------------------------------- + + /** + * Generate an update string + * + * @param string the table upon which the query will be performed + * @param array an associative array data of key/values + * @param mixed the "where" statement + * @return string + */ + public function update_string($table, $data, $where) + { + if (empty($where)) + { + return FALSE; + } + + $this->where($where); + + $fields = array(); + foreach ($data as $key => $val) + { + $fields[$this->protect_identifiers($key)] = $this->escape($val); + } + + $sql = $this->_update($this->protect_identifiers($table, TRUE, NULL, FALSE), $fields); + $this->_reset_write(); + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Update statement + * + * Generates a platform-specific update string from the supplied data + * + * @param string the table name + * @param array the update data + * @return string + */ + protected function _update($table, $values) + { + foreach ($values as $key => $val) + { + $valstr[] = $key.' = '.$val; + } + + return 'UPDATE '.$table.' SET '.implode(', ', $valstr) + .$this->_compile_wh('qb_where') + .$this->_compile_order_by() + .($this->qb_limit !== FALSE ? ' LIMIT '.$this->qb_limit : ''); + } + + // -------------------------------------------------------------------- + + /** + * Tests whether the string has an SQL operator + * + * @param string + * @return bool + */ + protected function _has_operator($str) + { + return (bool) preg_match('/(<|>|!|=|\sIS NULL|\sIS NOT NULL|\sEXISTS|\sBETWEEN|\sLIKE|\sIN\s*\(|\s)/i', trim($str)); + } + + // -------------------------------------------------------------------- + + /** + * Returns the SQL string operator + * + * @param string + * @return string + */ + protected function _get_operator($str) + { + static $_operators; + + if (empty($_operators)) + { + $_les = ($this->_like_escape_str !== '') + ? '\s+'.preg_quote(trim(sprintf($this->_like_escape_str, $this->_like_escape_chr)), '/') + : ''; + $_operators = array( + '\s*(?:<|>|!)?=\s*', // =, <=, >=, != + '\s*<>?\s*', // <, <> + '\s*>\s*', // > + '\s+IS NULL', // IS NULL + '\s+IS NOT NULL', // IS NOT NULL + '\s+EXISTS\s*\(.*\)', // EXISTS(sql) + '\s+NOT EXISTS\s*\(.*\)', // NOT EXISTS(sql) + '\s+BETWEEN\s+', // BETWEEN value AND value + '\s+NOT BETWEEN\s+', // NOT BETWEEN value AND value + '\s+IN\s*\(.*\)', // IN(list) + '\s+NOT IN\s*\(.*\)', // NOT IN (list) + '\s+LIKE\s+\S.*('.$_les.')?', // LIKE 'expr'[ ESCAPE '%s'] + '\s+NOT LIKE\s+\S.*('.$_les.')?' // NOT LIKE 'expr'[ ESCAPE '%s'] + ); + + } + + return preg_match('/'.implode('|', $_operators).'/i', $str, $match) + ? $match[0] : FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Enables a native PHP function to be run, using a platform agnostic wrapper. + * + * @param string $function Function name + * @return mixed + */ + public function call_function($function) + { + $driver = ($this->dbdriver === 'postgre') ? 'pg_' : $this->dbdriver.'_'; + + if (FALSE === strpos($driver, $function)) + { + $function = $driver.$function; + } + + if ( ! function_exists($function)) + { + return ($this->db_debug) ? $this->display_error('db_unsupported_function') : FALSE; + } + + return (func_num_args() > 1) + ? call_user_func_array($function, array_slice(func_get_args(), 1)) + : call_user_func($function); + } + + // -------------------------------------------------------------------- + + /** + * Set Cache Directory Path + * + * @param string the path to the cache directory + * @return void + */ + public function cache_set_path($path = '') + { + $this->cachedir = $path; + } + + // -------------------------------------------------------------------- + + /** + * Enable Query Caching + * + * @return bool cache_on value + */ + public function cache_on() + { + return $this->cache_on = TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Disable Query Caching + * + * @return bool cache_on value + */ + public function cache_off() + { + return $this->cache_on = FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Delete the cache files associated with a particular URI + * + * @param string $segment_one = '' + * @param string $segment_two = '' + * @return bool + */ + public function cache_delete($segment_one = '', $segment_two = '') + { + return $this->_cache_init() + ? $this->CACHE->delete($segment_one, $segment_two) + : FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Delete All cache files + * + * @return bool + */ + public function cache_delete_all() + { + return $this->_cache_init() + ? $this->CACHE->delete_all() + : FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Initialize the Cache Class + * + * @return bool + */ + protected function _cache_init() + { + if ( ! class_exists('CI_DB_Cache', FALSE)) + { + require_once(BASEPATH.'database/DB_cache.php'); + } + elseif (is_object($this->CACHE)) + { + return TRUE; + } + + $this->CACHE = new CI_DB_Cache($this); // pass db object to support multiple db connections and returned db objects + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @return void + */ + public function close() + { + if ($this->conn_id) + { + $this->_close(); + $this->conn_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * This method would be overridden by most of the drivers. + * + * @return void + */ + protected function _close() + { + $this->conn_id = FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Display an error message + * + * @param string the error message + * @param string any "swap" values + * @param bool whether to localize the message + * @return string sends the application/views/errors/error_db.php template + */ + public function display_error($error = '', $swap = '', $native = FALSE) + { + $LANG =& load_class('Lang', 'core'); + $LANG->load('db'); + + $heading = $LANG->line('db_error_heading'); + + if ($native === TRUE) + { + $message = (array) $error; + } + else + { + $message = is_array($error) ? $error : array(str_replace('%s', $swap, $LANG->line($error))); + } + + // Find the most likely culprit of the error by going through + // the backtrace until the source file is no longer in the + // database folder. + $trace = debug_backtrace(); + foreach ($trace as $call) + { + if (isset($call['file'], $call['class'])) + { + // We'll need this on Windows, as APPPATH and BASEPATH will always use forward slashes + if (DIRECTORY_SEPARATOR !== '/') + { + $call['file'] = str_replace('\\', '/', $call['file']); + } + + if (strpos($call['file'], BASEPATH.'database') === FALSE && strpos($call['class'], 'Loader') === FALSE) + { + // Found it - use a relative path for safety + $message[] = 'Filename: '.str_replace(array(APPPATH, BASEPATH), '', $call['file']); + $message[] = 'Line Number: '.$call['line']; + break; + } + } + } + + $error =& load_class('Exceptions', 'core'); + echo $error->show_error($heading, $message, 'error_db'); + exit(8); // EXIT_DATABASE + } + + // -------------------------------------------------------------------- + + /** + * Protect Identifiers + * + * This function is used extensively by the Query Builder class, and by + * a couple functions in this class. + * It takes a column or table name (optionally with an alias) and inserts + * the table prefix onto it. Some logic is necessary in order to deal with + * column names that include the path. Consider a query like this: + * + * SELECT hostname.database.table.column AS c FROM hostname.database.table + * + * Or a query with aliasing: + * + * SELECT m.member_id, m.member_name FROM members AS m + * + * Since the column name can include up to four segments (host, DB, table, column) + * or also have an alias prefix, we need to do a bit of work to figure this out and + * insert the table prefix (if it exists) in the proper position, and escape only + * the correct identifiers. + * + * @param string + * @param bool + * @param mixed + * @param bool + * @return string + */ + public function protect_identifiers($item, $prefix_single = FALSE, $protect_identifiers = NULL, $field_exists = TRUE) + { + if ( ! is_bool($protect_identifiers)) + { + $protect_identifiers = $this->_protect_identifiers; + } + + if (is_array($item)) + { + $escaped_array = array(); + foreach ($item as $k => $v) + { + $escaped_array[$this->protect_identifiers($k)] = $this->protect_identifiers($v, $prefix_single, $protect_identifiers, $field_exists); + } + + return $escaped_array; + } + + // This is basically a bug fix for queries that use MAX, MIN, etc. + // If a parenthesis is found we know that we do not need to + // escape the data or add a prefix. There's probably a more graceful + // way to deal with this, but I'm not thinking of it -- Rick + // + // Added exception for single quotes as well, we don't want to alter + // literal strings. -- Narf + if (strcspn($item, "()'") !== strlen($item)) + { + return $item; + } + + // Convert tabs or multiple spaces into single spaces + $item = preg_replace('/\s+/', ' ', trim($item)); + + // If the item has an alias declaration we remove it and set it aside. + // Note: strripos() is used in order to support spaces in table names + if ($offset = strripos($item, ' AS ')) + { + $alias = ($protect_identifiers) + ? substr($item, $offset, 4).$this->escape_identifiers(substr($item, $offset + 4)) + : substr($item, $offset); + $item = substr($item, 0, $offset); + } + elseif ($offset = strrpos($item, ' ')) + { + $alias = ($protect_identifiers) + ? ' '.$this->escape_identifiers(substr($item, $offset + 1)) + : substr($item, $offset); + $item = substr($item, 0, $offset); + } + else + { + $alias = ''; + } + + // Break the string apart if it contains periods, then insert the table prefix + // in the correct location, assuming the period doesn't indicate that we're dealing + // with an alias. While we're at it, we will escape the components + if (strpos($item, '.') !== FALSE) + { + $parts = explode('.', $item); + + // Does the first segment of the exploded item match + // one of the aliases previously identified? If so, + // we have nothing more to do other than escape the item + // + // NOTE: The ! empty() condition prevents this method + // from breaking when QB isn't enabled. + if ( ! empty($this->qb_aliased_tables) && in_array($parts[0], $this->qb_aliased_tables)) + { + if ($protect_identifiers === TRUE) + { + foreach ($parts as $key => $val) + { + if ( ! in_array($val, $this->_reserved_identifiers)) + { + $parts[$key] = $this->escape_identifiers($val); + } + } + + $item = implode('.', $parts); + } + + return $item.$alias; + } + + // Is there a table prefix defined in the config file? If not, no need to do anything + if ($this->dbprefix !== '') + { + // We now add the table prefix based on some logic. + // Do we have 4 segments (hostname.database.table.column)? + // If so, we add the table prefix to the column name in the 3rd segment. + if (isset($parts[3])) + { + $i = 2; + } + // Do we have 3 segments (database.table.column)? + // If so, we add the table prefix to the column name in 2nd position + elseif (isset($parts[2])) + { + $i = 1; + } + // Do we have 2 segments (table.column)? + // If so, we add the table prefix to the column name in 1st segment + else + { + $i = 0; + } + + // This flag is set when the supplied $item does not contain a field name. + // This can happen when this function is being called from a JOIN. + if ($field_exists === FALSE) + { + $i++; + } + + // dbprefix may've already been applied, with or without the identifier escaped + $ec = '(?'.preg_quote(is_array($this->_escape_char) ? $this->_escape_char[0] : $this->_escape_char).')?'; + isset($ec[0]) && $ec .= '?'; // Just in case someone has disabled escaping by forcing an empty escape character + + // Verify table prefix and replace if necessary + if ($this->swap_pre !== '' && preg_match('#^'.$ec.preg_quote($this->swap_pre).'#', $parts[$i])) + { + $parts[$i] = preg_replace('#^'.$ec.preg_quote($this->swap_pre).'(\S+?)#', '\\1'.$this->dbprefix.'\\2', $parts[$i]); + } + // We only add the table prefix if it does not already exist + else + { + preg_match('#^'.$ec.preg_quote($this->dbprefix).'#', $parts[$i]) OR $parts[$i] = $this->dbprefix.$parts[$i]; + } + + // Put the parts back together + $item = implode('.', $parts); + } + + if ($protect_identifiers === TRUE) + { + $item = $this->escape_identifiers($item); + } + + return $item.$alias; + } + + // Is there a table prefix? If not, no need to insert it + if ($this->dbprefix !== '') + { + // Verify table prefix and replace if necessary + if ($this->swap_pre !== '' && strpos($item, $this->swap_pre) === 0) + { + $item = preg_replace('/^'.$this->swap_pre.'(\S+?)/', $this->dbprefix.'\\1', $item); + } + // Do we prefix an item with no segments? + elseif ($prefix_single === TRUE && strpos($item, $this->dbprefix) !== 0) + { + $item = $this->dbprefix.$item; + } + } + + if ($protect_identifiers === TRUE && ! in_array($item, $this->_reserved_identifiers)) + { + $item = $this->escape_identifiers($item); + } + + return $item.$alias; + } + + // -------------------------------------------------------------------- + + /** + * Dummy method that allows Query Builder class to be disabled + * and keep count_all() working. + * + * @return void + */ + protected function _reset_select() + { + } + +} diff --git a/system/database/DB_forge.php b/system/database/DB_forge.php new file mode 100644 index 0000000..64ccde0 --- /dev/null +++ b/system/database/DB_forge.php @@ -0,0 +1,1034 @@ +db =& $db; + log_message('info', 'Database Forge Class Initialized'); + } + + // -------------------------------------------------------------------- + + /** + * Create database + * + * @param string $db_name + * @return bool + */ + public function create_database($db_name) + { + if ($this->_create_database === FALSE) + { + return ($this->db->db_debug) ? $this->db->display_error('db_unsupported_feature') : FALSE; + } + elseif ( ! $this->db->query(sprintf($this->_create_database, $this->db->escape_identifiers($db_name), $this->db->char_set, $this->db->dbcollat))) + { + return ($this->db->db_debug) ? $this->db->display_error('db_unable_to_drop') : FALSE; + } + + if ( ! empty($this->db->data_cache['db_names'])) + { + $this->db->data_cache['db_names'][] = $db_name; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Drop database + * + * @param string $db_name + * @return bool + */ + public function drop_database($db_name) + { + if ($this->_drop_database === FALSE) + { + return ($this->db->db_debug) ? $this->db->display_error('db_unsupported_feature') : FALSE; + } + elseif ( ! $this->db->query(sprintf($this->_drop_database, $this->db->escape_identifiers($db_name)))) + { + return ($this->db->db_debug) ? $this->db->display_error('db_unable_to_drop') : FALSE; + } + + if ( ! empty($this->db->data_cache['db_names'])) + { + $key = array_search(strtolower($db_name), array_map('strtolower', $this->db->data_cache['db_names']), TRUE); + if ($key !== FALSE) + { + unset($this->db->data_cache['db_names'][$key]); + } + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Add Key + * + * @param string $key + * @param bool $primary + * @return CI_DB_forge + */ + public function add_key($key, $primary = FALSE) + { + // DO NOT change this! This condition is only applicable + // for PRIMARY keys because you can only have one such, + // and therefore all fields you add to it will be included + // in the same, composite PRIMARY KEY. + // + // It's not the same for regular indexes. + if ($primary === TRUE && is_array($key)) + { + foreach ($key as $one) + { + $this->add_key($one, $primary); + } + + return $this; + } + + if ($primary === TRUE) + { + $this->primary_keys[] = $key; + } + else + { + $this->keys[] = $key; + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Add Field + * + * @param array $field + * @return CI_DB_forge + */ + public function add_field($field) + { + if (is_string($field)) + { + if ($field === 'id') + { + $this->add_field(array( + 'id' => array( + 'type' => 'INT', + 'constraint' => 9, + 'auto_increment' => TRUE + ) + )); + $this->add_key('id', TRUE); + } + else + { + if (strpos($field, ' ') === FALSE) + { + show_error('Field information is required for that operation.'); + } + + $this->fields[] = $field; + } + } + + if (is_array($field)) + { + $this->fields = array_merge($this->fields, $field); + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Create Table + * + * @param string $table Table name + * @param bool $if_not_exists Whether to add IF NOT EXISTS condition + * @param array $attributes Associative array of table attributes + * @return bool + */ + public function create_table($table, $if_not_exists = FALSE, array $attributes = array()) + { + if ($table === '') + { + show_error('A table name is required for that operation.'); + } + else + { + $table = $this->db->dbprefix.$table; + } + + if (count($this->fields) === 0) + { + show_error('Field information is required.'); + } + + $sql = $this->_create_table($table, $if_not_exists, $attributes); + + if (is_bool($sql)) + { + $this->_reset(); + if ($sql === FALSE) + { + return ($this->db->db_debug) ? $this->db->display_error('db_unsupported_feature') : FALSE; + } + } + + if (($result = $this->db->query($sql)) !== FALSE) + { + if (isset($this->db->data_cache['table_names'])) + { + $this->db->data_cache['table_names'][] = $table; + } + + // Most databases don't support creating indexes from within the CREATE TABLE statement + if ( ! empty($this->keys)) + { + for ($i = 0, $sqls = $this->_process_indexes($table), $c = count($sqls); $i < $c; $i++) + { + $this->db->query($sqls[$i]); + } + } + } + + $this->_reset(); + return $result; + } + + // -------------------------------------------------------------------- + + /** + * Create Table + * + * @param string $table Table name + * @param bool $if_not_exists Whether to add 'IF NOT EXISTS' condition + * @param array $attributes Associative array of table attributes + * @return mixed + */ + protected function _create_table($table, $if_not_exists, $attributes) + { + if ($if_not_exists === TRUE && $this->_create_table_if === FALSE) + { + if ($this->db->table_exists($table)) + { + return TRUE; + } + + $if_not_exists = FALSE; + } + + $sql = ($if_not_exists) + ? sprintf($this->_create_table_if, $this->db->escape_identifiers($table)) + : 'CREATE TABLE'; + + $columns = $this->_process_fields(TRUE); + for ($i = 0, $c = count($columns); $i < $c; $i++) + { + $columns[$i] = ($columns[$i]['_literal'] !== FALSE) + ? "\n\t".$columns[$i]['_literal'] + : "\n\t".$this->_process_column($columns[$i]); + } + + $columns = implode(',', $columns) + .$this->_process_primary_keys($table); + + // Are indexes created from within the CREATE TABLE statement? (e.g. in MySQL) + if ($this->_create_table_keys === TRUE) + { + $columns .= $this->_process_indexes($table); + } + + // _create_table will usually have the following format: "%s %s (%s\n)" + $sql = sprintf($this->_create_table.'%s', + $sql, + $this->db->escape_identifiers($table), + $columns, + $this->_create_table_attr($attributes) + ); + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * CREATE TABLE attributes + * + * @param array $attributes Associative array of table attributes + * @return string + */ + protected function _create_table_attr($attributes) + { + $sql = ''; + + foreach (array_keys($attributes) as $key) + { + if (is_string($key)) + { + $sql .= ' '.strtoupper($key).' '.$attributes[$key]; + } + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Drop Table + * + * @param string $table_name Table name + * @param bool $if_exists Whether to add an IF EXISTS condition + * @return bool + */ + public function drop_table($table_name, $if_exists = FALSE) + { + if ($table_name === '') + { + return ($this->db->db_debug) ? $this->db->display_error('db_table_name_required') : FALSE; + } + + if (($query = $this->_drop_table($this->db->dbprefix.$table_name, $if_exists)) === TRUE) + { + return TRUE; + } + + $query = $this->db->query($query); + + // Update table list cache + if ($query && ! empty($this->db->data_cache['table_names'])) + { + $key = array_search(strtolower($this->db->dbprefix.$table_name), array_map('strtolower', $this->db->data_cache['table_names']), TRUE); + if ($key !== FALSE) + { + unset($this->db->data_cache['table_names'][$key]); + } + } + + return $query; + } + + // -------------------------------------------------------------------- + + /** + * Drop Table + * + * Generates a platform-specific DROP TABLE string + * + * @param string $table Table name + * @param bool $if_exists Whether to add an IF EXISTS condition + * @return mixed (Returns a platform-specific DROP table string, or TRUE to indicate there's nothing to do) + */ + protected function _drop_table($table, $if_exists) + { + $sql = 'DROP TABLE'; + + if ($if_exists) + { + if ($this->_drop_table_if === FALSE) + { + if ( ! $this->db->table_exists($table)) + { + return TRUE; + } + } + else + { + $sql = sprintf($this->_drop_table_if, $this->db->escape_identifiers($table)); + } + } + + return $sql.' '.$this->db->escape_identifiers($table); + } + + // -------------------------------------------------------------------- + + /** + * Rename Table + * + * @param string $table_name Old table name + * @param string $new_table_name New table name + * @return bool + */ + public function rename_table($table_name, $new_table_name) + { + if ($table_name === '' OR $new_table_name === '') + { + show_error('A table name is required for that operation.'); + return FALSE; + } + elseif ($this->_rename_table === FALSE) + { + return ($this->db->db_debug) ? $this->db->display_error('db_unsupported_feature') : FALSE; + } + + $result = $this->db->query(sprintf($this->_rename_table, + $this->db->escape_identifiers($this->db->dbprefix.$table_name), + $this->db->escape_identifiers($this->db->dbprefix.$new_table_name)) + ); + + if ($result && ! empty($this->db->data_cache['table_names'])) + { + $key = array_search(strtolower($this->db->dbprefix.$table_name), array_map('strtolower', $this->db->data_cache['table_names']), TRUE); + if ($key !== FALSE) + { + $this->db->data_cache['table_names'][$key] = $this->db->dbprefix.$new_table_name; + } + } + + return $result; + } + + // -------------------------------------------------------------------- + + /** + * Column Add + * + * @todo Remove deprecated $_after option in 3.1+ + * @param string $table Table name + * @param array $field Column definition + * @param string $_after Column for AFTER clause (deprecated) + * @return bool + */ + public function add_column($table, $field, $_after = NULL) + { + // Work-around for literal column definitions + is_array($field) OR $field = array($field); + + foreach (array_keys($field) as $k) + { + // Backwards-compatibility work-around for MySQL/CUBRID AFTER clause (remove in 3.1+) + if ($_after !== NULL && is_array($field[$k]) && ! isset($field[$k]['after'])) + { + $field[$k]['after'] = $_after; + } + + $this->add_field(array($k => $field[$k])); + } + + $sqls = $this->_alter_table('ADD', $this->db->dbprefix.$table, $this->_process_fields()); + $this->_reset(); + if ($sqls === FALSE) + { + return ($this->db->db_debug) ? $this->db->display_error('db_unsupported_feature') : FALSE; + } + + for ($i = 0, $c = count($sqls); $i < $c; $i++) + { + if ($this->db->query($sqls[$i]) === FALSE) + { + return FALSE; + } + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Column Drop + * + * @param string $table Table name + * @param string $column_name Column name + * @return bool + */ + public function drop_column($table, $column_name) + { + $sql = $this->_alter_table('DROP', $this->db->dbprefix.$table, $column_name); + if ($sql === FALSE) + { + return ($this->db->db_debug) ? $this->db->display_error('db_unsupported_feature') : FALSE; + } + + return $this->db->query($sql); + } + + // -------------------------------------------------------------------- + + /** + * Column Modify + * + * @param string $table Table name + * @param string $field Column definition + * @return bool + */ + public function modify_column($table, $field) + { + // Work-around for literal column definitions + is_array($field) OR $field = array($field); + + foreach (array_keys($field) as $k) + { + $this->add_field(array($k => $field[$k])); + } + + if (count($this->fields) === 0) + { + show_error('Field information is required.'); + } + + $sqls = $this->_alter_table('CHANGE', $this->db->dbprefix.$table, $this->_process_fields()); + $this->_reset(); + if ($sqls === FALSE) + { + return ($this->db->db_debug) ? $this->db->display_error('db_unsupported_feature') : FALSE; + } + + for ($i = 0, $c = count($sqls); $i < $c; $i++) + { + if ($this->db->query($sqls[$i]) === FALSE) + { + return FALSE; + } + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * ALTER TABLE + * + * @param string $alter_type ALTER type + * @param string $table Table name + * @param mixed $field Column definition + * @return string|string[] + */ + protected function _alter_table($alter_type, $table, $field) + { + $sql = 'ALTER TABLE '.$this->db->escape_identifiers($table).' '; + + // DROP has everything it needs now. + if ($alter_type === 'DROP') + { + return $sql.'DROP COLUMN '.$this->db->escape_identifiers($field); + } + + $sql .= ($alter_type === 'ADD') + ? 'ADD ' + : $alter_type.' COLUMN '; + + $sqls = array(); + for ($i = 0, $c = count($field); $i < $c; $i++) + { + $sqls[] = $sql + .($field[$i]['_literal'] !== FALSE ? $field[$i]['_literal'] : $this->_process_column($field[$i])); + } + + return $sqls; + } + + // -------------------------------------------------------------------- + + /** + * Process fields + * + * @param bool $create_table + * @return array + */ + protected function _process_fields($create_table = FALSE) + { + $fields = array(); + + foreach ($this->fields as $key => $attributes) + { + if (is_int($key) && ! is_array($attributes)) + { + $fields[] = array('_literal' => $attributes); + continue; + } + + $attributes = array_change_key_case($attributes, CASE_UPPER); + + if ($create_table === TRUE && empty($attributes['TYPE'])) + { + continue; + } + + isset($attributes['TYPE']) && $this->_attr_type($attributes); + + $field = array( + 'name' => $key, + 'new_name' => isset($attributes['NAME']) ? $attributes['NAME'] : NULL, + 'type' => isset($attributes['TYPE']) ? $attributes['TYPE'] : NULL, + 'length' => '', + 'unsigned' => '', + 'null' => NULL, + 'unique' => '', + 'default' => '', + 'auto_increment' => '', + '_literal' => FALSE + ); + + isset($attributes['TYPE']) && $this->_attr_unsigned($attributes, $field); + + if ($create_table === FALSE) + { + if (isset($attributes['AFTER'])) + { + $field['after'] = $attributes['AFTER']; + } + elseif (isset($attributes['FIRST'])) + { + $field['first'] = (bool) $attributes['FIRST']; + } + } + + $this->_attr_default($attributes, $field); + + if (isset($attributes['NULL'])) + { + if ($attributes['NULL'] === TRUE) + { + $field['null'] = empty($this->_null) ? '' : ' '.$this->_null; + } + else + { + $field['null'] = ' NOT NULL'; + } + } + elseif ($create_table === TRUE) + { + $field['null'] = ' NOT NULL'; + } + + $this->_attr_auto_increment($attributes, $field); + $this->_attr_unique($attributes, $field); + + if (isset($attributes['COMMENT'])) + { + $field['comment'] = $this->db->escape($attributes['COMMENT']); + } + + if (isset($attributes['TYPE']) && ! empty($attributes['CONSTRAINT'])) + { + switch (strtoupper($attributes['TYPE'])) + { + case 'ENUM': + case 'SET': + $attributes['CONSTRAINT'] = $this->db->escape($attributes['CONSTRAINT']); + default: + $field['length'] = is_array($attributes['CONSTRAINT']) + ? '('.implode(',', $attributes['CONSTRAINT']).')' + : '('.$attributes['CONSTRAINT'].')'; + break; + } + } + + $fields[] = $field; + } + + return $fields; + } + + // -------------------------------------------------------------------- + + /** + * Process column + * + * @param array $field + * @return string + */ + protected function _process_column($field) + { + return $this->db->escape_identifiers($field['name']) + .' '.$field['type'].$field['length'] + .$field['unsigned'] + .$field['default'] + .$field['null'] + .$field['auto_increment'] + .$field['unique']; + } + + // -------------------------------------------------------------------- + + /** + * Field attribute TYPE + * + * Performs a data type mapping between different databases. + * + * @param array &$attributes + * @return void + */ + protected function _attr_type(&$attributes) + { + // Usually overridden by drivers + } + + // -------------------------------------------------------------------- + + /** + * Field attribute UNSIGNED + * + * Depending on the _unsigned property value: + * + * - TRUE will always set $field['unsigned'] to 'UNSIGNED' + * - FALSE will always set $field['unsigned'] to '' + * - array(TYPE) will set $field['unsigned'] to 'UNSIGNED', + * if $attributes['TYPE'] is found in the array + * - array(TYPE => UTYPE) will change $field['type'], + * from TYPE to UTYPE in case of a match + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_unsigned(&$attributes, &$field) + { + if (empty($attributes['UNSIGNED']) OR $attributes['UNSIGNED'] !== TRUE) + { + return; + } + + // Reset the attribute in order to avoid issues if we do type conversion + $attributes['UNSIGNED'] = FALSE; + + if (is_array($this->_unsigned)) + { + foreach (array_keys($this->_unsigned) as $key) + { + if (is_int($key) && strcasecmp($attributes['TYPE'], $this->_unsigned[$key]) === 0) + { + $field['unsigned'] = ' UNSIGNED'; + return; + } + elseif (is_string($key) && strcasecmp($attributes['TYPE'], $key) === 0) + { + $field['type'] = $key; + return; + } + } + + return; + } + + $field['unsigned'] = ($this->_unsigned === TRUE) ? ' UNSIGNED' : ''; + } + + // -------------------------------------------------------------------- + + /** + * Field attribute DEFAULT + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_default(&$attributes, &$field) + { + if ($this->_default === FALSE) + { + return; + } + + if (array_key_exists('DEFAULT', $attributes)) + { + if ($attributes['DEFAULT'] === NULL) + { + $field['default'] = empty($this->_null) ? '' : $this->_default.$this->_null; + + // Override the NULL attribute if that's our default + $attributes['NULL'] = TRUE; + $field['null'] = empty($this->_null) ? '' : ' '.$this->_null; + } + else + { + $field['default'] = $this->_default.$this->db->escape($attributes['DEFAULT']); + } + } + } + + // -------------------------------------------------------------------- + + /** + * Field attribute UNIQUE + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_unique(&$attributes, &$field) + { + if ( ! empty($attributes['UNIQUE']) && $attributes['UNIQUE'] === TRUE) + { + $field['unique'] = ' UNIQUE'; + } + } + + // -------------------------------------------------------------------- + + /** + * Field attribute AUTO_INCREMENT + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_auto_increment(&$attributes, &$field) + { + if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE && stripos($field['type'], 'int') !== FALSE) + { + $field['auto_increment'] = ' AUTO_INCREMENT'; + } + } + + // -------------------------------------------------------------------- + + /** + * Process primary keys + * + * @param string $table Table name + * @return string + */ + protected function _process_primary_keys($table) + { + $sql = ''; + + for ($i = 0, $c = count($this->primary_keys); $i < $c; $i++) + { + if ( ! isset($this->fields[$this->primary_keys[$i]])) + { + unset($this->primary_keys[$i]); + } + } + + if (count($this->primary_keys) > 0) + { + $sql .= ",\n\tCONSTRAINT ".$this->db->escape_identifiers('pk_'.$table) + .' PRIMARY KEY('.implode(', ', $this->db->escape_identifiers($this->primary_keys)).')'; + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Process indexes + * + * @param string $table Table name + * @return string[] list of SQL statements + */ + protected function _process_indexes($table) + { + $sqls = array(); + + for ($i = 0, $c = count($this->keys); $i < $c; $i++) + { + if (is_array($this->keys[$i])) + { + for ($i2 = 0, $c2 = count($this->keys[$i]); $i2 < $c2; $i2++) + { + if ( ! isset($this->fields[$this->keys[$i][$i2]])) + { + unset($this->keys[$i][$i2]); + continue; + } + } + } + elseif ( ! isset($this->fields[$this->keys[$i]])) + { + unset($this->keys[$i]); + continue; + } + + is_array($this->keys[$i]) OR $this->keys[$i] = array($this->keys[$i]); + + $sqls[] = 'CREATE INDEX '.$this->db->escape_identifiers($table.'_'.implode('_', $this->keys[$i])) + .' ON '.$this->db->escape_identifiers($table) + .' ('.implode(', ', $this->db->escape_identifiers($this->keys[$i])).');'; + } + + return $sqls; + } + + // -------------------------------------------------------------------- + + /** + * Reset + * + * Resets table creation vars + * + * @return void + */ + protected function _reset() + { + $this->fields = $this->keys = $this->primary_keys = array(); + } + +} diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php new file mode 100644 index 0000000..9331084 --- /dev/null +++ b/system/database/DB_query_builder.php @@ -0,0 +1,2809 @@ +_protect_identifiers; + + foreach ($select as $val) + { + $val = trim($val); + + if ($val !== '') + { + $this->qb_select[] = $val; + $this->qb_no_escape[] = $escape; + + if ($this->qb_caching === TRUE) + { + $this->qb_cache_select[] = $val; + $this->qb_cache_exists[] = 'select'; + $this->qb_cache_no_escape[] = $escape; + } + } + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Select Max + * + * Generates a SELECT MAX(field) portion of a query + * + * @param string the field + * @param string an alias + * @return CI_DB_query_builder + */ + public function select_max($select = '', $alias = '') + { + return $this->_max_min_avg_sum($select, $alias, 'MAX'); + } + + // -------------------------------------------------------------------- + + /** + * Select Min + * + * Generates a SELECT MIN(field) portion of a query + * + * @param string the field + * @param string an alias + * @return CI_DB_query_builder + */ + public function select_min($select = '', $alias = '') + { + return $this->_max_min_avg_sum($select, $alias, 'MIN'); + } + + // -------------------------------------------------------------------- + + /** + * Select Average + * + * Generates a SELECT AVG(field) portion of a query + * + * @param string the field + * @param string an alias + * @return CI_DB_query_builder + */ + public function select_avg($select = '', $alias = '') + { + return $this->_max_min_avg_sum($select, $alias, 'AVG'); + } + + // -------------------------------------------------------------------- + + /** + * Select Sum + * + * Generates a SELECT SUM(field) portion of a query + * + * @param string the field + * @param string an alias + * @return CI_DB_query_builder + */ + public function select_sum($select = '', $alias = '') + { + return $this->_max_min_avg_sum($select, $alias, 'SUM'); + } + + // -------------------------------------------------------------------- + + /** + * SELECT [MAX|MIN|AVG|SUM]() + * + * @used-by select_max() + * @used-by select_min() + * @used-by select_avg() + * @used-by select_sum() + * + * @param string $select Field name + * @param string $alias + * @param string $type + * @return CI_DB_query_builder + */ + protected function _max_min_avg_sum($select = '', $alias = '', $type = 'MAX') + { + if ( ! is_string($select) OR $select === '') + { + $this->display_error('db_invalid_query'); + } + + $type = strtoupper($type); + + if ( ! in_array($type, array('MAX', 'MIN', 'AVG', 'SUM'))) + { + show_error('Invalid function type: '.$type); + } + + if ($alias === '') + { + $alias = $this->_create_alias_from_table(trim($select)); + } + + $sql = $type.'('.$this->protect_identifiers(trim($select)).') AS '.$this->escape_identifiers(trim($alias)); + + $this->qb_select[] = $sql; + $this->qb_no_escape[] = NULL; + + if ($this->qb_caching === TRUE) + { + $this->qb_cache_select[] = $sql; + $this->qb_cache_exists[] = 'select'; + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Determines the alias name based on the table + * + * @param string $item + * @return string + */ + protected function _create_alias_from_table($item) + { + if (strpos($item, '.') !== FALSE) + { + $item = explode('.', $item); + return end($item); + } + + return $item; + } + + // -------------------------------------------------------------------- + + /** + * DISTINCT + * + * Sets a flag which tells the query string compiler to add DISTINCT + * + * @param bool $val + * @return CI_DB_query_builder + */ + public function distinct($val = TRUE) + { + $this->qb_distinct = is_bool($val) ? $val : TRUE; + return $this; + } + + // -------------------------------------------------------------------- + + /** + * From + * + * Generates the FROM portion of the query + * + * @param mixed $from can be a string or array + * @return CI_DB_query_builder + */ + public function from($from) + { + foreach ((array) $from as $val) + { + if (strpos($val, ',') !== FALSE) + { + foreach (explode(',', $val) as $v) + { + $v = trim($v); + $this->_track_aliases($v); + + $this->qb_from[] = $v = $this->protect_identifiers($v, TRUE, NULL, FALSE); + + if ($this->qb_caching === TRUE) + { + $this->qb_cache_from[] = $v; + $this->qb_cache_exists[] = 'from'; + } + } + } + else + { + $val = trim($val); + + // Extract any aliases that might exist. We use this information + // in the protect_identifiers to know whether to add a table prefix + $this->_track_aliases($val); + + $this->qb_from[] = $val = $this->protect_identifiers($val, TRUE, NULL, FALSE); + + if ($this->qb_caching === TRUE) + { + $this->qb_cache_from[] = $val; + $this->qb_cache_exists[] = 'from'; + } + } + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * JOIN + * + * Generates the JOIN portion of the query + * + * @param string + * @param string the join condition + * @param string the type of join + * @param string whether not to try to escape identifiers + * @return CI_DB_query_builder + */ + public function join($table, $cond, $type = '', $escape = NULL) + { + if ($type !== '') + { + $type = strtoupper(trim($type)); + + if ( ! in_array($type, array('LEFT', 'RIGHT', 'OUTER', 'INNER', 'LEFT OUTER', 'RIGHT OUTER', 'FULL OUTER', 'FULL'), TRUE)) + { + $type = ''; + } + else + { + $type .= ' '; + } + } + + // Extract any aliases that might exist. We use this information + // in the protect_identifiers to know whether to add a table prefix + $this->_track_aliases($table); + + is_bool($escape) OR $escape = $this->_protect_identifiers; + + if ( ! $this->_has_operator($cond)) + { + $cond = ' USING ('.($escape ? $this->escape_identifiers($cond) : $cond).')'; + } + elseif ($escape === FALSE) + { + $cond = ' ON '.$cond; + } + else + { + // Split multiple conditions + if (preg_match_all('/\sAND\s|\sOR\s/i', $cond, $joints, PREG_OFFSET_CAPTURE)) + { + $conditions = array(); + $joints = $joints[0]; + array_unshift($joints, array('', 0)); + + for ($i = count($joints) - 1, $pos = strlen($cond); $i >= 0; $i--) + { + $joints[$i][1] += strlen($joints[$i][0]); // offset + $conditions[$i] = substr($cond, $joints[$i][1], $pos - $joints[$i][1]); + $pos = $joints[$i][1] - strlen($joints[$i][0]); + $joints[$i] = $joints[$i][0]; + } + } + else + { + $conditions = array($cond); + $joints = array(''); + } + + $cond = ' ON '; + for ($i = 0, $c = count($conditions); $i < $c; $i++) + { + $operator = $this->_get_operator($conditions[$i]); + $cond .= $joints[$i]; + $cond .= preg_match("/(\(*)?([\[\]\w\.'-]+)".preg_quote($operator)."(.*)/i", $conditions[$i], $match) + ? $match[1].$this->protect_identifiers($match[2]).$operator.$this->protect_identifiers($match[3]) + : $conditions[$i]; + } + } + + // Do we want to escape the table name? + if ($escape === TRUE) + { + $table = $this->protect_identifiers($table, TRUE, NULL, FALSE); + } + + // Assemble the JOIN statement + $this->qb_join[] = $join = $type.'JOIN '.$table.$cond; + + if ($this->qb_caching === TRUE) + { + $this->qb_cache_join[] = $join; + $this->qb_cache_exists[] = 'join'; + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * WHERE + * + * Generates the WHERE portion of the query. + * Separates multiple calls with 'AND'. + * + * @param mixed + * @param mixed + * @param bool + * @return CI_DB_query_builder + */ + public function where($key, $value = NULL, $escape = NULL) + { + return $this->_wh('qb_where', $key, $value, 'AND ', $escape); + } + + // -------------------------------------------------------------------- + + /** + * OR WHERE + * + * Generates the WHERE portion of the query. + * Separates multiple calls with 'OR'. + * + * @param mixed + * @param mixed + * @param bool + * @return CI_DB_query_builder + */ + public function or_where($key, $value = NULL, $escape = NULL) + { + return $this->_wh('qb_where', $key, $value, 'OR ', $escape); + } + + // -------------------------------------------------------------------- + + /** + * WHERE, HAVING + * + * @used-by where() + * @used-by or_where() + * @used-by having() + * @used-by or_having() + * + * @param string $qb_key 'qb_where' or 'qb_having' + * @param mixed $key + * @param mixed $value + * @param string $type + * @param bool $escape + * @return CI_DB_query_builder + */ + protected function _wh($qb_key, $key, $value = NULL, $type = 'AND ', $escape = NULL) + { + $qb_cache_key = ($qb_key === 'qb_having') ? 'qb_cache_having' : 'qb_cache_where'; + + if ( ! is_array($key)) + { + $key = array($key => $value); + } + + // If the escape value was not set will base it on the global setting + is_bool($escape) OR $escape = $this->_protect_identifiers; + + foreach ($key as $k => $v) + { + $prefix = (count($this->$qb_key) === 0 && count($this->$qb_cache_key) === 0) + ? $this->_group_get_type('') + : $this->_group_get_type($type); + + if ($v !== NULL) + { + if ($escape === TRUE) + { + $v = $this->escape($v); + } + + if ( ! $this->_has_operator($k)) + { + $k .= ' = '; + } + } + elseif ( ! $this->_has_operator($k)) + { + // value appears not to have been set, assign the test to IS NULL + $k .= ' IS NULL'; + } + elseif (preg_match('/\s*(!?=|<>|\sIS(?:\s+NOT)?\s)\s*$/i', $k, $match, PREG_OFFSET_CAPTURE)) + { + $k = substr($k, 0, $match[0][1]).($match[1][0] === '=' ? ' IS NULL' : ' IS NOT NULL'); + } + + ${$qb_key} = array('condition' => $prefix.$k, 'value' => $v, 'escape' => $escape); + $this->{$qb_key}[] = ${$qb_key}; + if ($this->qb_caching === TRUE) + { + $this->{$qb_cache_key}[] = ${$qb_key}; + $this->qb_cache_exists[] = substr($qb_key, 3); + } + + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * WHERE IN + * + * Generates a WHERE field IN('item', 'item') SQL query, + * joined with 'AND' if appropriate. + * + * @param string $key The field to search + * @param array $values The values searched on + * @param bool $escape + * @return CI_DB_query_builder + */ + public function where_in($key = NULL, $values = NULL, $escape = NULL) + { + return $this->_where_in($key, $values, FALSE, 'AND ', $escape); + } + + // -------------------------------------------------------------------- + + /** + * OR WHERE IN + * + * Generates a WHERE field IN('item', 'item') SQL query, + * joined with 'OR' if appropriate. + * + * @param string $key The field to search + * @param array $values The values searched on + * @param bool $escape + * @return CI_DB_query_builder + */ + public function or_where_in($key = NULL, $values = NULL, $escape = NULL) + { + return $this->_where_in($key, $values, FALSE, 'OR ', $escape); + } + + // -------------------------------------------------------------------- + + /** + * WHERE NOT IN + * + * Generates a WHERE field NOT IN('item', 'item') SQL query, + * joined with 'AND' if appropriate. + * + * @param string $key The field to search + * @param array $values The values searched on + * @param bool $escape + * @return CI_DB_query_builder + */ + public function where_not_in($key = NULL, $values = NULL, $escape = NULL) + { + return $this->_where_in($key, $values, TRUE, 'AND ', $escape); + } + + // -------------------------------------------------------------------- + + /** + * OR WHERE NOT IN + * + * Generates a WHERE field NOT IN('item', 'item') SQL query, + * joined with 'OR' if appropriate. + * + * @param string $key The field to search + * @param array $values The values searched on + * @param bool $escape + * @return CI_DB_query_builder + */ + public function or_where_not_in($key = NULL, $values = NULL, $escape = NULL) + { + return $this->_where_in($key, $values, TRUE, 'OR ', $escape); + } + + // -------------------------------------------------------------------- + + /** + * Internal WHERE IN + * + * @used-by where_in() + * @used-by or_where_in() + * @used-by where_not_in() + * @used-by or_where_not_in() + * + * @param string $key The field to search + * @param array $values The values searched on + * @param bool $not If the statement would be IN or NOT IN + * @param string $type + * @param bool $escape + * @return CI_DB_query_builder + */ + protected function _where_in($key = NULL, $values = NULL, $not = FALSE, $type = 'AND ', $escape = NULL) + { + if ($key === NULL OR $values === NULL) + { + return $this; + } + + if ( ! is_array($values)) + { + $values = array($values); + } + + is_bool($escape) OR $escape = $this->_protect_identifiers; + + $not = ($not) ? ' NOT' : ''; + + if ($escape === TRUE) + { + $where_in = array(); + foreach ($values as $value) + { + $where_in[] = $this->escape($value); + } + } + else + { + $where_in = array_values($values); + } + + $prefix = (count($this->qb_where) === 0 && count($this->qb_cache_where) === 0) + ? $this->_group_get_type('') + : $this->_group_get_type($type); + + $where_in = array( + 'condition' => $prefix.$key.$not.' IN('.implode(', ', $where_in).')', + 'value' => NULL, + 'escape' => $escape + ); + + $this->qb_where[] = $where_in; + if ($this->qb_caching === TRUE) + { + $this->qb_cache_where[] = $where_in; + $this->qb_cache_exists[] = 'where'; + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * LIKE + * + * Generates a %LIKE% portion of the query. + * Separates multiple calls with 'AND'. + * + * @param mixed $field + * @param string $match + * @param string $side + * @param bool $escape + * @return CI_DB_query_builder + */ + public function like($field, $match = '', $side = 'both', $escape = NULL) + { + return $this->_like($field, $match, 'AND ', $side, '', $escape); + } + + // -------------------------------------------------------------------- + + /** + * NOT LIKE + * + * Generates a NOT LIKE portion of the query. + * Separates multiple calls with 'AND'. + * + * @param mixed $field + * @param string $match + * @param string $side + * @param bool $escape + * @return CI_DB_query_builder + */ + public function not_like($field, $match = '', $side = 'both', $escape = NULL) + { + return $this->_like($field, $match, 'AND ', $side, 'NOT', $escape); + } + + // -------------------------------------------------------------------- + + /** + * OR LIKE + * + * Generates a %LIKE% portion of the query. + * Separates multiple calls with 'OR'. + * + * @param mixed $field + * @param string $match + * @param string $side + * @param bool $escape + * @return CI_DB_query_builder + */ + public function or_like($field, $match = '', $side = 'both', $escape = NULL) + { + return $this->_like($field, $match, 'OR ', $side, '', $escape); + } + + // -------------------------------------------------------------------- + + /** + * OR NOT LIKE + * + * Generates a NOT LIKE portion of the query. + * Separates multiple calls with 'OR'. + * + * @param mixed $field + * @param string $match + * @param string $side + * @param bool $escape + * @return CI_DB_query_builder + */ + public function or_not_like($field, $match = '', $side = 'both', $escape = NULL) + { + return $this->_like($field, $match, 'OR ', $side, 'NOT', $escape); + } + + // -------------------------------------------------------------------- + + /** + * Internal LIKE + * + * @used-by like() + * @used-by or_like() + * @used-by not_like() + * @used-by or_not_like() + * + * @param mixed $field + * @param string $match + * @param string $type + * @param string $side + * @param string $not + * @param bool $escape + * @return CI_DB_query_builder + */ + protected function _like($field, $match = '', $type = 'AND ', $side = 'both', $not = '', $escape = NULL) + { + if ( ! is_array($field)) + { + $field = array($field => $match); + } + + is_bool($escape) OR $escape = $this->_protect_identifiers; + // lowercase $side in case somebody writes e.g. 'BEFORE' instead of 'before' (doh) + $side = strtolower($side); + + foreach ($field as $k => $v) + { + $prefix = (count($this->qb_where) === 0 && count($this->qb_cache_where) === 0) + ? $this->_group_get_type('') : $this->_group_get_type($type); + + if ($escape === TRUE) + { + $v = $this->escape_like_str($v); + } + + switch ($side) + { + case 'none': + $v = "'{$v}'"; + break; + case 'before': + $v = "'%{$v}'"; + break; + case 'after': + $v = "'{$v}%'"; + break; + case 'both': + default: + $v = "'%{$v}%'"; + break; + } + + // some platforms require an escape sequence definition for LIKE wildcards + if ($escape === TRUE && $this->_like_escape_str !== '') + { + $v .= sprintf($this->_like_escape_str, $this->_like_escape_chr); + } + + $qb_where = array('condition' => "{$prefix} {$k} {$not} LIKE {$v}", 'value' => NULL, 'escape' => $escape); + $this->qb_where[] = $qb_where; + if ($this->qb_caching === TRUE) + { + $this->qb_cache_where[] = $qb_where; + $this->qb_cache_exists[] = 'where'; + } + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Starts a query group. + * + * @param string $not (Internal use only) + * @param string $type (Internal use only) + * @return CI_DB_query_builder + */ + public function group_start($not = '', $type = 'AND ') + { + $type = $this->_group_get_type($type); + + $this->qb_where_group_started = TRUE; + $prefix = (count($this->qb_where) === 0 && count($this->qb_cache_where) === 0) ? '' : $type; + $where = array( + 'condition' => $prefix.$not.str_repeat(' ', ++$this->qb_where_group_count).' (', + 'value' => NULL, + 'escape' => FALSE + ); + + $this->qb_where[] = $where; + if ($this->qb_caching) + { + $this->qb_cache_where[] = $where; + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Starts a query group, but ORs the group + * + * @return CI_DB_query_builder + */ + public function or_group_start() + { + return $this->group_start('', 'OR '); + } + + // -------------------------------------------------------------------- + + /** + * Starts a query group, but NOTs the group + * + * @return CI_DB_query_builder + */ + public function not_group_start() + { + return $this->group_start('NOT ', 'AND '); + } + + // -------------------------------------------------------------------- + + /** + * Starts a query group, but OR NOTs the group + * + * @return CI_DB_query_builder + */ + public function or_not_group_start() + { + return $this->group_start('NOT ', 'OR '); + } + + // -------------------------------------------------------------------- + + /** + * Ends a query group + * + * @return CI_DB_query_builder + */ + public function group_end() + { + $this->qb_where_group_started = FALSE; + $where = array( + 'condition' => str_repeat(' ', $this->qb_where_group_count--).')', + 'value' => NULL, + 'escape' => FALSE + ); + + $this->qb_where[] = $where; + if ($this->qb_caching) + { + $this->qb_cache_where[] = $where; + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Group_get_type + * + * @used-by group_start() + * @used-by _like() + * @used-by _wh() + * @used-by _where_in() + * + * @param string $type + * @return string + */ + protected function _group_get_type($type) + { + if ($this->qb_where_group_started) + { + $type = ''; + $this->qb_where_group_started = FALSE; + } + + return $type; + } + + // -------------------------------------------------------------------- + + /** + * GROUP BY + * + * @param mixed $by + * @param bool $escape + * @return CI_DB_query_builder + */ + public function group_by($by, $escape = NULL) + { + is_bool($escape) OR $escape = $this->_protect_identifiers; + + if (is_string($by)) + { + $by = ($escape === TRUE) + ? explode(',', $by) + : array($by); + } + + foreach ($by as $val) + { + $val = trim($val); + + if ($val !== '') + { + $val = array('field' => $val, 'escape' => $escape); + + $this->qb_groupby[] = $val; + if ($this->qb_caching === TRUE) + { + $this->qb_cache_groupby[] = $val; + $this->qb_cache_exists[] = 'groupby'; + } + } + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * HAVING + * + * Separates multiple calls with 'AND'. + * + * @param string $key + * @param string $value + * @param bool $escape + * @return CI_DB_query_builder + */ + public function having($key, $value = NULL, $escape = NULL) + { + return $this->_wh('qb_having', $key, $value, 'AND ', $escape); + } + + // -------------------------------------------------------------------- + + /** + * OR HAVING + * + * Separates multiple calls with 'OR'. + * + * @param string $key + * @param string $value + * @param bool $escape + * @return CI_DB_query_builder + */ + public function or_having($key, $value = NULL, $escape = NULL) + { + return $this->_wh('qb_having', $key, $value, 'OR ', $escape); + } + + // -------------------------------------------------------------------- + + /** + * ORDER BY + * + * @param string $orderby + * @param string $direction ASC, DESC or RANDOM + * @param bool $escape + * @return CI_DB_query_builder + */ + public function order_by($orderby, $direction = '', $escape = NULL) + { + $direction = strtoupper(trim($direction)); + + if ($direction === 'RANDOM') + { + $direction = ''; + + // Do we have a seed value? + $orderby = ctype_digit((string) $orderby) + ? sprintf($this->_random_keyword[1], $orderby) + : $this->_random_keyword[0]; + } + elseif (empty($orderby)) + { + return $this; + } + elseif ($direction !== '') + { + $direction = in_array($direction, array('ASC', 'DESC'), TRUE) ? ' '.$direction : ''; + } + + is_bool($escape) OR $escape = $this->_protect_identifiers; + + if ($escape === FALSE) + { + $qb_orderby[] = array('field' => $orderby, 'direction' => $direction, 'escape' => FALSE); + } + else + { + $qb_orderby = array(); + foreach (explode(',', $orderby) as $field) + { + $qb_orderby[] = ($direction === '' && preg_match('/\s+(ASC|DESC)$/i', rtrim($field), $match, PREG_OFFSET_CAPTURE)) + ? array('field' => ltrim(substr($field, 0, $match[0][1])), 'direction' => ' '.$match[1][0], 'escape' => TRUE) + : array('field' => trim($field), 'direction' => $direction, 'escape' => TRUE); + } + } + + $this->qb_orderby = array_merge($this->qb_orderby, $qb_orderby); + if ($this->qb_caching === TRUE) + { + $this->qb_cache_orderby = array_merge($this->qb_cache_orderby, $qb_orderby); + $this->qb_cache_exists[] = 'orderby'; + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * LIMIT + * + * @param int $value LIMIT value + * @param int $offset OFFSET value + * @return CI_DB_query_builder + */ + public function limit($value, $offset = 0) + { + is_null($value) OR $this->qb_limit = (int) $value; + empty($offset) OR $this->qb_offset = (int) $offset; + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Sets the OFFSET value + * + * @param int $offset OFFSET value + * @return CI_DB_query_builder + */ + public function offset($offset) + { + empty($offset) OR $this->qb_offset = (int) $offset; + return $this; + } + + // -------------------------------------------------------------------- + + /** + * LIMIT string + * + * Generates a platform-specific LIMIT clause. + * + * @param string $sql SQL Query + * @return string + */ + protected function _limit($sql) + { + return $sql.' LIMIT '.($this->qb_offset ? $this->qb_offset.', ' : '').(int) $this->qb_limit; + } + + // -------------------------------------------------------------------- + + /** + * The "set" function. + * + * Allows key/value pairs to be set for inserting or updating + * + * @param mixed + * @param string + * @param bool + * @return CI_DB_query_builder + */ + public function set($key, $value = '', $escape = NULL) + { + $key = $this->_object_to_array($key); + + if ( ! is_array($key)) + { + $key = array($key => $value); + } + + is_bool($escape) OR $escape = $this->_protect_identifiers; + + foreach ($key as $k => $v) + { + $this->qb_set[$this->protect_identifiers($k, FALSE, $escape)] = ($escape) + ? $this->escape($v) : $v; + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Get SELECT query string + * + * Compiles a SELECT query string and returns the sql. + * + * @param string the table name to select from (optional) + * @param bool TRUE: resets QB values; FALSE: leave QB values alone + * @return string + */ + public function get_compiled_select($table = '', $reset = TRUE) + { + if ($table !== '') + { + $this->_track_aliases($table); + $this->from($table); + } + + $select = $this->_compile_select(); + + if ($reset === TRUE) + { + $this->_reset_select(); + } + + return $select; + } + + // -------------------------------------------------------------------- + + /** + * Get + * + * Compiles the select statement based on the other functions called + * and runs the query + * + * @param string the table + * @param string the limit clause + * @param string the offset clause + * @return CI_DB_result + */ + public function get($table = '', $limit = NULL, $offset = NULL) + { + if ($table !== '') + { + $this->_track_aliases($table); + $this->from($table); + } + + if ( ! empty($limit)) + { + $this->limit($limit, $offset); + } + + $result = $this->query($this->_compile_select()); + $this->_reset_select(); + return $result; + } + + // -------------------------------------------------------------------- + + /** + * "Count All Results" query + * + * Generates a platform-specific query string that counts all records + * returned by an Query Builder query. + * + * @param string + * @param bool the reset clause + * @return int + */ + public function count_all_results($table = '', $reset = TRUE) + { + if ($table !== '') + { + $this->_track_aliases($table); + $this->from($table); + } + + // ORDER BY usage is often problematic here (most notably + // on Microsoft SQL Server) and ultimately unnecessary + // for selecting COUNT(*) ... + $qb_orderby = $this->qb_orderby; + $qb_cache_orderby = $this->qb_cache_orderby; + $this->qb_orderby = $this->qb_cache_orderby = array(); + + $result = ($this->qb_distinct === TRUE OR ! empty($this->qb_groupby) OR ! empty($this->qb_cache_groupby) OR ! empty($this->qb_having) OR $this->qb_limit OR $this->qb_offset) + ? $this->query($this->_count_string.$this->protect_identifiers('numrows')."\nFROM (\n".$this->_compile_select()."\n) CI_count_all_results") + : $this->query($this->_compile_select($this->_count_string.$this->protect_identifiers('numrows'))); + + if ($reset === TRUE) + { + $this->_reset_select(); + } + else + { + $this->qb_orderby = $qb_orderby; + $this->qb_cache_orderby = $qb_cache_orderby; + } + + if ($result->num_rows() === 0) + { + return 0; + } + + $row = $result->row(); + return (int) $row->numrows; + } + + // -------------------------------------------------------------------- + + /** + * get_where() + * + * Allows the where clause, limit and offset to be added directly + * + * @param string $table + * @param string $where + * @param int $limit + * @param int $offset + * @return CI_DB_result + */ + public function get_where($table = '', $where = NULL, $limit = NULL, $offset = NULL) + { + if ($table !== '') + { + $this->from($table); + } + + if ($where !== NULL) + { + $this->where($where); + } + + if ( ! empty($limit)) + { + $this->limit($limit, $offset); + } + + $result = $this->query($this->_compile_select()); + $this->_reset_select(); + return $result; + } + + // -------------------------------------------------------------------- + + /** + * Insert_Batch + * + * Compiles batch insert strings and runs the queries + * + * @param string $table Table to insert into + * @param array $set An associative array of insert values + * @param bool $escape Whether to escape values and identifiers + * @return int Number of rows inserted or FALSE on failure + */ + public function insert_batch($table, $set = NULL, $escape = NULL, $batch_size = 100) + { + if ($set === NULL) + { + if (empty($this->qb_set)) + { + return ($this->db_debug) ? $this->display_error('db_must_use_set') : FALSE; + } + } + else + { + if (empty($set)) + { + return ($this->db_debug) ? $this->display_error('insert_batch() called with no data') : FALSE; + } + + $this->set_insert_batch($set, '', $escape); + } + + if (strlen($table) === 0) + { + if ( ! isset($this->qb_from[0])) + { + return ($this->db_debug) ? $this->display_error('db_must_set_table') : FALSE; + } + + $table = $this->qb_from[0]; + } + + // Batch this baby + $affected_rows = 0; + for ($i = 0, $total = count($this->qb_set); $i < $total; $i += $batch_size) + { + if ($this->query($this->_insert_batch($this->protect_identifiers($table, TRUE, $escape, FALSE), $this->qb_keys, array_slice($this->qb_set, $i, $batch_size)))) + { + $affected_rows += $this->affected_rows(); + } + } + + $this->_reset_write(); + return $affected_rows; + } + + // -------------------------------------------------------------------- + + /** + * Insert batch statement + * + * Generates a platform-specific insert string from the supplied data. + * + * @param string $table Table name + * @param array $keys INSERT keys + * @param array $values INSERT values + * @return string + */ + protected function _insert_batch($table, $keys, $values) + { + return 'INSERT INTO '.$table.' ('.implode(', ', $keys).') VALUES '.implode(', ', $values); + } + + // -------------------------------------------------------------------- + + /** + * The "set_insert_batch" function. Allows key/value pairs to be set for batch inserts + * + * @param mixed + * @param string + * @param bool + * @return CI_DB_query_builder + */ + public function set_insert_batch($key, $value = '', $escape = NULL) + { + $key = $this->_object_to_array_batch($key); + + if ( ! is_array($key)) + { + $key = array($key => $value); + } + + is_bool($escape) OR $escape = $this->_protect_identifiers; + + $keys = array_keys($this->_object_to_array(reset($key))); + sort($keys); + + foreach ($key as $row) + { + $row = $this->_object_to_array($row); + if (count(array_diff($keys, array_keys($row))) > 0 OR count(array_diff(array_keys($row), $keys)) > 0) + { + // batch function above returns an error on an empty array + $this->qb_set[] = array(); + return; + } + + ksort($row); // puts $row in the same order as our keys + + if ($escape !== FALSE) + { + $clean = array(); + foreach ($row as $value) + { + $clean[] = $this->escape($value); + } + + $row = $clean; + } + + $this->qb_set[] = '('.implode(',', $row).')'; + } + + foreach ($keys as $k) + { + $this->qb_keys[] = $this->protect_identifiers($k, FALSE, $escape); + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Get INSERT query string + * + * Compiles an insert query and returns the sql + * + * @param string the table to insert into + * @param bool TRUE: reset QB values; FALSE: leave QB values alone + * @return string + */ + public function get_compiled_insert($table = '', $reset = TRUE) + { + if ($this->_validate_insert($table) === FALSE) + { + return FALSE; + } + + $sql = $this->_insert( + $this->protect_identifiers( + $this->qb_from[0], TRUE, NULL, FALSE + ), + array_keys($this->qb_set), + array_values($this->qb_set) + ); + + if ($reset === TRUE) + { + $this->_reset_write(); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Insert + * + * Compiles an insert string and runs the query + * + * @param string the table to insert data into + * @param array an associative array of insert values + * @param bool $escape Whether to escape values and identifiers + * @return bool TRUE on success, FALSE on failure + */ + public function insert($table = '', $set = NULL, $escape = NULL) + { + if ($set !== NULL) + { + $this->set($set, '', $escape); + } + + if ($this->_validate_insert($table) === FALSE) + { + return FALSE; + } + + $sql = $this->_insert( + $this->protect_identifiers( + $this->qb_from[0], TRUE, $escape, FALSE + ), + array_keys($this->qb_set), + array_values($this->qb_set) + ); + + $this->_reset_write(); + return $this->query($sql); + } + + // -------------------------------------------------------------------- + + /** + * Validate Insert + * + * This method is used by both insert() and get_compiled_insert() to + * validate that the there data is actually being set and that table + * has been chosen to be inserted into. + * + * @param string the table to insert data into + * @return string + */ + protected function _validate_insert($table = '') + { + if (count($this->qb_set) === 0) + { + return ($this->db_debug) ? $this->display_error('db_must_use_set') : FALSE; + } + + if ($table !== '') + { + $this->qb_from[0] = $table; + } + elseif ( ! isset($this->qb_from[0])) + { + return ($this->db_debug) ? $this->display_error('db_must_set_table') : FALSE; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Replace + * + * Compiles an replace into string and runs the query + * + * @param string the table to replace data into + * @param array an associative array of insert values + * @return bool TRUE on success, FALSE on failure + */ + public function replace($table = '', $set = NULL) + { + if ($set !== NULL) + { + $this->set($set); + } + + if (count($this->qb_set) === 0) + { + return ($this->db_debug) ? $this->display_error('db_must_use_set') : FALSE; + } + + if ($table === '') + { + if ( ! isset($this->qb_from[0])) + { + return ($this->db_debug) ? $this->display_error('db_must_set_table') : FALSE; + } + + $table = $this->qb_from[0]; + } + + $sql = $this->_replace($this->protect_identifiers($table, TRUE, NULL, FALSE), array_keys($this->qb_set), array_values($this->qb_set)); + + $this->_reset_write(); + return $this->query($sql); + } + + // -------------------------------------------------------------------- + + /** + * Replace statement + * + * Generates a platform-specific replace string from the supplied data + * + * @param string the table name + * @param array the insert keys + * @param array the insert values + * @return string + */ + protected function _replace($table, $keys, $values) + { + return 'REPLACE INTO '.$table.' ('.implode(', ', $keys).') VALUES ('.implode(', ', $values).')'; + } + + // -------------------------------------------------------------------- + + /** + * FROM tables + * + * Groups tables in FROM clauses if needed, so there is no confusion + * about operator precedence. + * + * Note: This is only used (and overridden) by MySQL and CUBRID. + * + * @return string + */ + protected function _from_tables() + { + return implode(', ', $this->qb_from); + } + + // -------------------------------------------------------------------- + + /** + * Get UPDATE query string + * + * Compiles an update query and returns the sql + * + * @param string the table to update + * @param bool TRUE: reset QB values; FALSE: leave QB values alone + * @return string + */ + public function get_compiled_update($table = '', $reset = TRUE) + { + // Combine any cached components with the current statements + $this->_merge_cache(); + + if ($this->_validate_update($table) === FALSE) + { + return FALSE; + } + + $sql = $this->_update($this->qb_from[0], $this->qb_set); + + if ($reset === TRUE) + { + $this->_reset_write(); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * UPDATE + * + * Compiles an update string and runs the query. + * + * @param string $table + * @param array $set An associative array of update values + * @param mixed $where + * @param int $limit + * @return bool TRUE on success, FALSE on failure + */ + public function update($table = '', $set = NULL, $where = NULL, $limit = NULL) + { + // Combine any cached components with the current statements + $this->_merge_cache(); + + if ($set !== NULL) + { + $this->set($set); + } + + if ($this->_validate_update($table) === FALSE) + { + return FALSE; + } + + if ($where !== NULL) + { + $this->where($where); + } + + if ( ! empty($limit)) + { + $this->limit($limit); + } + + $sql = $this->_update($this->qb_from[0], $this->qb_set); + $this->_reset_write(); + return $this->query($sql); + } + + // -------------------------------------------------------------------- + + /** + * Validate Update + * + * This method is used by both update() and get_compiled_update() to + * validate that data is actually being set and that a table has been + * chosen to be update. + * + * @param string the table to update data on + * @return bool + */ + protected function _validate_update($table) + { + if (count($this->qb_set) === 0) + { + return ($this->db_debug) ? $this->display_error('db_must_use_set') : FALSE; + } + + if ($table !== '') + { + $this->qb_from = array($this->protect_identifiers($table, TRUE, NULL, FALSE)); + } + elseif ( ! isset($this->qb_from[0])) + { + return ($this->db_debug) ? $this->display_error('db_must_set_table') : FALSE; + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Update_Batch + * + * Compiles an update string and runs the query + * + * @param string the table to retrieve the results from + * @param array an associative array of update values + * @param string the where key + * @return int number of rows affected or FALSE on failure + */ + public function update_batch($table, $set = NULL, $index = NULL, $batch_size = 100) + { + // Combine any cached components with the current statements + $this->_merge_cache(); + + if ($index === NULL) + { + return ($this->db_debug) ? $this->display_error('db_must_use_index') : FALSE; + } + + if ($set === NULL) + { + if (empty($this->qb_set_ub)) + { + return ($this->db_debug) ? $this->display_error('db_must_use_set') : FALSE; + } + } + else + { + if (empty($set)) + { + return ($this->db_debug) ? $this->display_error('update_batch() called with no data') : FALSE; + } + + $this->set_update_batch($set, $index); + } + + if (strlen($table) === 0) + { + if ( ! isset($this->qb_from[0])) + { + return ($this->db_debug) ? $this->display_error('db_must_set_table') : FALSE; + } + + $table = $this->qb_from[0]; + } + + // Batch this baby + $affected_rows = 0; + for ($i = 0, $total = count($this->qb_set_ub); $i < $total; $i += $batch_size) + { + if ($this->query($this->_update_batch($this->protect_identifiers($table, TRUE, NULL, FALSE), array_slice($this->qb_set_ub, $i, $batch_size), $index))) + { + $affected_rows += $this->affected_rows(); + } + + $this->qb_where = array(); + } + + $this->_reset_write(); + return $affected_rows; + } + + // -------------------------------------------------------------------- + + /** + * Update_Batch statement + * + * Generates a platform-specific batch update string from the supplied data + * + * @param string $table Table name + * @param array $values Update data + * @param string $index WHERE key + * @return string + */ + protected function _update_batch($table, $values, $index) + { + $ids = array(); + foreach ($values as $key => $val) + { + $ids[] = $val[$index]['value']; + + foreach (array_keys($val) as $field) + { + if ($field !== $index) + { + $final[$val[$field]['field']][] = 'WHEN '.$val[$index]['field'].' = '.$val[$index]['value'].' THEN '.$val[$field]['value']; + } + } + } + + $cases = ''; + foreach ($final as $k => $v) + { + $cases .= $k." = CASE \n" + .implode("\n", $v)."\n" + .'ELSE '.$k.' END, '; + } + + $this->where($val[$index]['field'].' IN('.implode(',', $ids).')', NULL, FALSE); + + return 'UPDATE '.$table.' SET '.substr($cases, 0, -2).$this->_compile_wh('qb_where'); + } + + // -------------------------------------------------------------------- + + /** + * The "set_update_batch" function. Allows key/value pairs to be set for batch updating + * + * @param array + * @param string + * @param bool + * @return CI_DB_query_builder + */ + public function set_update_batch($key, $index = '', $escape = NULL) + { + $key = $this->_object_to_array_batch($key); + + if ( ! is_array($key)) + { + // @todo error + } + + is_bool($escape) OR $escape = $this->_protect_identifiers; + + foreach ($key as $k => $v) + { + $index_set = FALSE; + $clean = array(); + foreach ($v as $k2 => $v2) + { + if ($k2 === $index) + { + $index_set = TRUE; + } + + $clean[$k2] = array( + 'field' => $this->protect_identifiers($k2, FALSE, $escape), + 'value' => ($escape === FALSE ? $v2 : $this->escape($v2)) + ); + } + + if ($index_set === FALSE) + { + return $this->display_error('db_batch_missing_index'); + } + + $this->qb_set_ub[] = $clean; + } + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Empty Table + * + * Compiles a delete string and runs "DELETE FROM table" + * + * @param string the table to empty + * @return bool TRUE on success, FALSE on failure + */ + public function empty_table($table = '') + { + if ($table === '') + { + if ( ! isset($this->qb_from[0])) + { + return ($this->db_debug) ? $this->display_error('db_must_set_table') : FALSE; + } + + $table = $this->qb_from[0]; + } + else + { + $table = $this->protect_identifiers($table, TRUE, NULL, FALSE); + } + + $sql = $this->_delete($table); + $this->_reset_write(); + return $this->query($sql); + } + + // -------------------------------------------------------------------- + + /** + * Truncate + * + * Compiles a truncate string and runs the query + * If the database does not support the truncate() command + * This function maps to "DELETE FROM table" + * + * @param string the table to truncate + * @return bool TRUE on success, FALSE on failure + */ + public function truncate($table = '') + { + if ($table === '') + { + if ( ! isset($this->qb_from[0])) + { + return ($this->db_debug) ? $this->display_error('db_must_set_table') : FALSE; + } + + $table = $this->qb_from[0]; + } + else + { + $table = $this->protect_identifiers($table, TRUE, NULL, FALSE); + } + + $sql = $this->_truncate($table); + $this->_reset_write(); + return $this->query($sql); + } + + // -------------------------------------------------------------------- + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * + * If the database does not support the truncate() command, + * then this method maps to 'DELETE FROM table' + * + * @param string the table name + * @return string + */ + protected function _truncate($table) + { + return 'TRUNCATE '.$table; + } + + // -------------------------------------------------------------------- + + /** + * Get DELETE query string + * + * Compiles a delete query string and returns the sql + * + * @param string the table to delete from + * @param bool TRUE: reset QB values; FALSE: leave QB values alone + * @return string + */ + public function get_compiled_delete($table = '', $reset = TRUE) + { + $this->return_delete_sql = TRUE; + $sql = $this->delete($table, '', NULL, $reset); + $this->return_delete_sql = FALSE; + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Delete + * + * Compiles a delete string and runs the query + * + * @param mixed the table(s) to delete from. String or array + * @param mixed the where clause + * @param mixed the limit clause + * @param bool + * @return mixed + */ + public function delete($table = '', $where = '', $limit = NULL, $reset_data = TRUE) + { + // Combine any cached components with the current statements + $this->_merge_cache(); + + if ($table === '') + { + if ( ! isset($this->qb_from[0])) + { + return ($this->db_debug) ? $this->display_error('db_must_set_table') : FALSE; + } + + $table = $this->qb_from[0]; + } + elseif (is_array($table)) + { + empty($where) && $reset_data = FALSE; + + foreach ($table as $single_table) + { + $this->delete($single_table, $where, $limit, $reset_data); + } + + return; + } + else + { + $table = $this->protect_identifiers($table, TRUE, NULL, FALSE); + } + + if ($where !== '') + { + $this->where($where); + } + + if ( ! empty($limit)) + { + $this->limit($limit); + } + + if (count($this->qb_where) === 0) + { + return ($this->db_debug) ? $this->display_error('db_del_must_use_where') : FALSE; + } + + $sql = $this->_delete($table); + if ($reset_data) + { + $this->_reset_write(); + } + + return ($this->return_delete_sql === TRUE) ? $sql : $this->query($sql); + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @param string the table name + * @return string + */ + protected function _delete($table) + { + return 'DELETE FROM '.$table.$this->_compile_wh('qb_where') + .($this->qb_limit !== FALSE ? ' LIMIT '.$this->qb_limit : ''); + } + + // -------------------------------------------------------------------- + + /** + * DB Prefix + * + * Prepends a database prefix if one exists in configuration + * + * @param string the table + * @return string + */ + public function dbprefix($table = '') + { + if ($table === '') + { + $this->display_error('db_table_name_required'); + } + + return $this->dbprefix.$table; + } + + // -------------------------------------------------------------------- + + /** + * Set DB Prefix + * + * Set's the DB Prefix to something new without needing to reconnect + * + * @param string the prefix + * @return string + */ + public function set_dbprefix($prefix = '') + { + return $this->dbprefix = $prefix; + } + + // -------------------------------------------------------------------- + + /** + * Track Aliases + * + * Used to track SQL statements written with aliased tables. + * + * @param string The table to inspect + * @return string + */ + protected function _track_aliases($table) + { + if (is_array($table)) + { + foreach ($table as $t) + { + $this->_track_aliases($t); + } + return; + } + + // Does the string contain a comma? If so, we need to separate + // the string into discreet statements + if (strpos($table, ',') !== FALSE) + { + return $this->_track_aliases(explode(',', $table)); + } + + // if a table alias is used we can recognize it by a space + if (strpos($table, ' ') !== FALSE) + { + // if the alias is written with the AS keyword, remove it + $table = preg_replace('/\s+AS\s+/i', ' ', $table); + + // Grab the alias + $table = trim(strrchr($table, ' ')); + + // Store the alias, if it doesn't already exist + if ( ! in_array($table, $this->qb_aliased_tables, TRUE)) + { + $this->qb_aliased_tables[] = $table; + if ($this->qb_caching === TRUE && ! in_array($table, $this->qb_cache_aliased_tables, TRUE)) + { + $this->qb_cache_aliased_tables[] = $table; + $this->qb_cache_exists[] = 'aliased_tables'; + } + } + } + } + + // -------------------------------------------------------------------- + + /** + * Compile the SELECT statement + * + * Generates a query string based on which functions were used. + * Should not be called directly. + * + * @param bool $select_override + * @return string + */ + protected function _compile_select($select_override = FALSE) + { + // Combine any cached components with the current statements + $this->_merge_cache(); + + // Write the "select" portion of the query + if ($select_override !== FALSE) + { + $sql = $select_override; + } + else + { + $sql = ( ! $this->qb_distinct) ? 'SELECT ' : 'SELECT DISTINCT '; + + if (count($this->qb_select) === 0) + { + $sql .= '*'; + } + else + { + // Cycle through the "select" portion of the query and prep each column name. + // The reason we protect identifiers here rather than in the select() function + // is because until the user calls the from() function we don't know if there are aliases + foreach ($this->qb_select as $key => $val) + { + $no_escape = isset($this->qb_no_escape[$key]) ? $this->qb_no_escape[$key] : NULL; + $this->qb_select[$key] = $this->protect_identifiers($val, FALSE, $no_escape); + } + + $sql .= implode(', ', $this->qb_select); + } + } + + // Write the "FROM" portion of the query + if (count($this->qb_from) > 0) + { + $sql .= "\nFROM ".$this->_from_tables(); + } + + // Write the "JOIN" portion of the query + if (count($this->qb_join) > 0) + { + $sql .= "\n".implode("\n", $this->qb_join); + } + + $sql .= $this->_compile_wh('qb_where') + .$this->_compile_group_by() + .$this->_compile_wh('qb_having') + .$this->_compile_order_by(); // ORDER BY + + // LIMIT + if ($this->qb_limit !== FALSE OR $this->qb_offset) + { + return $this->_limit($sql."\n"); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Compile WHERE, HAVING statements + * + * Escapes identifiers in WHERE and HAVING statements at execution time. + * + * Required so that aliases are tracked properly, regardless of whether + * where(), or_where(), having(), or_having are called prior to from(), + * join() and dbprefix is added only if needed. + * + * @param string $qb_key 'qb_where' or 'qb_having' + * @return string SQL statement + */ + protected function _compile_wh($qb_key) + { + if (count($this->$qb_key) > 0) + { + for ($i = 0, $c = count($this->$qb_key); $i < $c; $i++) + { + // Is this condition already compiled? + if (is_string($this->{$qb_key}[$i])) + { + continue; + } + elseif ($this->{$qb_key}[$i]['escape'] === FALSE) + { + $this->{$qb_key}[$i] = $this->{$qb_key}[$i]['condition'].(isset($this->{$qb_key}[$i]['value']) ? ' '.$this->{$qb_key}[$i]['value'] : ''); + continue; + } + + // Split multiple conditions + $conditions = preg_split( + '/((?:^|\s+)AND\s+|(?:^|\s+)OR\s+)/i', + $this->{$qb_key}[$i]['condition'], + -1, + PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY + ); + + for ($ci = 0, $cc = count($conditions); $ci < $cc; $ci++) + { + if (($op = $this->_get_operator($conditions[$ci])) === FALSE + OR ! preg_match('/^(\(?)(.*)('.preg_quote($op, '/').')\s*(.*(? '(test <= foo)', /* the whole thing */ + // 1 => '(', /* optional */ + // 2 => 'test', /* the field name */ + // 3 => ' <= ', /* $op */ + // 4 => 'foo', /* optional, if $op is e.g. 'IS NULL' */ + // 5 => ')' /* optional */ + // ); + + if ( ! empty($matches[4])) + { + $this->_is_literal($matches[4]) OR $matches[4] = $this->protect_identifiers(trim($matches[4])); + $matches[4] = ' '.$matches[4]; + } + + $conditions[$ci] = $matches[1].$this->protect_identifiers(trim($matches[2])) + .' '.trim($matches[3]).$matches[4].$matches[5]; + } + + $this->{$qb_key}[$i] = implode('', $conditions).(isset($this->{$qb_key}[$i]['value']) ? ' '.$this->{$qb_key}[$i]['value'] : ''); + } + + return ($qb_key === 'qb_having' ? "\nHAVING " : "\nWHERE ") + .implode("\n", $this->$qb_key); + } + + return ''; + } + + // -------------------------------------------------------------------- + + /** + * Compile GROUP BY + * + * Escapes identifiers in GROUP BY statements at execution time. + * + * Required so that aliases are tracked properly, regardless of whether + * group_by() is called prior to from(), join() and dbprefix is added + * only if needed. + * + * @return string SQL statement + */ + protected function _compile_group_by() + { + if (count($this->qb_groupby) > 0) + { + for ($i = 0, $c = count($this->qb_groupby); $i < $c; $i++) + { + // Is it already compiled? + if (is_string($this->qb_groupby[$i])) + { + continue; + } + + $this->qb_groupby[$i] = ($this->qb_groupby[$i]['escape'] === FALSE OR $this->_is_literal($this->qb_groupby[$i]['field'])) + ? $this->qb_groupby[$i]['field'] + : $this->protect_identifiers($this->qb_groupby[$i]['field']); + } + + return "\nGROUP BY ".implode(', ', $this->qb_groupby); + } + + return ''; + } + + // -------------------------------------------------------------------- + + /** + * Compile ORDER BY + * + * Escapes identifiers in ORDER BY statements at execution time. + * + * Required so that aliases are tracked properly, regardless of whether + * order_by() is called prior to from(), join() and dbprefix is added + * only if needed. + * + * @return string SQL statement + */ + protected function _compile_order_by() + { + if (empty($this->qb_orderby)) + { + return ''; + } + + for ($i = 0, $c = count($this->qb_orderby); $i < $c; $i++) + { + if (is_string($this->qb_orderby[$i])) + { + continue; + } + + if ($this->qb_orderby[$i]['escape'] !== FALSE && ! $this->_is_literal($this->qb_orderby[$i]['field'])) + { + $this->qb_orderby[$i]['field'] = $this->protect_identifiers($this->qb_orderby[$i]['field']); + } + + $this->qb_orderby[$i] = $this->qb_orderby[$i]['field'].$this->qb_orderby[$i]['direction']; + } + + return "\nORDER BY ".implode(', ', $this->qb_orderby); + } + + // -------------------------------------------------------------------- + + /** + * Object to Array + * + * Takes an object as input and converts the class variables to array key/vals + * + * @param object + * @return array + */ + protected function _object_to_array($object) + { + if ( ! is_object($object)) + { + return $object; + } + + $array = array(); + foreach (get_object_vars($object) as $key => $val) + { + // There are some built in keys we need to ignore for this conversion + if ( ! is_object($val) && ! is_array($val) && $key !== '_parent_name') + { + $array[$key] = $val; + } + } + + return $array; + } + + // -------------------------------------------------------------------- + + /** + * Object to Array + * + * Takes an object as input and converts the class variables to array key/vals + * + * @param object + * @return array + */ + protected function _object_to_array_batch($object) + { + if ( ! is_object($object)) + { + return $object; + } + + $array = array(); + $out = get_object_vars($object); + $fields = array_keys($out); + + foreach ($fields as $val) + { + // There are some built in keys we need to ignore for this conversion + if ($val !== '_parent_name') + { + $i = 0; + foreach ($out[$val] as $data) + { + $array[$i++][$val] = $data; + } + } + } + + return $array; + } + + // -------------------------------------------------------------------- + + /** + * Start Cache + * + * Starts QB caching + * + * @return CI_DB_query_builder + */ + public function start_cache() + { + $this->qb_caching = TRUE; + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Stop Cache + * + * Stops QB caching + * + * @return CI_DB_query_builder + */ + public function stop_cache() + { + $this->qb_caching = FALSE; + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Flush Cache + * + * Empties the QB cache + * + * @return CI_DB_query_builder + */ + public function flush_cache() + { + $this->_reset_run(array( + 'qb_cache_select' => array(), + 'qb_cache_from' => array(), + 'qb_cache_join' => array(), + 'qb_cache_where' => array(), + 'qb_cache_groupby' => array(), + 'qb_cache_having' => array(), + 'qb_cache_orderby' => array(), + 'qb_cache_set' => array(), + 'qb_cache_exists' => array(), + 'qb_cache_no_escape' => array(), + 'qb_cache_aliased_tables' => array() + )); + + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Merge Cache + * + * When called, this function merges any cached QB arrays with + * locally called ones. + * + * @return void + */ + protected function _merge_cache() + { + if (count($this->qb_cache_exists) === 0) + { + return; + } + elseif (in_array('select', $this->qb_cache_exists, TRUE)) + { + $qb_no_escape = $this->qb_cache_no_escape; + } + + foreach (array_unique($this->qb_cache_exists) as $val) // select, from, etc. + { + $qb_variable = 'qb_'.$val; + $qb_cache_var = 'qb_cache_'.$val; + $qb_new = $this->$qb_cache_var; + + for ($i = 0, $c = count($this->$qb_variable); $i < $c; $i++) + { + if ( ! in_array($this->{$qb_variable}[$i], $qb_new, TRUE)) + { + $qb_new[] = $this->{$qb_variable}[$i]; + if ($val === 'select') + { + $qb_no_escape[] = $this->qb_no_escape[$i]; + } + } + } + + $this->$qb_variable = $qb_new; + if ($val === 'select') + { + $this->qb_no_escape = $qb_no_escape; + } + } + } + + // -------------------------------------------------------------------- + + /** + * Is literal + * + * Determines if a string represents a literal value or a field name + * + * @param string $str + * @return bool + */ + protected function _is_literal($str) + { + $str = trim($str); + + if (empty($str) OR ctype_digit($str) OR (string) (float) $str === $str OR in_array(strtoupper($str), array('TRUE', 'FALSE'), TRUE)) + { + return TRUE; + } + + static $_str; + + if (empty($_str)) + { + $_str = ($this->_escape_char !== '"') + ? array('"', "'") : array("'"); + } + + return in_array($str[0], $_str, TRUE); + } + + // -------------------------------------------------------------------- + + /** + * Reset Query Builder values. + * + * Publicly-visible method to reset the QB values. + * + * @return CI_DB_query_builder + */ + public function reset_query() + { + $this->_reset_select(); + $this->_reset_write(); + return $this; + } + + // -------------------------------------------------------------------- + + /** + * Resets the query builder values. Called by the get() function + * + * @param array An array of fields to reset + * @return void + */ + protected function _reset_run($qb_reset_items) + { + foreach ($qb_reset_items as $item => $default_value) + { + $this->$item = $default_value; + } + } + + // -------------------------------------------------------------------- + + /** + * Resets the query builder values. Called by the get() function + * + * @return void + */ + protected function _reset_select() + { + $this->_reset_run(array( + 'qb_select' => array(), + 'qb_from' => array(), + 'qb_join' => array(), + 'qb_where' => array(), + 'qb_groupby' => array(), + 'qb_having' => array(), + 'qb_orderby' => array(), + 'qb_aliased_tables' => array(), + 'qb_no_escape' => array(), + 'qb_distinct' => FALSE, + 'qb_limit' => FALSE, + 'qb_offset' => FALSE + )); + } + + // -------------------------------------------------------------------- + + /** + * Resets the query builder "write" values. + * + * Called by the insert() update() insert_batch() update_batch() and delete() functions + * + * @return void + */ + protected function _reset_write() + { + $this->_reset_run(array( + 'qb_set' => array(), + 'qb_set_ub' => array(), + 'qb_from' => array(), + 'qb_join' => array(), + 'qb_where' => array(), + 'qb_orderby' => array(), + 'qb_keys' => array(), + 'qb_limit' => FALSE + )); + } + +} diff --git a/system/database/DB_result.php b/system/database/DB_result.php new file mode 100644 index 0000000..94da294 --- /dev/null +++ b/system/database/DB_result.php @@ -0,0 +1,666 @@ +conn_id = $driver_object->conn_id; + $this->result_id = $driver_object->result_id; + } + + // -------------------------------------------------------------------- + + /** + * Number of rows in the result set + * + * @return int + */ + public function num_rows() + { + if (is_int($this->num_rows)) + { + return $this->num_rows; + } + elseif (count($this->result_array) > 0) + { + return $this->num_rows = count($this->result_array); + } + elseif (count($this->result_object) > 0) + { + return $this->num_rows = count($this->result_object); + } + + return $this->num_rows = count($this->result_array()); + } + + // -------------------------------------------------------------------- + + /** + * Query result. Acts as a wrapper function for the following functions. + * + * @param string $type 'object', 'array' or a custom class name + * @return array + */ + public function result($type = 'object') + { + if ($type === 'array') + { + return $this->result_array(); + } + elseif ($type === 'object') + { + return $this->result_object(); + } + + return $this->custom_result_object($type); + } + + // -------------------------------------------------------------------- + + /** + * Custom query result. + * + * @param string $class_name + * @return array + */ + public function custom_result_object($class_name) + { + if (isset($this->custom_result_object[$class_name])) + { + return $this->custom_result_object[$class_name]; + } + elseif ( ! $this->result_id OR $this->num_rows === 0) + { + return array(); + } + + // Don't fetch the result set again if we already have it + $_data = NULL; + if (($c = count($this->result_array)) > 0) + { + $_data = 'result_array'; + } + elseif (($c = count($this->result_object)) > 0) + { + $_data = 'result_object'; + } + + if ($_data !== NULL) + { + for ($i = 0; $i < $c; $i++) + { + $this->custom_result_object[$class_name][$i] = new $class_name(); + + foreach ($this->{$_data}[$i] as $key => $value) + { + $this->custom_result_object[$class_name][$i]->$key = $value; + } + } + + return $this->custom_result_object[$class_name]; + } + + is_null($this->row_data) OR $this->data_seek(0); + $this->custom_result_object[$class_name] = array(); + + while ($row = $this->_fetch_object($class_name)) + { + $this->custom_result_object[$class_name][] = $row; + } + + return $this->custom_result_object[$class_name]; + } + + // -------------------------------------------------------------------- + + /** + * Query result. "object" version. + * + * @return array + */ + public function result_object() + { + if (count($this->result_object) > 0) + { + return $this->result_object; + } + + // In the event that query caching is on, the result_id variable + // will not be a valid resource so we'll simply return an empty + // array. + if ( ! $this->result_id OR $this->num_rows === 0) + { + return array(); + } + + if (($c = count($this->result_array)) > 0) + { + for ($i = 0; $i < $c; $i++) + { + $this->result_object[$i] = (object) $this->result_array[$i]; + } + + return $this->result_object; + } + + is_null($this->row_data) OR $this->data_seek(0); + while ($row = $this->_fetch_object()) + { + $this->result_object[] = $row; + } + + return $this->result_object; + } + + // -------------------------------------------------------------------- + + /** + * Query result. "array" version. + * + * @return array + */ + public function result_array() + { + if (count($this->result_array) > 0) + { + return $this->result_array; + } + + // In the event that query caching is on, the result_id variable + // will not be a valid resource so we'll simply return an empty + // array. + if ( ! $this->result_id OR $this->num_rows === 0) + { + return array(); + } + + if (($c = count($this->result_object)) > 0) + { + for ($i = 0; $i < $c; $i++) + { + $this->result_array[$i] = (array) $this->result_object[$i]; + } + + return $this->result_array; + } + + is_null($this->row_data) OR $this->data_seek(0); + while ($row = $this->_fetch_assoc()) + { + $this->result_array[] = $row; + } + + return $this->result_array; + } + + // -------------------------------------------------------------------- + + /** + * Row + * + * A wrapper method. + * + * @param mixed $n + * @param string $type 'object' or 'array' + * @return mixed + */ + public function row($n = 0, $type = 'object') + { + if ( ! is_numeric($n)) + { + // We cache the row data for subsequent uses + is_array($this->row_data) OR $this->row_data = $this->row_array(0); + + // array_key_exists() instead of isset() to allow for NULL values + if (empty($this->row_data) OR ! array_key_exists($n, $this->row_data)) + { + return NULL; + } + + return $this->row_data[$n]; + } + + if ($type === 'object') return $this->row_object($n); + elseif ($type === 'array') return $this->row_array($n); + + return $this->custom_row_object($n, $type); + } + + // -------------------------------------------------------------------- + + /** + * Assigns an item into a particular column slot + * + * @param mixed $key + * @param mixed $value + * @return void + */ + public function set_row($key, $value = NULL) + { + // We cache the row data for subsequent uses + if ( ! is_array($this->row_data)) + { + $this->row_data = $this->row_array(0); + } + + if (is_array($key)) + { + foreach ($key as $k => $v) + { + $this->row_data[$k] = $v; + } + return; + } + + if ($key !== '' && $value !== NULL) + { + $this->row_data[$key] = $value; + } + } + + // -------------------------------------------------------------------- + + /** + * Returns a single result row - custom object version + * + * @param int $n + * @param string $type + * @return object + */ + public function custom_row_object($n, $type) + { + isset($this->custom_result_object[$type]) OR $this->custom_result_object[$type] = $this->custom_result_object($type); + + if (count($this->custom_result_object[$type]) === 0) + { + return NULL; + } + + if ($n !== $this->current_row && isset($this->custom_result_object[$type][$n])) + { + $this->current_row = $n; + } + + return $this->custom_result_object[$type][$this->current_row]; + } + + // -------------------------------------------------------------------- + + /** + * Returns a single result row - object version + * + * @param int $n + * @return object + */ + public function row_object($n = 0) + { + $result = $this->result_object(); + if (count($result) === 0) + { + return NULL; + } + + if ($n !== $this->current_row && isset($result[$n])) + { + $this->current_row = $n; + } + + return $result[$this->current_row]; + } + + // -------------------------------------------------------------------- + + /** + * Returns a single result row - array version + * + * @param int $n + * @return array + */ + public function row_array($n = 0) + { + $result = $this->result_array(); + if (count($result) === 0) + { + return NULL; + } + + if ($n !== $this->current_row && isset($result[$n])) + { + $this->current_row = $n; + } + + return $result[$this->current_row]; + } + + // -------------------------------------------------------------------- + + /** + * Returns the "first" row + * + * @param string $type + * @return mixed + */ + public function first_row($type = 'object') + { + $result = $this->result($type); + return (count($result) === 0) ? NULL : $result[0]; + } + + // -------------------------------------------------------------------- + + /** + * Returns the "last" row + * + * @param string $type + * @return mixed + */ + public function last_row($type = 'object') + { + $result = $this->result($type); + return (count($result) === 0) ? NULL : $result[count($result) - 1]; + } + + // -------------------------------------------------------------------- + + /** + * Returns the "next" row + * + * @param string $type + * @return mixed + */ + public function next_row($type = 'object') + { + $result = $this->result($type); + if (count($result) === 0) + { + return NULL; + } + + return isset($result[$this->current_row + 1]) + ? $result[++$this->current_row] + : NULL; + } + + // -------------------------------------------------------------------- + + /** + * Returns the "previous" row + * + * @param string $type + * @return mixed + */ + public function previous_row($type = 'object') + { + $result = $this->result($type); + if (count($result) === 0) + { + return NULL; + } + + if (isset($result[$this->current_row - 1])) + { + --$this->current_row; + } + return $result[$this->current_row]; + } + + // -------------------------------------------------------------------- + + /** + * Returns an unbuffered row and move pointer to next row + * + * @param string $type 'array', 'object' or a custom class name + * @return mixed + */ + public function unbuffered_row($type = 'object') + { + if ($type === 'array') + { + return $this->_fetch_assoc(); + } + elseif ($type === 'object') + { + return $this->_fetch_object(); + } + + return $this->_fetch_object($type); + } + + // -------------------------------------------------------------------- + + /** + * The following methods are normally overloaded by the identically named + * methods in the platform-specific driver -- except when query caching + * is used. When caching is enabled we do not load the other driver. + * These functions are primarily here to prevent undefined function errors + * when a cached result object is in use. They are not otherwise fully + * operational due to the unavailability of the database resource IDs with + * cached results. + */ + + // -------------------------------------------------------------------- + + /** + * Number of fields in the result set + * + * Overridden by driver result classes. + * + * @return int + */ + public function num_fields() + { + return 0; + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names. + * + * Overridden by driver result classes. + * + * @return array + */ + public function list_fields() + { + return array(); + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data. + * + * Overridden by driver result classes. + * + * @return array + */ + public function field_data() + { + return array(); + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * Overridden by driver result classes. + * + * @return void + */ + public function free_result() + { + $this->result_id = FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Data Seek + * + * Moves the internal pointer to the desired offset. We call + * this internally before fetching results to make sure the + * result set starts at zero. + * + * Overridden by driver result classes. + * + * @param int $n + * @return bool + */ + public function data_seek($n = 0) + { + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array. + * + * Overridden by driver result classes. + * + * @return array + */ + protected function _fetch_assoc() + { + return array(); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object. + * + * Overridden by driver result classes. + * + * @param string $class_name + * @return object + */ + protected function _fetch_object($class_name = 'stdClass') + { + return new $class_name(); + } + +} diff --git a/system/database/DB_utility.php b/system/database/DB_utility.php new file mode 100644 index 0000000..11aa67b --- /dev/null +++ b/system/database/DB_utility.php @@ -0,0 +1,425 @@ +db =& $db; + log_message('info', 'Database Utility Class Initialized'); + } + + // -------------------------------------------------------------------- + + /** + * List databases + * + * @return array + */ + public function list_databases() + { + // Is there a cached result? + if (isset($this->db->data_cache['db_names'])) + { + return $this->db->data_cache['db_names']; + } + elseif ($this->_list_databases === FALSE) + { + return ($this->db->db_debug) ? $this->db->display_error('db_unsupported_feature') : FALSE; + } + + $this->db->data_cache['db_names'] = array(); + + $query = $this->db->query($this->_list_databases); + if ($query === FALSE) + { + return $this->db->data_cache['db_names']; + } + + for ($i = 0, $query = $query->result_array(), $c = count($query); $i < $c; $i++) + { + $this->db->data_cache['db_names'][] = current($query[$i]); + } + + return $this->db->data_cache['db_names']; + } + + // -------------------------------------------------------------------- + + /** + * Determine if a particular database exists + * + * @param string $database_name + * @return bool + */ + public function database_exists($database_name) + { + return in_array($database_name, $this->list_databases()); + } + + // -------------------------------------------------------------------- + + /** + * Optimize Table + * + * @param string $table_name + * @return mixed + */ + public function optimize_table($table_name) + { + if ($this->_optimize_table === FALSE) + { + return ($this->db->db_debug) ? $this->db->display_error('db_unsupported_feature') : FALSE; + } + + $query = $this->db->query(sprintf($this->_optimize_table, $this->db->escape_identifiers($table_name))); + if ($query !== FALSE) + { + $query = $query->result_array(); + return current($query); + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Optimize Database + * + * @return mixed + */ + public function optimize_database() + { + if ($this->_optimize_table === FALSE) + { + return ($this->db->db_debug) ? $this->db->display_error('db_unsupported_feature') : FALSE; + } + + $result = array(); + foreach ($this->db->list_tables() as $table_name) + { + $res = $this->db->query(sprintf($this->_optimize_table, $this->db->escape_identifiers($table_name))); + if (is_bool($res)) + { + return $res; + } + + // Build the result array... + $res = $res->result_array(); + $res = current($res); + $key = str_replace($this->db->database.'.', '', current($res)); + $keys = array_keys($res); + unset($res[$keys[0]]); + + $result[$key] = $res; + } + + return $result; + } + + // -------------------------------------------------------------------- + + /** + * Repair Table + * + * @param string $table_name + * @return mixed + */ + public function repair_table($table_name) + { + if ($this->_repair_table === FALSE) + { + return ($this->db->db_debug) ? $this->db->display_error('db_unsupported_feature') : FALSE; + } + + $query = $this->db->query(sprintf($this->_repair_table, $this->db->escape_identifiers($table_name))); + if (is_bool($query)) + { + return $query; + } + + $query = $query->result_array(); + return current($query); + } + + // -------------------------------------------------------------------- + + /** + * Generate CSV from a query result object + * + * @param object $query Query result object + * @param string $delim Delimiter (default: ,) + * @param string $newline Newline character (default: \n) + * @param string $enclosure Enclosure (default: ") + * @return string + */ + public function csv_from_result($query, $delim = ',', $newline = "\n", $enclosure = '"') + { + if ( ! is_object($query) OR ! method_exists($query, 'list_fields')) + { + show_error('You must submit a valid result object'); + } + + $out = ''; + // First generate the headings from the table column names + foreach ($query->list_fields() as $name) + { + $out .= $enclosure.str_replace($enclosure, $enclosure.$enclosure, $name).$enclosure.$delim; + } + + $out = substr($out, 0, -strlen($delim)).$newline; + + // Next blast through the result array and build out the rows + while ($row = $query->unbuffered_row('array')) + { + $line = array(); + foreach ($row as $item) + { + $line[] = $enclosure.str_replace($enclosure, $enclosure.$enclosure, (string) $item).$enclosure; + } + $out .= implode($delim, $line).$newline; + } + + return $out; + } + + // -------------------------------------------------------------------- + + /** + * Generate XML data from a query result object + * + * @param object $query Query result object + * @param array $params Any preferences + * @return string + */ + public function xml_from_result($query, $params = array()) + { + if ( ! is_object($query) OR ! method_exists($query, 'list_fields')) + { + show_error('You must submit a valid result object'); + } + + // Set our default values + foreach (array('root' => 'root', 'element' => 'element', 'newline' => "\n", 'tab' => "\t") as $key => $val) + { + if ( ! isset($params[$key])) + { + $params[$key] = $val; + } + } + + // Create variables for convenience + extract($params); + + // Load the xml helper + get_instance()->load->helper('xml'); + + // Generate the result + $xml = '<'.$root.'>'.$newline; + while ($row = $query->unbuffered_row()) + { + $xml .= $tab.'<'.$element.'>'.$newline; + foreach ($row as $key => $val) + { + $xml .= $tab.$tab.'<'.$key.'>'.xml_convert($val).''.$newline; + } + $xml .= $tab.''.$newline; + } + + return $xml.''.$newline; + } + + // -------------------------------------------------------------------- + + /** + * Database Backup + * + * @param array $params + * @return string + */ + public function backup($params = array()) + { + // If the parameters have not been submitted as an + // array then we know that it is simply the table + // name, which is a valid short cut. + if (is_string($params)) + { + $params = array('tables' => $params); + } + + // Set up our default preferences + $prefs = array( + 'tables' => array(), + 'ignore' => array(), + 'filename' => '', + 'format' => 'gzip', // gzip, zip, txt + 'add_drop' => TRUE, + 'add_insert' => TRUE, + 'newline' => "\n", + 'foreign_key_checks' => TRUE + ); + + // Did the user submit any preferences? If so set them.... + if (count($params) > 0) + { + foreach ($prefs as $key => $val) + { + if (isset($params[$key])) + { + $prefs[$key] = $params[$key]; + } + } + } + + // Are we backing up a complete database or individual tables? + // If no table names were submitted we'll fetch the entire table list + if (count($prefs['tables']) === 0) + { + $prefs['tables'] = $this->db->list_tables(); + } + + // Validate the format + if ( ! in_array($prefs['format'], array('gzip', 'zip', 'txt'), TRUE)) + { + $prefs['format'] = 'txt'; + } + + // Is the encoder supported? If not, we'll either issue an + // error or use plain text depending on the debug settings + if (($prefs['format'] === 'gzip' && ! function_exists('gzencode')) + OR ($prefs['format'] === 'zip' && ! function_exists('gzcompress'))) + { + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsupported_compression'); + } + + $prefs['format'] = 'txt'; + } + + // Was a Zip file requested? + if ($prefs['format'] === 'zip') + { + // Set the filename if not provided (only needed with Zip files) + if ($prefs['filename'] === '') + { + $prefs['filename'] = (count($prefs['tables']) === 1 ? $prefs['tables'] : $this->db->database) + .date('Y-m-d_H-i', time()).'.sql'; + } + else + { + // If they included the .zip file extension we'll remove it + if (preg_match('|.+?\.zip$|', $prefs['filename'])) + { + $prefs['filename'] = str_replace('.zip', '', $prefs['filename']); + } + + // Tack on the ".sql" file extension if needed + if ( ! preg_match('|.+?\.sql$|', $prefs['filename'])) + { + $prefs['filename'] .= '.sql'; + } + } + + // Load the Zip class and output it + $CI =& get_instance(); + $CI->load->library('zip'); + $CI->zip->add_data($prefs['filename'], $this->_backup($prefs)); + return $CI->zip->get_zip(); + } + elseif ($prefs['format'] === 'txt') // Was a text file requested? + { + return $this->_backup($prefs); + } + elseif ($prefs['format'] === 'gzip') // Was a Gzip file requested? + { + return gzencode($this->_backup($prefs)); + } + + return; + } + +} diff --git a/system/database/drivers/cubrid/cubrid_driver.php b/system/database/drivers/cubrid/cubrid_driver.php new file mode 100644 index 0000000..bd01be6 --- /dev/null +++ b/system/database/drivers/cubrid/cubrid_driver.php @@ -0,0 +1,406 @@ +dsn, $matches)) + { + if (stripos($matches[2], 'autocommit=off') !== FALSE) + { + $this->auto_commit = FALSE; + } + } + else + { + // If no port is defined by the user, use the default value + empty($this->port) OR $this->port = 33000; + } + } + + // -------------------------------------------------------------------- + + /** + * Non-persistent database connection + * + * @param bool $persistent + * @return resource + */ + public function db_connect($persistent = FALSE) + { + if (preg_match('/^CUBRID:[^:]+(:[0-9][1-9]{0,4})?:[^:]+:([^:]*):([^:]*):(\?.+)?$/', $this->dsn, $matches)) + { + $func = ($persistent !== TRUE) ? 'cubrid_connect_with_url' : 'cubrid_pconnect_with_url'; + return ($matches[2] === '' && $matches[3] === '' && $this->username !== '' && $this->password !== '') + ? $func($this->dsn, $this->username, $this->password) + : $func($this->dsn); + } + + $func = ($persistent !== TRUE) ? 'cubrid_connect' : 'cubrid_pconnect'; + return ($this->username !== '') + ? $func($this->hostname, $this->port, $this->database, $this->username, $this->password) + : $func($this->hostname, $this->port, $this->database); + } + + // -------------------------------------------------------------------- + + /** + * Reconnect + * + * Keep / reestablish the db connection if no queries have been + * sent for a length of time exceeding the server's idle timeout + * + * @return void + */ + public function reconnect() + { + if (cubrid_ping($this->conn_id) === FALSE) + { + $this->conn_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Database version number + * + * @return string + */ + public function version() + { + if (isset($this->data_cache['version'])) + { + return $this->data_cache['version']; + } + + return ( ! $this->conn_id OR ($version = cubrid_get_server_info($this->conn_id)) === FALSE) + ? FALSE + : $this->data_cache['version'] = $version; + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * @param string $sql an SQL query + * @return resource + */ + protected function _execute($sql) + { + return cubrid_query($sql, $this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @return bool + */ + protected function _trans_begin() + { + if (($autocommit = cubrid_get_autocommit($this->conn_id)) === NULL) + { + return FALSE; + } + elseif ($autocommit === TRUE) + { + return cubrid_set_autocommit($this->conn_id, CUBRID_AUTOCOMMIT_FALSE); + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @return bool + */ + protected function _trans_commit() + { + if ( ! cubrid_commit($this->conn_id)) + { + return FALSE; + } + + if ($this->auto_commit && ! cubrid_get_autocommit($this->conn_id)) + { + return cubrid_set_autocommit($this->conn_id, CUBRID_AUTOCOMMIT_TRUE); + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @return bool + */ + protected function _trans_rollback() + { + if ( ! cubrid_rollback($this->conn_id)) + { + return FALSE; + } + + if ($this->auto_commit && ! cubrid_get_autocommit($this->conn_id)) + { + cubrid_set_autocommit($this->conn_id, CUBRID_AUTOCOMMIT_TRUE); + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Platform-dependent string escape + * + * @param string + * @return string + */ + protected function _escape_str($str) + { + return cubrid_real_escape_string($str, $this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Affected Rows + * + * @return int + */ + public function affected_rows() + { + return cubrid_affected_rows(); + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * @return int + */ + public function insert_id() + { + return cubrid_insert_id($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * List table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool $prefix_limit + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = 'SHOW TABLES'; + + if ($prefix_limit !== FALSE && $this->dbprefix !== '') + { + return $sql." LIKE '".$this->escape_like_str($this->dbprefix)."%'"; + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @param string $table + * @return string + */ + protected function _list_columns($table = '') + { + return 'SHOW COLUMNS FROM '.$this->protect_identifiers($table, TRUE, NULL, FALSE); + } + + // -------------------------------------------------------------------- + + /** + * Returns an object with field data + * + * @param string $table + * @return array + */ + public function field_data($table) + { + if (($query = $this->query('SHOW COLUMNS FROM '.$this->protect_identifiers($table, TRUE, NULL, FALSE))) === FALSE) + { + return FALSE; + } + $query = $query->result_object(); + + $retval = array(); + for ($i = 0, $c = count($query); $i < $c; $i++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = $query[$i]->Field; + + sscanf($query[$i]->Type, '%[a-z](%d)', + $retval[$i]->type, + $retval[$i]->max_length + ); + + $retval[$i]->default = $query[$i]->Default; + $retval[$i]->primary_key = (int) ($query[$i]->Key === 'PRI'); + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Error + * + * Returns an array containing code and message of the last + * database error that has occurred. + * + * @return array + */ + public function error() + { + return array('code' => cubrid_errno($this->conn_id), 'message' => cubrid_error($this->conn_id)); + } + + // -------------------------------------------------------------------- + + /** + * FROM tables + * + * Groups tables in FROM clauses if needed, so there is no confusion + * about operator precedence. + * + * @return string + */ + protected function _from_tables() + { + if ( ! empty($this->qb_join) && count($this->qb_from) > 1) + { + return '('.implode(', ', $this->qb_from).')'; + } + + return implode(', ', $this->qb_from); + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @return void + */ + protected function _close() + { + cubrid_close($this->conn_id); + } + +} diff --git a/system/database/drivers/cubrid/cubrid_forge.php b/system/database/drivers/cubrid/cubrid_forge.php new file mode 100644 index 0000000..e8e201f --- /dev/null +++ b/system/database/drivers/cubrid/cubrid_forge.php @@ -0,0 +1,231 @@ + 'INTEGER', + 'SMALLINT' => 'INTEGER', + 'INT' => 'BIGINT', + 'INTEGER' => 'BIGINT', + 'BIGINT' => 'NUMERIC', + 'FLOAT' => 'DOUBLE', + 'REAL' => 'DOUBLE' + ); + + // -------------------------------------------------------------------- + + /** + * ALTER TABLE + * + * @param string $alter_type ALTER type + * @param string $table Table name + * @param mixed $field Column definition + * @return string|string[] + */ + protected function _alter_table($alter_type, $table, $field) + { + if (in_array($alter_type, array('DROP', 'ADD'), TRUE)) + { + return parent::_alter_table($alter_type, $table, $field); + } + + $sql = 'ALTER TABLE '.$this->db->escape_identifiers($table); + $sqls = array(); + for ($i = 0, $c = count($field); $i < $c; $i++) + { + if ($field[$i]['_literal'] !== FALSE) + { + $sqls[] = $sql.' CHANGE '.$field[$i]['_literal']; + } + else + { + $alter_type = empty($field[$i]['new_name']) ? ' MODIFY ' : ' CHANGE '; + $sqls[] = $sql.$alter_type.$this->_process_column($field[$i]); + } + } + + return $sqls; + } + + // -------------------------------------------------------------------- + + /** + * Process column + * + * @param array $field + * @return string + */ + protected function _process_column($field) + { + $extra_clause = isset($field['after']) + ? ' AFTER '.$this->db->escape_identifiers($field['after']) : ''; + + if (empty($extra_clause) && isset($field['first']) && $field['first'] === TRUE) + { + $extra_clause = ' FIRST'; + } + + return $this->db->escape_identifiers($field['name']) + .(empty($field['new_name']) ? '' : ' '.$this->db->escape_identifiers($field['new_name'])) + .' '.$field['type'].$field['length'] + .$field['unsigned'] + .$field['null'] + .$field['default'] + .$field['auto_increment'] + .$field['unique'] + .$extra_clause; + } + + // -------------------------------------------------------------------- + + /** + * Field attribute TYPE + * + * Performs a data type mapping between different databases. + * + * @param array &$attributes + * @return void + */ + protected function _attr_type(&$attributes) + { + switch (strtoupper($attributes['TYPE'])) + { + case 'TINYINT': + $attributes['TYPE'] = 'SMALLINT'; + $attributes['UNSIGNED'] = FALSE; + return; + case 'MEDIUMINT': + $attributes['TYPE'] = 'INTEGER'; + $attributes['UNSIGNED'] = FALSE; + return; + case 'LONGTEXT': + $attributes['TYPE'] = 'STRING'; + return; + default: return; + } + } + + // -------------------------------------------------------------------- + + /** + * Process indexes + * + * @param string $table (ignored) + * @return string + */ + protected function _process_indexes($table) + { + $sql = ''; + + for ($i = 0, $c = count($this->keys); $i < $c; $i++) + { + if (is_array($this->keys[$i])) + { + for ($i2 = 0, $c2 = count($this->keys[$i]); $i2 < $c2; $i2++) + { + if ( ! isset($this->fields[$this->keys[$i][$i2]])) + { + unset($this->keys[$i][$i2]); + continue; + } + } + } + elseif ( ! isset($this->fields[$this->keys[$i]])) + { + unset($this->keys[$i]); + continue; + } + + is_array($this->keys[$i]) OR $this->keys[$i] = array($this->keys[$i]); + + $sql .= ",\n\tKEY ".$this->db->escape_identifiers(implode('_', $this->keys[$i])) + .' ('.implode(', ', $this->db->escape_identifiers($this->keys[$i])).')'; + } + + $this->keys = array(); + + return $sql; + } + +} diff --git a/system/database/drivers/cubrid/cubrid_result.php b/system/database/drivers/cubrid/cubrid_result.php new file mode 100644 index 0000000..274b0c9 --- /dev/null +++ b/system/database/drivers/cubrid/cubrid_result.php @@ -0,0 +1,178 @@ +num_rows) + ? $this->num_rows + : $this->num_rows = cubrid_num_rows($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Number of fields in the result set + * + * @return int + */ + public function num_fields() + { + return cubrid_num_fields($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @return array + */ + public function list_fields() + { + return cubrid_column_names($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @return array + */ + public function field_data() + { + $retval = array(); + + for ($i = 0, $c = $this->num_fields(); $i < $c; $i++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = cubrid_field_name($this->result_id, $i); + $retval[$i]->type = cubrid_field_type($this->result_id, $i); + $retval[$i]->max_length = cubrid_field_len($this->result_id, $i); + $retval[$i]->primary_key = (int) (strpos(cubrid_field_flags($this->result_id, $i), 'primary_key') !== FALSE); + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * @return void + */ + public function free_result() + { + if (is_resource($this->result_id) OR + (get_resource_type($this->result_id) === 'Unknown' && preg_match('/Resource id #/', strval($this->result_id)))) + { + cubrid_close_request($this->result_id); + $this->result_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Data Seek + * + * Moves the internal pointer to the desired offset. We call + * this internally before fetching results to make sure the + * result set starts at zero. + * + * @param int $n + * @return bool + */ + public function data_seek($n = 0) + { + return cubrid_data_seek($this->result_id, $n); + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @return array + */ + protected function _fetch_assoc() + { + return cubrid_fetch_assoc($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @param string $class_name + * @return object + */ + protected function _fetch_object($class_name = 'stdClass') + { + return cubrid_fetch_object($this->result_id, $class_name); + } + +} diff --git a/system/database/drivers/cubrid/cubrid_utility.php b/system/database/drivers/cubrid/cubrid_utility.php new file mode 100644 index 0000000..ca81568 --- /dev/null +++ b/system/database/drivers/cubrid/cubrid_utility.php @@ -0,0 +1,80 @@ +db->data_cache['db_names'])) + { + return $this->db->data_cache['db_names']; + } + + return $this->db->data_cache['db_names'] = cubrid_list_dbs($this->db->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * CUBRID Export + * + * @param array Preferences + * @return mixed + */ + protected function _backup($params = array()) + { + // No SQL based support in CUBRID as of version 8.4.0. Database or + // table backup can be performed using CUBRID Manager + // database administration tool. + return $this->db->display_error('db_unsupported_feature'); + } +} diff --git a/system/database/drivers/cubrid/index.html b/system/database/drivers/cubrid/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/system/database/drivers/cubrid/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

    Directory access is forbidden.

    + + + diff --git a/system/database/drivers/ibase/ibase_driver.php b/system/database/drivers/ibase/ibase_driver.php new file mode 100644 index 0000000..433139f --- /dev/null +++ b/system/database/drivers/ibase/ibase_driver.php @@ -0,0 +1,414 @@ +hostname.':'.$this->database, $this->username, $this->password, $this->char_set) + : ibase_connect($this->hostname.':'.$this->database, $this->username, $this->password, $this->char_set); + } + + // -------------------------------------------------------------------- + + /** + * Database version number + * + * @return string + */ + public function version() + { + if (isset($this->data_cache['version'])) + { + return $this->data_cache['version']; + } + + if (($service = ibase_service_attach($this->hostname, $this->username, $this->password))) + { + $this->data_cache['version'] = ibase_server_info($service, IBASE_SVC_SERVER_VERSION); + + // Don't keep the service open + ibase_service_detach($service); + return $this->data_cache['version']; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * @param string $sql an SQL query + * @return resource + */ + protected function _execute($sql) + { + return ibase_query(isset($this->_ibase_trans) ? $this->_ibase_trans : $this->conn_id, $sql); + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @return bool + */ + protected function _trans_begin() + { + if (($trans_handle = ibase_trans($this->conn_id)) === FALSE) + { + return FALSE; + } + + $this->_ibase_trans = $trans_handle; + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @return bool + */ + protected function _trans_commit() + { + if (ibase_commit($this->_ibase_trans)) + { + $this->_ibase_trans = NULL; + return TRUE; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @return bool + */ + protected function _trans_rollback() + { + if (ibase_rollback($this->_ibase_trans)) + { + $this->_ibase_trans = NULL; + return TRUE; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Affected Rows + * + * @return int + */ + public function affected_rows() + { + return ibase_affected_rows($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * @param string $generator_name + * @param int $inc_by + * @return int + */ + public function insert_id($generator_name, $inc_by = 0) + { + //If a generator hasn't been used before it will return 0 + return ibase_gen_id('"'.$generator_name.'"', $inc_by); + } + + // -------------------------------------------------------------------- + + /** + * List table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool $prefix_limit + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = 'SELECT TRIM("RDB$RELATION_NAME") AS TABLE_NAME FROM "RDB$RELATIONS" WHERE "RDB$RELATION_NAME" NOT LIKE \'RDB$%\' AND "RDB$RELATION_NAME" NOT LIKE \'MON$%\''; + + if ($prefix_limit !== FALSE && $this->dbprefix !== '') + { + return $sql.' AND TRIM("RDB$RELATION_NAME") AS TABLE_NAME LIKE \''.$this->escape_like_str($this->dbprefix)."%' " + .sprintf($this->_like_escape_str, $this->_like_escape_chr); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @param string $table + * @return string + */ + protected function _list_columns($table = '') + { + return 'SELECT TRIM("RDB$FIELD_NAME") AS COLUMN_NAME FROM "RDB$RELATION_FIELDS" WHERE "RDB$RELATION_NAME" = '.$this->escape($table); + } + + // -------------------------------------------------------------------- + + /** + * Returns an object with field data + * + * @param string $table + * @return array + */ + public function field_data($table) + { + $sql = 'SELECT "rfields"."RDB$FIELD_NAME" AS "name", + CASE "fields"."RDB$FIELD_TYPE" + WHEN 7 THEN \'SMALLINT\' + WHEN 8 THEN \'INTEGER\' + WHEN 9 THEN \'QUAD\' + WHEN 10 THEN \'FLOAT\' + WHEN 11 THEN \'DFLOAT\' + WHEN 12 THEN \'DATE\' + WHEN 13 THEN \'TIME\' + WHEN 14 THEN \'CHAR\' + WHEN 16 THEN \'INT64\' + WHEN 27 THEN \'DOUBLE\' + WHEN 35 THEN \'TIMESTAMP\' + WHEN 37 THEN \'VARCHAR\' + WHEN 40 THEN \'CSTRING\' + WHEN 261 THEN \'BLOB\' + ELSE NULL + END AS "type", + "fields"."RDB$FIELD_LENGTH" AS "max_length", + "rfields"."RDB$DEFAULT_VALUE" AS "default" + FROM "RDB$RELATION_FIELDS" "rfields" + JOIN "RDB$FIELDS" "fields" ON "rfields"."RDB$FIELD_SOURCE" = "fields"."RDB$FIELD_NAME" + WHERE "rfields"."RDB$RELATION_NAME" = '.$this->escape($table).' + ORDER BY "rfields"."RDB$FIELD_POSITION"'; + + return (($query = $this->query($sql)) !== FALSE) + ? $query->result_object() + : FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Error + * + * Returns an array containing code and message of the last + * database error that has occurred. + * + * @return array + */ + public function error() + { + return array('code' => ibase_errcode(), 'message' => ibase_errmsg()); + } + + // -------------------------------------------------------------------- + + /** + * Update statement + * + * Generates a platform-specific update string from the supplied data + * + * @param string $table + * @param array $values + * @return string + */ + protected function _update($table, $values) + { + $this->qb_limit = FALSE; + return parent::_update($table, $values); + } + + // -------------------------------------------------------------------- + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * + * If the database does not support the TRUNCATE statement, + * then this method maps to 'DELETE FROM table' + * + * @param string $table + * @return string + */ + protected function _truncate($table) + { + return 'DELETE FROM '.$table; + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @param string $table + * @return string + */ + protected function _delete($table) + { + $this->qb_limit = FALSE; + return parent::_delete($table); + } + + // -------------------------------------------------------------------- + + /** + * LIMIT + * + * Generates a platform-specific LIMIT clause + * + * @param string $sql SQL Query + * @return string + */ + protected function _limit($sql) + { + // Limit clause depends on if Interbase or Firebird + if (stripos($this->version(), 'firebird') !== FALSE) + { + $select = 'FIRST '.$this->qb_limit + .($this->qb_offset ? ' SKIP '.$this->qb_offset : ''); + } + else + { + $select = 'ROWS ' + .($this->qb_offset ? $this->qb_offset.' TO '.($this->qb_limit + $this->qb_offset) : $this->qb_limit); + } + + return preg_replace('`SELECT`i', 'SELECT '.$select, $sql, 1); + } + + // -------------------------------------------------------------------- + + /** + * Insert batch statement + * + * Generates a platform-specific insert string from the supplied data. + * + * @param string $table Table name + * @param array $keys INSERT keys + * @param array $values INSERT values + * @return string|bool + */ + protected function _insert_batch($table, $keys, $values) + { + return ($this->db_debug) ? $this->display_error('db_unsupported_feature') : FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @return void + */ + protected function _close() + { + ibase_close($this->conn_id); + } + +} diff --git a/system/database/drivers/ibase/ibase_forge.php b/system/database/drivers/ibase/ibase_forge.php new file mode 100644 index 0000000..2c385f1 --- /dev/null +++ b/system/database/drivers/ibase/ibase_forge.php @@ -0,0 +1,252 @@ + 'INTEGER', + 'INTEGER' => 'INT64', + 'FLOAT' => 'DOUBLE PRECISION' + ); + + /** + * NULL value representation in CREATE/ALTER TABLE statements + * + * @var string + */ + protected $_null = 'NULL'; + + // -------------------------------------------------------------------- + + /** + * Create database + * + * @param string $db_name + * @return bool + */ + public function create_database($db_name) + { + // Firebird databases are flat files, so a path is required + + // Hostname is needed for remote access + empty($this->db->hostname) OR $db_name = $this->hostname.':'.$db_name; + + return parent::create_database('"'.$db_name.'"'); + } + + // -------------------------------------------------------------------- + + /** + * Drop database + * + * @param string $db_name (ignored) + * @return bool + */ + public function drop_database($db_name) + { + if ( ! ibase_drop_db($this->conn_id)) + { + return ($this->db->db_debug) ? $this->db->display_error('db_unable_to_drop') : FALSE; + } + elseif ( ! empty($this->db->data_cache['db_names'])) + { + $key = array_search(strtolower($this->db->database), array_map('strtolower', $this->db->data_cache['db_names']), TRUE); + if ($key !== FALSE) + { + unset($this->db->data_cache['db_names'][$key]); + } + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * ALTER TABLE + * + * @param string $alter_type ALTER type + * @param string $table Table name + * @param mixed $field Column definition + * @return string|string[] + */ + protected function _alter_table($alter_type, $table, $field) + { + if (in_array($alter_type, array('DROP', 'ADD'), TRUE)) + { + return parent::_alter_table($alter_type, $table, $field); + } + + $sql = 'ALTER TABLE '.$this->db->escape_identifiers($table); + $sqls = array(); + for ($i = 0, $c = count($field); $i < $c; $i++) + { + if ($field[$i]['_literal'] !== FALSE) + { + return FALSE; + } + + if (isset($field[$i]['type'])) + { + $sqls[] = $sql.' ALTER COLUMN '.$this->db->escape_identififers($field[$i]['name']) + .' TYPE '.$field[$i]['type'].$field[$i]['length']; + } + + if ( ! empty($field[$i]['default'])) + { + $sqls[] = $sql.' ALTER COLUMN '.$this->db->escape_identifiers($field[$i]['name']) + .' SET DEFAULT '.$field[$i]['default']; + } + + if (isset($field[$i]['null'])) + { + $sqls[] = 'UPDATE "RDB$RELATION_FIELDS" SET "RDB$NULL_FLAG" = ' + .($field[$i]['null'] === TRUE ? 'NULL' : '1') + .' WHERE "RDB$FIELD_NAME" = '.$this->db->escape($field[$i]['name']) + .' AND "RDB$RELATION_NAME" = '.$this->db->escape($table); + } + + if ( ! empty($field[$i]['new_name'])) + { + $sqls[] = $sql.' ALTER COLUMN '.$this->db->escape_identifiers($field[$i]['name']) + .' TO '.$this->db->escape_identifiers($field[$i]['new_name']); + } + } + + return $sqls; + } + + // -------------------------------------------------------------------- + + /** + * Process column + * + * @param array $field + * @return string + */ + protected function _process_column($field) + { + return $this->db->escape_identifiers($field['name']) + .' '.$field['type'].$field['length'] + .$field['null'] + .$field['unique'] + .$field['default']; + } + + // -------------------------------------------------------------------- + + /** + * Field attribute TYPE + * + * Performs a data type mapping between different databases. + * + * @param array &$attributes + * @return void + */ + protected function _attr_type(&$attributes) + { + switch (strtoupper($attributes['TYPE'])) + { + case 'TINYINT': + $attributes['TYPE'] = 'SMALLINT'; + $attributes['UNSIGNED'] = FALSE; + return; + case 'MEDIUMINT': + $attributes['TYPE'] = 'INTEGER'; + $attributes['UNSIGNED'] = FALSE; + return; + case 'INT': + $attributes['TYPE'] = 'INTEGER'; + return; + case 'BIGINT': + $attributes['TYPE'] = 'INT64'; + return; + default: return; + } + } + + // -------------------------------------------------------------------- + + /** + * Field attribute AUTO_INCREMENT + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_auto_increment(&$attributes, &$field) + { + // Not supported + } + +} diff --git a/system/database/drivers/ibase/ibase_result.php b/system/database/drivers/ibase/ibase_result.php new file mode 100644 index 0000000..900212e --- /dev/null +++ b/system/database/drivers/ibase/ibase_result.php @@ -0,0 +1,162 @@ +result_id); + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @return array + */ + public function list_fields() + { + $field_names = array(); + for ($i = 0, $num_fields = $this->num_fields(); $i < $num_fields; $i++) + { + $info = ibase_field_info($this->result_id, $i); + $field_names[] = $info['name']; + } + + return $field_names; + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @return array + */ + public function field_data() + { + $retval = array(); + for ($i = 0, $c = $this->num_fields(); $i < $c; $i++) + { + $info = ibase_field_info($this->result_id, $i); + + $retval[$i] = new stdClass(); + $retval[$i]->name = $info['name']; + $retval[$i]->type = $info['type']; + $retval[$i]->max_length = $info['length']; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * @return void + */ + public function free_result() + { + ibase_free_result($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @return array + */ + protected function _fetch_assoc() + { + return ibase_fetch_assoc($this->result_id, IBASE_FETCH_BLOBS); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @param string $class_name + * @return object + */ + protected function _fetch_object($class_name = 'stdClass') + { + $row = ibase_fetch_object($this->result_id, IBASE_FETCH_BLOBS); + + if ($class_name === 'stdClass' OR ! $row) + { + return $row; + } + + $class_name = new $class_name(); + foreach ($row as $key => $value) + { + $class_name->$key = $value; + } + + return $class_name; + } + +} diff --git a/system/database/drivers/ibase/ibase_utility.php b/system/database/drivers/ibase/ibase_utility.php new file mode 100644 index 0000000..bc87508 --- /dev/null +++ b/system/database/drivers/ibase/ibase_utility.php @@ -0,0 +1,70 @@ +db->hostname, $this->db->username, $this->db->password)) + { + $res = ibase_backup($service, $this->db->database, $filename.'.fbk'); + + // Close the service connection + ibase_service_detach($service); + return $res; + } + + return FALSE; + } + +} diff --git a/system/database/drivers/ibase/index.html b/system/database/drivers/ibase/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/system/database/drivers/ibase/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

    Directory access is forbidden.

    + + + diff --git a/system/database/drivers/index.html b/system/database/drivers/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/system/database/drivers/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

    Directory access is forbidden.

    + + + diff --git a/system/database/drivers/mssql/index.html b/system/database/drivers/mssql/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/system/database/drivers/mssql/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

    Directory access is forbidden.

    + + + diff --git a/system/database/drivers/mssql/mssql_driver.php b/system/database/drivers/mssql/mssql_driver.php new file mode 100644 index 0000000..5012640 --- /dev/null +++ b/system/database/drivers/mssql/mssql_driver.php @@ -0,0 +1,519 @@ +port)) + { + $this->hostname .= (DIRECTORY_SEPARATOR === '\\' ? ',' : ':').$this->port; + } + } + + // -------------------------------------------------------------------- + + /** + * Non-persistent database connection + * + * @param bool $persistent + * @return resource + */ + public function db_connect($persistent = FALSE) + { + $this->conn_id = ($persistent) + ? mssql_pconnect($this->hostname, $this->username, $this->password) + : mssql_connect($this->hostname, $this->username, $this->password); + + if ( ! $this->conn_id) + { + return FALSE; + } + + // ---------------------------------------------------------------- + + // Select the DB... assuming a database name is specified in the config file + if ($this->database !== '' && ! $this->db_select()) + { + log_message('error', 'Unable to select database: '.$this->database); + + return ($this->db_debug === TRUE) + ? $this->display_error('db_unable_to_select', $this->database) + : FALSE; + } + + // Determine how identifiers are escaped + $query = $this->query('SELECT CASE WHEN (@@OPTIONS | 256) = @@OPTIONS THEN 1 ELSE 0 END AS qi'); + $query = $query->row_array(); + $this->_quoted_identifier = empty($query) ? FALSE : (bool) $query['qi']; + $this->_escape_char = ($this->_quoted_identifier) ? '"' : array('[', ']'); + + return $this->conn_id; + } + + // -------------------------------------------------------------------- + + /** + * Select the database + * + * @param string $database + * @return bool + */ + public function db_select($database = '') + { + if ($database === '') + { + $database = $this->database; + } + + // Note: Escaping is required in the event that the DB name + // contains reserved characters. + if (mssql_select_db('['.$database.']', $this->conn_id)) + { + $this->database = $database; + $this->data_cache = array(); + return TRUE; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * @param string $sql an SQL query + * @return mixed resource if rows are returned, bool otherwise + */ + protected function _execute($sql) + { + return mssql_query($sql, $this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @return bool + */ + protected function _trans_begin() + { + return $this->simple_query('BEGIN TRAN'); + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @return bool + */ + protected function _trans_commit() + { + return $this->simple_query('COMMIT TRAN'); + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @return bool + */ + protected function _trans_rollback() + { + return $this->simple_query('ROLLBACK TRAN'); + } + + // -------------------------------------------------------------------- + + /** + * Affected Rows + * + * @return int + */ + public function affected_rows() + { + return mssql_rows_affected($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * Returns the last id created in the Identity column. + * + * @return string + */ + public function insert_id() + { + $query = version_compare($this->version(), '8', '>=') + ? 'SELECT SCOPE_IDENTITY() AS last_id' + : 'SELECT @@IDENTITY AS last_id'; + + $query = $this->query($query); + $query = $query->row(); + return $query->last_id; + } + + // -------------------------------------------------------------------- + + /** + * Set client character set + * + * @param string $charset + * @return bool + */ + protected function _db_set_charset($charset) + { + return (ini_set('mssql.charset', $charset) !== FALSE); + } + + // -------------------------------------------------------------------- + + /** + * Version number query string + * + * @return string + */ + protected function _version() + { + return "SELECT SERVERPROPERTY('ProductVersion') AS ver"; + } + + // -------------------------------------------------------------------- + + /** + * List table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool $prefix_limit + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = 'SELECT '.$this->escape_identifiers('name') + .' FROM '.$this->escape_identifiers('sysobjects') + .' WHERE '.$this->escape_identifiers('type')." = 'U'"; + + if ($prefix_limit !== FALSE && $this->dbprefix !== '') + { + $sql .= ' AND '.$this->escape_identifiers('name')." LIKE '".$this->escape_like_str($this->dbprefix)."%' " + .sprintf($this->_like_escape_str, $this->_like_escape_chr); + } + + return $sql.' ORDER BY '.$this->escape_identifiers('name'); + } + + // -------------------------------------------------------------------- + + /** + * List column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @param string $table + * @return string + */ + protected function _list_columns($table = '') + { + return 'SELECT COLUMN_NAME + FROM INFORMATION_SCHEMA.Columns + WHERE UPPER(TABLE_NAME) = '.$this->escape(strtoupper($table)); + } + + // -------------------------------------------------------------------- + + /** + * Returns an object with field data + * + * @param string $table + * @return array + */ + public function field_data($table) + { + $sql = 'SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, NUMERIC_PRECISION, COLUMN_DEFAULT + FROM INFORMATION_SCHEMA.Columns + WHERE UPPER(TABLE_NAME) = '.$this->escape(strtoupper($table)); + + if (($query = $this->query($sql)) === FALSE) + { + return FALSE; + } + $query = $query->result_object(); + + $retval = array(); + for ($i = 0, $c = count($query); $i < $c; $i++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = $query[$i]->COLUMN_NAME; + $retval[$i]->type = $query[$i]->DATA_TYPE; + $retval[$i]->max_length = ($query[$i]->CHARACTER_MAXIMUM_LENGTH > 0) ? $query[$i]->CHARACTER_MAXIMUM_LENGTH : $query[$i]->NUMERIC_PRECISION; + $retval[$i]->default = $query[$i]->COLUMN_DEFAULT; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Error + * + * Returns an array containing code and message of the last + * database error that has occurred. + * + * @return array + */ + public function error() + { + // We need this because the error info is discarded by the + // server the first time you request it, and query() already + // calls error() once for logging purposes when a query fails. + static $error = array('code' => 0, 'message' => NULL); + + $message = mssql_get_last_message(); + if ( ! empty($message)) + { + $error['code'] = $this->query('SELECT @@ERROR AS code')->row()->code; + $error['message'] = $message; + } + + return $error; + } + + // -------------------------------------------------------------------- + + /** + * Update statement + * + * Generates a platform-specific update string from the supplied data + * + * @param string $table + * @param array $values + * @return string + */ + protected function _update($table, $values) + { + $this->qb_limit = FALSE; + $this->qb_orderby = array(); + return parent::_update($table, $values); + } + + // -------------------------------------------------------------------- + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * + * If the database does not support the TRUNCATE statement, + * then this method maps to 'DELETE FROM table' + * + * @param string $table + * @return string + */ + protected function _truncate($table) + { + return 'TRUNCATE TABLE '.$table; + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @param string $table + * @return string + */ + protected function _delete($table) + { + if ($this->qb_limit) + { + return 'WITH ci_delete AS (SELECT TOP '.$this->qb_limit.' * FROM '.$table.$this->_compile_wh('qb_where').') DELETE FROM ci_delete'; + } + + return parent::_delete($table); + } + + // -------------------------------------------------------------------- + + /** + * LIMIT + * + * Generates a platform-specific LIMIT clause + * + * @param string $sql SQL Query + * @return string + */ + protected function _limit($sql) + { + $limit = $this->qb_offset + $this->qb_limit; + + // As of SQL Server 2005 (9.0.*) ROW_NUMBER() is supported, + // however an ORDER BY clause is required for it to work + if (version_compare($this->version(), '9', '>=') && $this->qb_offset && ! empty($this->qb_orderby)) + { + $orderby = $this->_compile_order_by(); + + // We have to strip the ORDER BY clause + $sql = trim(substr($sql, 0, strrpos($sql, $orderby))); + + // Get the fields to select from our subquery, so that we can avoid CI_rownum appearing in the actual results + if (count($this->qb_select) === 0 OR strpos(implode(',', $this->qb_select), '*') !== FALSE) + { + $select = '*'; // Inevitable + } + else + { + // Use only field names and their aliases, everything else is out of our scope. + $select = array(); + $field_regexp = ($this->_quoted_identifier) + ? '("[^\"]+")' : '(\[[^\]]+\])'; + for ($i = 0, $c = count($this->qb_select); $i < $c; $i++) + { + $select[] = preg_match('/(?:\s|\.)'.$field_regexp.'$/i', $this->qb_select[$i], $m) + ? $m[1] : $this->qb_select[$i]; + } + $select = implode(', ', $select); + } + + return 'SELECT '.$select." FROM (\n\n" + .preg_replace('/^(SELECT( DISTINCT)?)/i', '\\1 ROW_NUMBER() OVER('.trim($orderby).') AS '.$this->escape_identifiers('CI_rownum').', ', $sql) + ."\n\n) ".$this->escape_identifiers('CI_subquery') + ."\nWHERE ".$this->escape_identifiers('CI_rownum').' BETWEEN '.($this->qb_offset + 1).' AND '.$limit; + } + + return preg_replace('/(^\SELECT (DISTINCT)?)/i','\\1 TOP '.$limit.' ', $sql); + } + + // -------------------------------------------------------------------- + + /** + * Insert batch statement + * + * Generates a platform-specific insert string from the supplied data. + * + * @param string $table Table name + * @param array $keys INSERT keys + * @param array $values INSERT values + * @return string|bool + */ + protected function _insert_batch($table, $keys, $values) + { + // Multiple-value inserts are only supported as of SQL Server 2008 + if (version_compare($this->version(), '10', '>=')) + { + return parent::_insert_batch($table, $keys, $values); + } + + return ($this->db_debug) ? $this->display_error('db_unsupported_feature') : FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @return void + */ + protected function _close() + { + mssql_close($this->conn_id); + } + +} diff --git a/system/database/drivers/mssql/mssql_forge.php b/system/database/drivers/mssql/mssql_forge.php new file mode 100644 index 0000000..f9dee91 --- /dev/null +++ b/system/database/drivers/mssql/mssql_forge.php @@ -0,0 +1,152 @@ + 'SMALLINT', + 'SMALLINT' => 'INT', + 'INT' => 'BIGINT', + 'REAL' => 'FLOAT' + ); + + // -------------------------------------------------------------------- + + /** + * ALTER TABLE + * + * @param string $alter_type ALTER type + * @param string $table Table name + * @param mixed $field Column definition + * @return string|string[] + */ + protected function _alter_table($alter_type, $table, $field) + { + if (in_array($alter_type, array('ADD', 'DROP'), TRUE)) + { + return parent::_alter_table($alter_type, $table, $field); + } + + $sql = 'ALTER TABLE '.$this->db->escape_identifiers($table).' ALTER COLUMN '; + $sqls = array(); + for ($i = 0, $c = count($field); $i < $c; $i++) + { + $sqls[] = $sql.$this->_process_column($field[$i]); + } + + return $sqls; + } + + // -------------------------------------------------------------------- + + /** + * Field attribute TYPE + * + * Performs a data type mapping between different databases. + * + * @param array &$attributes + * @return void + */ + protected function _attr_type(&$attributes) + { + if (isset($attributes['CONSTRAINT']) && strpos($attributes['TYPE'], 'INT') !== FALSE) + { + unset($attributes['CONSTRAINT']); + } + + switch (strtoupper($attributes['TYPE'])) + { + case 'MEDIUMINT': + $attributes['TYPE'] = 'INTEGER'; + $attributes['UNSIGNED'] = FALSE; + return; + case 'INTEGER': + $attributes['TYPE'] = 'INT'; + return; + default: return; + } + } + + // -------------------------------------------------------------------- + + /** + * Field attribute AUTO_INCREMENT + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_auto_increment(&$attributes, &$field) + { + if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE && stripos($field['type'], 'int') !== FALSE) + { + $field['auto_increment'] = ' IDENTITY(1,1)'; + } + } + +} diff --git a/system/database/drivers/mssql/mssql_result.php b/system/database/drivers/mssql/mssql_result.php new file mode 100644 index 0000000..fbe2eb1 --- /dev/null +++ b/system/database/drivers/mssql/mssql_result.php @@ -0,0 +1,199 @@ +num_rows) + ? $this->num_rows + : $this->num_rows = mssql_num_rows($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Number of fields in the result set + * + * @return int + */ + public function num_fields() + { + return mssql_num_fields($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @return array + */ + public function list_fields() + { + $field_names = array(); + mssql_field_seek($this->result_id, 0); + while ($field = mssql_fetch_field($this->result_id)) + { + $field_names[] = $field->name; + } + + return $field_names; + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @return array + */ + public function field_data() + { + $retval = array(); + for ($i = 0, $c = $this->num_fields(); $i < $c; $i++) + { + $field = mssql_fetch_field($this->result_id, $i); + + $retval[$i] = new stdClass(); + $retval[$i]->name = $field->name; + $retval[$i]->type = $field->type; + $retval[$i]->max_length = $field->max_length; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * @return void + */ + public function free_result() + { + if (is_resource($this->result_id)) + { + mssql_free_result($this->result_id); + $this->result_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Data Seek + * + * Moves the internal pointer to the desired offset. We call + * this internally before fetching results to make sure the + * result set starts at zero. + * + * @param int $n + * @return bool + */ + public function data_seek($n = 0) + { + return mssql_data_seek($this->result_id, $n); + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @return array + */ + protected function _fetch_assoc() + { + return mssql_fetch_assoc($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @param string $class_name + * @return object + */ + protected function _fetch_object($class_name = 'stdClass') + { + $row = mssql_fetch_object($this->result_id); + + if ($class_name === 'stdClass' OR ! $row) + { + return $row; + } + + $class_name = new $class_name(); + foreach ($row as $key => $value) + { + $class_name->$key = $value; + } + + return $class_name; + } + +} diff --git a/system/database/drivers/mssql/mssql_utility.php b/system/database/drivers/mssql/mssql_utility.php new file mode 100644 index 0000000..a739dc8 --- /dev/null +++ b/system/database/drivers/mssql/mssql_utility.php @@ -0,0 +1,78 @@ +db->display_error('db_unsupported_feature'); + } + +} diff --git a/system/database/drivers/mysql/index.html b/system/database/drivers/mysql/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/system/database/drivers/mysql/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

    Directory access is forbidden.

    + + + diff --git a/system/database/drivers/mysql/mysql_driver.php b/system/database/drivers/mysql/mysql_driver.php new file mode 100644 index 0000000..367f89a --- /dev/null +++ b/system/database/drivers/mysql/mysql_driver.php @@ -0,0 +1,495 @@ +port)) + { + $this->hostname .= ':'.$this->port; + } + } + + // -------------------------------------------------------------------- + + /** + * Non-persistent database connection + * + * @param bool $persistent + * @return resource + */ + public function db_connect($persistent = FALSE) + { + $client_flags = ($this->compress === FALSE) ? 0 : MYSQL_CLIENT_COMPRESS; + + if ($this->encrypt === TRUE) + { + $client_flags = $client_flags | MYSQL_CLIENT_SSL; + } + + // Error suppression is necessary mostly due to PHP 5.5+ issuing E_DEPRECATED messages + $this->conn_id = ($persistent === TRUE) + ? mysql_pconnect($this->hostname, $this->username, $this->password, $client_flags) + : mysql_connect($this->hostname, $this->username, $this->password, TRUE, $client_flags); + + // ---------------------------------------------------------------- + + // Select the DB... assuming a database name is specified in the config file + if ($this->database !== '' && ! $this->db_select()) + { + log_message('error', 'Unable to select database: '.$this->database); + + return ($this->db_debug === TRUE) + ? $this->display_error('db_unable_to_select', $this->database) + : FALSE; + } + + if (isset($this->stricton) && is_resource($this->conn_id)) + { + if ($this->stricton) + { + $this->simple_query('SET SESSION sql_mode = CONCAT(@@sql_mode, ",", "STRICT_ALL_TABLES")'); + } + else + { + $this->simple_query( + 'SET SESSION sql_mode = + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + @@sql_mode, + "STRICT_ALL_TABLES,", ""), + ",STRICT_ALL_TABLES", ""), + "STRICT_ALL_TABLES", ""), + "STRICT_TRANS_TABLES,", ""), + ",STRICT_TRANS_TABLES", ""), + "STRICT_TRANS_TABLES", "")' + ); + } + } + + return $this->conn_id; + } + + // -------------------------------------------------------------------- + + /** + * Reconnect + * + * Keep / reestablish the db connection if no queries have been + * sent for a length of time exceeding the server's idle timeout + * + * @return void + */ + public function reconnect() + { + if (mysql_ping($this->conn_id) === FALSE) + { + $this->conn_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Select the database + * + * @param string $database + * @return bool + */ + public function db_select($database = '') + { + if ($database === '') + { + $database = $this->database; + } + + if (mysql_select_db($database, $this->conn_id)) + { + $this->database = $database; + $this->data_cache = array(); + return TRUE; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Set client character set + * + * @param string $charset + * @return bool + */ + protected function _db_set_charset($charset) + { + return mysql_set_charset($charset, $this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Database version number + * + * @return string + */ + public function version() + { + if (isset($this->data_cache['version'])) + { + return $this->data_cache['version']; + } + + if ( ! $this->conn_id OR ($version = mysql_get_server_info($this->conn_id)) === FALSE) + { + return FALSE; + } + + return $this->data_cache['version'] = $version; + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * @param string $sql an SQL query + * @return mixed + */ + protected function _execute($sql) + { + return mysql_query($this->_prep_query($sql), $this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Prep the query + * + * If needed, each database adapter can prep the query string + * + * @param string $sql an SQL query + * @return string + */ + protected function _prep_query($sql) + { + // mysql_affected_rows() returns 0 for "DELETE FROM TABLE" queries. This hack + // modifies the query so that it a proper number of affected rows is returned. + if ($this->delete_hack === TRUE && preg_match('/^\s*DELETE\s+FROM\s+(\S+)\s*$/i', $sql)) + { + return trim($sql).' WHERE 1=1'; + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @return bool + */ + protected function _trans_begin() + { + $this->simple_query('SET AUTOCOMMIT=0'); + return $this->simple_query('START TRANSACTION'); // can also be BEGIN or BEGIN WORK + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @return bool + */ + protected function _trans_commit() + { + if ($this->simple_query('COMMIT')) + { + $this->simple_query('SET AUTOCOMMIT=1'); + return TRUE; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @return bool + */ + protected function _trans_rollback() + { + if ($this->simple_query('ROLLBACK')) + { + $this->simple_query('SET AUTOCOMMIT=1'); + return TRUE; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Platform-dependent string escape + * + * @param string + * @return string + */ + protected function _escape_str($str) + { + return mysql_real_escape_string($str, $this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Affected Rows + * + * @return int + */ + public function affected_rows() + { + return mysql_affected_rows($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * @return int + */ + public function insert_id() + { + return mysql_insert_id($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * List table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool $prefix_limit + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = 'SHOW TABLES FROM '.$this->_escape_char.$this->database.$this->_escape_char; + + if ($prefix_limit !== FALSE && $this->dbprefix !== '') + { + return $sql." LIKE '".$this->escape_like_str($this->dbprefix)."%'"; + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @param string $table + * @return string + */ + protected function _list_columns($table = '') + { + return 'SHOW COLUMNS FROM '.$this->protect_identifiers($table, TRUE, NULL, FALSE); + } + + // -------------------------------------------------------------------- + + /** + * Returns an object with field data + * + * @param string $table + * @return array + */ + public function field_data($table) + { + if (($query = $this->query('SHOW COLUMNS FROM '.$this->protect_identifiers($table, TRUE, NULL, FALSE))) === FALSE) + { + return FALSE; + } + $query = $query->result_object(); + + $retval = array(); + for ($i = 0, $c = count($query); $i < $c; $i++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = $query[$i]->Field; + + sscanf($query[$i]->Type, '%[a-z](%d)', + $retval[$i]->type, + $retval[$i]->max_length + ); + + $retval[$i]->default = $query[$i]->Default; + $retval[$i]->primary_key = (int) ($query[$i]->Key === 'PRI'); + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Error + * + * Returns an array containing code and message of the last + * database error that has occurred. + * + * @return array + */ + public function error() + { + return array('code' => mysql_errno($this->conn_id), 'message' => mysql_error($this->conn_id)); + } + + // -------------------------------------------------------------------- + + /** + * FROM tables + * + * Groups tables in FROM clauses if needed, so there is no confusion + * about operator precedence. + * + * @return string + */ + protected function _from_tables() + { + if ( ! empty($this->qb_join) && count($this->qb_from) > 1) + { + return '('.implode(', ', $this->qb_from).')'; + } + + return implode(', ', $this->qb_from); + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @return void + */ + protected function _close() + { + // Error suppression to avoid annoying E_WARNINGs in cases + // where the connection has already been closed for some reason. + @mysql_close($this->conn_id); + } + +} diff --git a/system/database/drivers/mysql/mysql_forge.php b/system/database/drivers/mysql/mysql_forge.php new file mode 100644 index 0000000..410ea2d --- /dev/null +++ b/system/database/drivers/mysql/mysql_forge.php @@ -0,0 +1,243 @@ +db->char_set) && ! strpos($sql, 'CHARACTER SET') && ! strpos($sql, 'CHARSET')) + { + $sql .= ' DEFAULT CHARACTER SET = '.$this->db->char_set; + } + + if ( ! empty($this->db->dbcollat) && ! strpos($sql, 'COLLATE')) + { + $sql .= ' COLLATE = '.$this->db->dbcollat; + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * ALTER TABLE + * + * @param string $alter_type ALTER type + * @param string $table Table name + * @param mixed $field Column definition + * @return string|string[] + */ + protected function _alter_table($alter_type, $table, $field) + { + if ($alter_type === 'DROP') + { + return parent::_alter_table($alter_type, $table, $field); + } + + $sql = 'ALTER TABLE '.$this->db->escape_identifiers($table); + for ($i = 0, $c = count($field); $i < $c; $i++) + { + if ($field[$i]['_literal'] !== FALSE) + { + $field[$i] = ($alter_type === 'ADD') + ? "\n\tADD ".$field[$i]['_literal'] + : "\n\tMODIFY ".$field[$i]['_literal']; + } + else + { + if ($alter_type === 'ADD') + { + $field[$i]['_literal'] = "\n\tADD "; + } + else + { + $field[$i]['_literal'] = empty($field[$i]['new_name']) ? "\n\tMODIFY " : "\n\tCHANGE "; + } + + $field[$i] = $field[$i]['_literal'].$this->_process_column($field[$i]); + } + } + + return array($sql.implode(',', $field)); + } + + // -------------------------------------------------------------------- + + /** + * Process column + * + * @param array $field + * @return string + */ + protected function _process_column($field) + { + $extra_clause = isset($field['after']) + ? ' AFTER '.$this->db->escape_identifiers($field['after']) : ''; + + if (empty($extra_clause) && isset($field['first']) && $field['first'] === TRUE) + { + $extra_clause = ' FIRST'; + } + + return $this->db->escape_identifiers($field['name']) + .(empty($field['new_name']) ? '' : ' '.$this->db->escape_identifiers($field['new_name'])) + .' '.$field['type'].$field['length'] + .$field['unsigned'] + .$field['null'] + .$field['default'] + .$field['auto_increment'] + .$field['unique'] + .(empty($field['comment']) ? '' : ' COMMENT '.$field['comment']) + .$extra_clause; + } + + // -------------------------------------------------------------------- + + /** + * Process indexes + * + * @param string $table (ignored) + * @return string + */ + protected function _process_indexes($table) + { + $sql = ''; + + for ($i = 0, $c = count($this->keys); $i < $c; $i++) + { + if (is_array($this->keys[$i])) + { + for ($i2 = 0, $c2 = count($this->keys[$i]); $i2 < $c2; $i2++) + { + if ( ! isset($this->fields[$this->keys[$i][$i2]])) + { + unset($this->keys[$i][$i2]); + continue; + } + } + } + elseif ( ! isset($this->fields[$this->keys[$i]])) + { + unset($this->keys[$i]); + continue; + } + + is_array($this->keys[$i]) OR $this->keys[$i] = array($this->keys[$i]); + + $sql .= ",\n\tKEY ".$this->db->escape_identifiers(implode('_', $this->keys[$i])) + .' ('.implode(', ', $this->db->escape_identifiers($this->keys[$i])).')'; + } + + $this->keys = array(); + + return $sql; + } + +} diff --git a/system/database/drivers/mysql/mysql_result.php b/system/database/drivers/mysql/mysql_result.php new file mode 100644 index 0000000..05fc36e --- /dev/null +++ b/system/database/drivers/mysql/mysql_result.php @@ -0,0 +1,200 @@ +num_rows = mysql_num_rows($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Number of rows in the result set + * + * @return int + */ + public function num_rows() + { + return $this->num_rows; + } + + // -------------------------------------------------------------------- + + /** + * Number of fields in the result set + * + * @return int + */ + public function num_fields() + { + return mysql_num_fields($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @return array + */ + public function list_fields() + { + $field_names = array(); + mysql_field_seek($this->result_id, 0); + while ($field = mysql_fetch_field($this->result_id)) + { + $field_names[] = $field->name; + } + + return $field_names; + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @return array + */ + public function field_data() + { + $retval = array(); + for ($i = 0, $c = $this->num_fields(); $i < $c; $i++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = mysql_field_name($this->result_id, $i); + $retval[$i]->type = mysql_field_type($this->result_id, $i); + $retval[$i]->max_length = mysql_field_len($this->result_id, $i); + $retval[$i]->primary_key = (int) (strpos(mysql_field_flags($this->result_id, $i), 'primary_key') !== FALSE); + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * @return void + */ + public function free_result() + { + if (is_resource($this->result_id)) + { + mysql_free_result($this->result_id); + $this->result_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Data Seek + * + * Moves the internal pointer to the desired offset. We call + * this internally before fetching results to make sure the + * result set starts at zero. + * + * @param int $n + * @return bool + */ + public function data_seek($n = 0) + { + return $this->num_rows + ? mysql_data_seek($this->result_id, $n) + : FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @return array + */ + protected function _fetch_assoc() + { + return mysql_fetch_assoc($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @param string $class_name + * @return object + */ + protected function _fetch_object($class_name = 'stdClass') + { + return mysql_fetch_object($this->result_id, $class_name); + } + +} diff --git a/system/database/drivers/mysql/mysql_utility.php b/system/database/drivers/mysql/mysql_utility.php new file mode 100644 index 0000000..0564a5a --- /dev/null +++ b/system/database/drivers/mysql/mysql_utility.php @@ -0,0 +1,212 @@ +db->query('SHOW CREATE TABLE '.$this->db->escape_identifiers($this->db->database.'.'.$table)); + + // No result means the table name was invalid + if ($query === FALSE) + { + continue; + } + + // Write out the table schema + $output .= '#'.$newline.'# TABLE STRUCTURE FOR: '.$table.$newline.'#'.$newline.$newline; + + if ($add_drop === TRUE) + { + $output .= 'DROP TABLE IF EXISTS '.$this->db->protect_identifiers($table).';'.$newline.$newline; + } + + $i = 0; + $result = $query->result_array(); + foreach ($result[0] as $val) + { + if ($i++ % 2) + { + $output .= $val.';'.$newline.$newline; + } + } + + // If inserts are not needed we're done... + if ($add_insert === FALSE) + { + continue; + } + + // Grab all the data from the current table + $query = $this->db->query('SELECT * FROM '.$this->db->protect_identifiers($table)); + + if ($query->num_rows() === 0) + { + continue; + } + + // Fetch the field names and determine if the field is an + // integer type. We use this info to decide whether to + // surround the data with quotes or not + + $i = 0; + $field_str = ''; + $is_int = array(); + while ($field = mysql_fetch_field($query->result_id)) + { + // Most versions of MySQL store timestamp as a string + $is_int[$i] = in_array(strtolower(mysql_field_type($query->result_id, $i)), + array('tinyint', 'smallint', 'mediumint', 'int', 'bigint'), //, 'timestamp'), + TRUE); + + // Create a string of field names + $field_str .= $this->db->escape_identifiers($field->name).', '; + $i++; + } + + // Trim off the end comma + $field_str = preg_replace('/, $/' , '', $field_str); + + // Build the insert string + foreach ($query->result_array() as $row) + { + $val_str = ''; + + $i = 0; + foreach ($row as $v) + { + // Is the value NULL? + if ($v === NULL) + { + $val_str .= 'NULL'; + } + else + { + // Escape the data if it's not an integer + $val_str .= ($is_int[$i] === FALSE) ? $this->db->escape($v) : $v; + } + + // Append a comma + $val_str .= ', '; + $i++; + } + + // Remove the comma at the end of the string + $val_str = preg_replace('/, $/' , '', $val_str); + + // Build the INSERT string + $output .= 'INSERT INTO '.$this->db->protect_identifiers($table).' ('.$field_str.') VALUES ('.$val_str.');'.$newline; + } + + $output .= $newline.$newline; + } + + // Do we need to include a statement to re-enable foreign key checks? + if ($foreign_key_checks === FALSE) + { + $output .= 'SET foreign_key_checks = 1;'.$newline; + } + + return $output; + } + +} diff --git a/system/database/drivers/mysqli/index.html b/system/database/drivers/mysqli/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/system/database/drivers/mysqli/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

    Directory access is forbidden.

    + + + diff --git a/system/database/drivers/mysqli/mysqli_driver.php b/system/database/drivers/mysqli/mysqli_driver.php new file mode 100644 index 0000000..f5e9949 --- /dev/null +++ b/system/database/drivers/mysqli/mysqli_driver.php @@ -0,0 +1,554 @@ +report_mode = MYSQLI_REPORT_OFF; + } + + // Do we have a socket path? + if ($this->hostname[0] === '/') + { + $hostname = NULL; + $port = NULL; + $socket = $this->hostname; + } + else + { + $hostname = ($persistent === TRUE) + ? 'p:'.$this->hostname : $this->hostname; + $port = empty($this->port) ? NULL : $this->port; + $socket = NULL; + } + + $client_flags = ($this->compress === TRUE) ? MYSQLI_CLIENT_COMPRESS : 0; + $this->_mysqli = mysqli_init(); + + $this->_mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 10); + + if (isset($this->stricton)) + { + if ($this->stricton) + { + $this->_mysqli->options(MYSQLI_INIT_COMMAND, 'SET SESSION sql_mode = CONCAT(@@sql_mode, ",", "STRICT_ALL_TABLES")'); + } + else + { + $this->_mysqli->options(MYSQLI_INIT_COMMAND, + 'SET SESSION sql_mode = + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + @@sql_mode, + "STRICT_ALL_TABLES,", ""), + ",STRICT_ALL_TABLES", ""), + "STRICT_ALL_TABLES", ""), + "STRICT_TRANS_TABLES,", ""), + ",STRICT_TRANS_TABLES", ""), + "STRICT_TRANS_TABLES", "")' + ); + } + } + + if (is_array($this->encrypt)) + { + $ssl = array(); + empty($this->encrypt['ssl_key']) OR $ssl['key'] = $this->encrypt['ssl_key']; + empty($this->encrypt['ssl_cert']) OR $ssl['cert'] = $this->encrypt['ssl_cert']; + empty($this->encrypt['ssl_ca']) OR $ssl['ca'] = $this->encrypt['ssl_ca']; + empty($this->encrypt['ssl_capath']) OR $ssl['capath'] = $this->encrypt['ssl_capath']; + empty($this->encrypt['ssl_cipher']) OR $ssl['cipher'] = $this->encrypt['ssl_cipher']; + + if (isset($this->encrypt['ssl_verify'])) + { + $client_flags |= MYSQLI_CLIENT_SSL; + + if ($this->encrypt['ssl_verify']) + { + defined('MYSQLI_OPT_SSL_VERIFY_SERVER_CERT') && $this->_mysqli->options(MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, TRUE); + } + // Apparently (when it exists), setting MYSQLI_OPT_SSL_VERIFY_SERVER_CERT + // to FALSE didn't do anything, so PHP 5.6.16 introduced yet another + // constant ... + // + // https://secure.php.net/ChangeLog-5.php#5.6.16 + // https://bugs.php.net/bug.php?id=68344 + elseif (defined('MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT')) + { + $client_flags |= MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT; + } + } + + if ( ! empty($ssl)) + { + $client_flags |= MYSQLI_CLIENT_SSL; + $this->_mysqli->ssl_set( + isset($ssl['key']) ? $ssl['key'] : NULL, + isset($ssl['cert']) ? $ssl['cert'] : NULL, + isset($ssl['ca']) ? $ssl['ca'] : NULL, + isset($ssl['capath']) ? $ssl['capath'] : NULL, + isset($ssl['cipher']) ? $ssl['cipher'] : NULL + ); + } + } + + if ($this->_mysqli->real_connect($hostname, $this->username, $this->password, $this->database, $port, $socket, $client_flags)) + { + // Prior to version 5.7.3, MySQL silently downgrades to an unencrypted connection if SSL setup fails + if ( + ($client_flags & MYSQLI_CLIENT_SSL) + && version_compare($this->_mysqli->client_info, '5.7.3', '<=') + && empty($this->_mysqli->query("SHOW STATUS LIKE 'ssl_cipher'")->fetch_object()->Value) + ) + { + $this->_mysqli->close(); + $message = 'MySQLi was configured for an SSL connection, but got an unencrypted connection instead!'; + log_message('error', $message); + return ($this->db_debug) ? $this->display_error($message, '', TRUE) : FALSE; + } + + return $this->_mysqli; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Reconnect + * + * Keep / reestablish the db connection if no queries have been + * sent for a length of time exceeding the server's idle timeout + * + * @return void + */ + public function reconnect() + { + if ($this->conn_id !== FALSE && $this->conn_id->ping() === FALSE) + { + $this->conn_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Select the database + * + * @param string $database + * @return bool + */ + public function db_select($database = '') + { + if ($database === '') + { + $database = $this->database; + } + + if ($this->conn_id->select_db($database)) + { + $this->database = $database; + $this->data_cache = array(); + return TRUE; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Set client character set + * + * @param string $charset + * @return bool + */ + protected function _db_set_charset($charset) + { + return $this->conn_id->set_charset($charset); + } + + // -------------------------------------------------------------------- + + /** + * Database version number + * + * @return string + */ + public function version() + { + if (isset($this->data_cache['version'])) + { + return $this->data_cache['version']; + } + + return $this->data_cache['version'] = $this->conn_id->server_info; + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * @param string $sql an SQL query + * @return mixed + */ + protected function _execute($sql) + { + return $this->conn_id->query($this->_prep_query($sql)); + } + + // -------------------------------------------------------------------- + + /** + * Prep the query + * + * If needed, each database adapter can prep the query string + * + * @param string $sql an SQL query + * @return string + */ + protected function _prep_query($sql) + { + // mysqli_affected_rows() returns 0 for "DELETE FROM TABLE" queries. This hack + // modifies the query so that it a proper number of affected rows is returned. + if ($this->delete_hack === TRUE && preg_match('/^\s*DELETE\s+FROM\s+(\S+)\s*$/i', $sql)) + { + return trim($sql).' WHERE 1=1'; + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @return bool + */ + protected function _trans_begin() + { + $this->conn_id->autocommit(FALSE); + return is_php('5.5') + ? $this->conn_id->begin_transaction() + : $this->simple_query('START TRANSACTION'); // can also be BEGIN or BEGIN WORK + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @return bool + */ + protected function _trans_commit() + { + if ($this->conn_id->commit()) + { + $this->conn_id->autocommit(TRUE); + return TRUE; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @return bool + */ + protected function _trans_rollback() + { + if ($this->conn_id->rollback()) + { + $this->conn_id->autocommit(TRUE); + return TRUE; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Platform-dependent string escape + * + * @param string + * @return string + */ + protected function _escape_str($str) + { + return $this->conn_id->real_escape_string($str); + } + + // -------------------------------------------------------------------- + + /** + * Affected Rows + * + * @return int + */ + public function affected_rows() + { + return $this->conn_id->affected_rows; + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * @return int + */ + public function insert_id() + { + return $this->conn_id->insert_id; + } + + // -------------------------------------------------------------------- + + /** + * List table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool $prefix_limit + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = 'SHOW TABLES FROM '.$this->_escape_char.$this->database.$this->_escape_char; + + if ($prefix_limit !== FALSE && $this->dbprefix !== '') + { + return $sql." LIKE '".$this->escape_like_str($this->dbprefix)."%'"; + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @param string $table + * @return string + */ + protected function _list_columns($table = '') + { + return 'SHOW COLUMNS FROM '.$this->protect_identifiers($table, TRUE, NULL, FALSE); + } + + // -------------------------------------------------------------------- + + /** + * Returns an object with field data + * + * @param string $table + * @return array + */ + public function field_data($table) + { + if (($query = $this->query('SHOW COLUMNS FROM '.$this->protect_identifiers($table, TRUE, NULL, FALSE))) === FALSE) + { + return FALSE; + } + $query = $query->result_object(); + + $retval = array(); + for ($i = 0, $c = count($query); $i < $c; $i++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = $query[$i]->Field; + + sscanf($query[$i]->Type, '%[a-z](%d)', + $retval[$i]->type, + $retval[$i]->max_length + ); + + $retval[$i]->default = $query[$i]->Default; + $retval[$i]->primary_key = (int) ($query[$i]->Key === 'PRI'); + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Error + * + * Returns an array containing code and message of the last + * database error that has occurred. + * + * @return array + */ + public function error() + { + if ( ! empty($this->_mysqli->connect_errno)) + { + return array( + 'code' => $this->_mysqli->connect_errno, + 'message' => $this->_mysqli->connect_error + ); + } + + return array('code' => $this->conn_id->errno, 'message' => $this->conn_id->error); + } + + // -------------------------------------------------------------------- + + /** + * FROM tables + * + * Groups tables in FROM clauses if needed, so there is no confusion + * about operator precedence. + * + * @return string + */ + protected function _from_tables() + { + if ( ! empty($this->qb_join) && count($this->qb_from) > 1) + { + return '('.implode(', ', $this->qb_from).')'; + } + + return implode(', ', $this->qb_from); + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @return void + */ + protected function _close() + { + $this->conn_id->close(); + } + +} diff --git a/system/database/drivers/mysqli/mysqli_forge.php b/system/database/drivers/mysqli/mysqli_forge.php new file mode 100644 index 0000000..992c772 --- /dev/null +++ b/system/database/drivers/mysqli/mysqli_forge.php @@ -0,0 +1,245 @@ +db->char_set) && ! strpos($sql, 'CHARACTER SET') && ! strpos($sql, 'CHARSET')) + { + $sql .= ' DEFAULT CHARACTER SET = '.$this->db->char_set; + } + + if ( ! empty($this->db->dbcollat) && ! strpos($sql, 'COLLATE')) + { + $sql .= ' COLLATE = '.$this->db->dbcollat; + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * ALTER TABLE + * + * @param string $alter_type ALTER type + * @param string $table Table name + * @param mixed $field Column definition + * @return string|string[] + */ + protected function _alter_table($alter_type, $table, $field) + { + if ($alter_type === 'DROP') + { + return parent::_alter_table($alter_type, $table, $field); + } + + $sql = 'ALTER TABLE '.$this->db->escape_identifiers($table); + for ($i = 0, $c = count($field); $i < $c; $i++) + { + if ($field[$i]['_literal'] !== FALSE) + { + $field[$i] = ($alter_type === 'ADD') + ? "\n\tADD ".$field[$i]['_literal'] + : "\n\tMODIFY ".$field[$i]['_literal']; + } + else + { + if ($alter_type === 'ADD') + { + $field[$i]['_literal'] = "\n\tADD "; + } + else + { + $field[$i]['_literal'] = empty($field[$i]['new_name']) ? "\n\tMODIFY " : "\n\tCHANGE "; + } + + $field[$i] = $field[$i]['_literal'].$this->_process_column($field[$i]); + } + } + + return array($sql.implode(',', $field)); + } + + // -------------------------------------------------------------------- + + /** + * Process column + * + * @param array $field + * @return string + */ + protected function _process_column($field) + { + $extra_clause = isset($field['after']) + ? ' AFTER '.$this->db->escape_identifiers($field['after']) : ''; + + if (empty($extra_clause) && isset($field['first']) && $field['first'] === TRUE) + { + $extra_clause = ' FIRST'; + } + + return $this->db->escape_identifiers($field['name']) + .(empty($field['new_name']) ? '' : ' '.$this->db->escape_identifiers($field['new_name'])) + .' '.$field['type'].$field['length'] + .$field['unsigned'] + .$field['null'] + .$field['default'] + .$field['auto_increment'] + .$field['unique'] + .(empty($field['comment']) ? '' : ' COMMENT '.$field['comment']) + .$extra_clause; + } + + // -------------------------------------------------------------------- + + /** + * Process indexes + * + * @param string $table (ignored) + * @return string + */ + protected function _process_indexes($table) + { + $sql = ''; + + for ($i = 0, $c = count($this->keys); $i < $c; $i++) + { + if (is_array($this->keys[$i])) + { + for ($i2 = 0, $c2 = count($this->keys[$i]); $i2 < $c2; $i2++) + { + if ( ! isset($this->fields[$this->keys[$i][$i2]])) + { + unset($this->keys[$i][$i2]); + continue; + } + } + } + elseif ( ! isset($this->fields[$this->keys[$i]])) + { + unset($this->keys[$i]); + continue; + } + + is_array($this->keys[$i]) OR $this->keys[$i] = array($this->keys[$i]); + + $sql .= ",\n\tKEY ".$this->db->escape_identifiers(implode('_', $this->keys[$i])) + .' ('.implode(', ', $this->db->escape_identifiers($this->keys[$i])).')'; + } + + $this->keys = array(); + + return $sql; + } + +} diff --git a/system/database/drivers/mysqli/mysqli_result.php b/system/database/drivers/mysqli/mysqli_result.php new file mode 100644 index 0000000..8c4f94d --- /dev/null +++ b/system/database/drivers/mysqli/mysqli_result.php @@ -0,0 +1,233 @@ +num_rows) + ? $this->num_rows + : $this->num_rows = $this->result_id->num_rows; + } + + // -------------------------------------------------------------------- + + /** + * Number of fields in the result set + * + * @return int + */ + public function num_fields() + { + return $this->result_id->field_count; + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @return array + */ + public function list_fields() + { + $field_names = array(); + $this->result_id->field_seek(0); + while ($field = $this->result_id->fetch_field()) + { + $field_names[] = $field->name; + } + + return $field_names; + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @return array + */ + public function field_data() + { + $retval = array(); + $field_data = $this->result_id->fetch_fields(); + for ($i = 0, $c = count($field_data); $i < $c; $i++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = $field_data[$i]->name; + $retval[$i]->type = static::_get_field_type($field_data[$i]->type); + $retval[$i]->max_length = $field_data[$i]->max_length; + $retval[$i]->primary_key = (int) ($field_data[$i]->flags & MYSQLI_PRI_KEY_FLAG); + $retval[$i]->default = $field_data[$i]->def; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Get field type + * + * Extracts field type info from the bitflags returned by + * mysqli_result::fetch_fields() + * + * @used-by CI_DB_mysqli_result::field_data() + * @param int $type + * @return string + */ + private static function _get_field_type($type) + { + static $map; + isset($map) OR $map = array( + MYSQLI_TYPE_DECIMAL => 'decimal', + MYSQLI_TYPE_BIT => 'bit', + MYSQLI_TYPE_TINY => 'tinyint', + MYSQLI_TYPE_SHORT => 'smallint', + MYSQLI_TYPE_INT24 => 'mediumint', + MYSQLI_TYPE_LONG => 'int', + MYSQLI_TYPE_LONGLONG => 'bigint', + MYSQLI_TYPE_FLOAT => 'float', + MYSQLI_TYPE_DOUBLE => 'double', + MYSQLI_TYPE_TIMESTAMP => 'timestamp', + MYSQLI_TYPE_DATE => 'date', + MYSQLI_TYPE_TIME => 'time', + MYSQLI_TYPE_DATETIME => 'datetime', + MYSQLI_TYPE_YEAR => 'year', + MYSQLI_TYPE_NEWDATE => 'date', + MYSQLI_TYPE_INTERVAL => 'interval', + MYSQLI_TYPE_ENUM => 'enum', + MYSQLI_TYPE_SET => 'set', + MYSQLI_TYPE_TINY_BLOB => 'tinyblob', + MYSQLI_TYPE_MEDIUM_BLOB => 'mediumblob', + MYSQLI_TYPE_BLOB => 'blob', + MYSQLI_TYPE_LONG_BLOB => 'longblob', + MYSQLI_TYPE_STRING => 'char', + MYSQLI_TYPE_VAR_STRING => 'varchar', + MYSQLI_TYPE_GEOMETRY => 'geometry' + ); + + return isset($map[$type]) ? $map[$type] : $type; + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * @return void + */ + public function free_result() + { + if (is_object($this->result_id)) + { + $this->result_id->free(); + $this->result_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Data Seek + * + * Moves the internal pointer to the desired offset. We call + * this internally before fetching results to make sure the + * result set starts at zero. + * + * @param int $n + * @return bool + */ + public function data_seek($n = 0) + { + return $this->result_id->data_seek($n); + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @return array + */ + protected function _fetch_assoc() + { + return $this->result_id->fetch_assoc(); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @param string $class_name + * @return object + */ + protected function _fetch_object($class_name = 'stdClass') + { + return $this->result_id->fetch_object($class_name); + } + +} diff --git a/system/database/drivers/mysqli/mysqli_utility.php b/system/database/drivers/mysqli/mysqli_utility.php new file mode 100644 index 0000000..6a7d419 --- /dev/null +++ b/system/database/drivers/mysqli/mysqli_utility.php @@ -0,0 +1,212 @@ +db->query('SHOW CREATE TABLE '.$this->db->escape_identifiers($this->db->database.'.'.$table)); + + // No result means the table name was invalid + if ($query === FALSE) + { + continue; + } + + // Write out the table schema + $output .= '#'.$newline.'# TABLE STRUCTURE FOR: '.$table.$newline.'#'.$newline.$newline; + + if ($add_drop === TRUE) + { + $output .= 'DROP TABLE IF EXISTS '.$this->db->protect_identifiers($table).';'.$newline.$newline; + } + + $i = 0; + $result = $query->result_array(); + foreach ($result[0] as $val) + { + if ($i++ % 2) + { + $output .= $val.';'.$newline.$newline; + } + } + + // If inserts are not needed we're done... + if ($add_insert === FALSE) + { + continue; + } + + // Grab all the data from the current table + $query = $this->db->query('SELECT * FROM '.$this->db->protect_identifiers($table)); + + if ($query->num_rows() === 0) + { + continue; + } + + // Fetch the field names and determine if the field is an + // integer type. We use this info to decide whether to + // surround the data with quotes or not + + $i = 0; + $field_str = ''; + $is_int = array(); + while ($field = $query->result_id->fetch_field()) + { + // Most versions of MySQL store timestamp as a string + $is_int[$i] = in_array($field->type, array(MYSQLI_TYPE_TINY, MYSQLI_TYPE_SHORT, MYSQLI_TYPE_INT24, MYSQLI_TYPE_LONG), TRUE); + + // Create a string of field names + $field_str .= $this->db->escape_identifiers($field->name).', '; + $i++; + } + + // Trim off the end comma + $field_str = preg_replace('/, $/' , '', $field_str); + + // Build the insert string + foreach ($query->result_array() as $row) + { + $val_str = ''; + + $i = 0; + foreach ($row as $v) + { + // Is the value NULL? + if ($v === NULL) + { + $val_str .= 'NULL'; + } + else + { + // Escape the data if it's not an integer + $val_str .= ($is_int[$i] === FALSE) ? $this->db->escape($v) : $v; + } + + // Append a comma + $val_str .= ', '; + $i++; + } + + // Remove the comma at the end of the string + $val_str = preg_replace('/, $/' , '', $val_str); + + // Build the INSERT string + $output .= 'INSERT INTO '.$this->db->protect_identifiers($table).' ('.$field_str.') VALUES ('.$val_str.');'.$newline; + } + + $output .= $newline.$newline; + } + + // Do we need to include a statement to re-enable foreign key checks? + if ($foreign_key_checks === FALSE) + { + $output .= 'SET foreign_key_checks = 1;'.$newline; + } + + return $output; + } + +} diff --git a/system/database/drivers/oci8/index.html b/system/database/drivers/oci8/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/system/database/drivers/oci8/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

    Directory access is forbidden.

    + + + diff --git a/system/database/drivers/oci8/oci8_driver.php b/system/database/drivers/oci8/oci8_driver.php new file mode 100644 index 0000000..7bb43b5 --- /dev/null +++ b/system/database/drivers/oci8/oci8_driver.php @@ -0,0 +1,712 @@ + '/^\(DESCRIPTION=(\(.+\)){2,}\)$/', // TNS + // Easy Connect string (Oracle 10g+) + 'ec' => '/^(\/\/)?[a-z0-9.:_-]+(:[1-9][0-9]{0,4})?(\/[a-z0-9$_]+)?(:[^\/])?(\/[a-z0-9$_]+)?$/i', + 'in' => '/^[a-z0-9$_]+$/i' // Instance name (defined in tnsnames.ora) + ); + + /* Space characters don't have any effect when actually + * connecting, but can be a hassle while validating the DSN. + */ + $this->dsn = str_replace(array("\n", "\r", "\t", ' '), '', $this->dsn); + + if ($this->dsn !== '') + { + foreach ($valid_dsns as $regexp) + { + if (preg_match($regexp, $this->dsn)) + { + return; + } + } + } + + // Legacy support for TNS in the hostname configuration field + $this->hostname = str_replace(array("\n", "\r", "\t", ' '), '', $this->hostname); + if (preg_match($valid_dsns['tns'], $this->hostname)) + { + $this->dsn = $this->hostname; + return; + } + elseif ($this->hostname !== '' && strpos($this->hostname, '/') === FALSE && strpos($this->hostname, ':') === FALSE + && (( ! empty($this->port) && ctype_digit($this->port)) OR $this->database !== '')) + { + /* If the hostname field isn't empty, doesn't contain + * ':' and/or '/' and if port and/or database aren't + * empty, then the hostname field is most likely indeed + * just a hostname. Therefore we'll try and build an + * Easy Connect string from these 3 settings, assuming + * that the database field is a service name. + */ + $this->dsn = $this->hostname + .(( ! empty($this->port) && ctype_digit($this->port)) ? ':'.$this->port : '') + .($this->database !== '' ? '/'.ltrim($this->database, '/') : ''); + + if (preg_match($valid_dsns['ec'], $this->dsn)) + { + return; + } + } + + /* At this point, we can only try and validate the hostname and + * database fields separately as DSNs. + */ + if (preg_match($valid_dsns['ec'], $this->hostname) OR preg_match($valid_dsns['in'], $this->hostname)) + { + $this->dsn = $this->hostname; + return; + } + + $this->database = str_replace(array("\n", "\r", "\t", ' '), '', $this->database); + foreach ($valid_dsns as $regexp) + { + if (preg_match($regexp, $this->database)) + { + return; + } + } + + /* Well - OK, an empty string should work as well. + * PHP will try to use environment variables to + * determine which Oracle instance to connect to. + */ + $this->dsn = ''; + } + + // -------------------------------------------------------------------- + + /** + * Non-persistent database connection + * + * @param bool $persistent + * @return resource + */ + public function db_connect($persistent = FALSE) + { + $func = ($persistent === TRUE) ? 'oci_pconnect' : 'oci_connect'; + return empty($this->char_set) + ? $func($this->username, $this->password, $this->dsn) + : $func($this->username, $this->password, $this->dsn, $this->char_set); + } + + // -------------------------------------------------------------------- + + /** + * Database version number + * + * @return string + */ + public function version() + { + if (isset($this->data_cache['version'])) + { + return $this->data_cache['version']; + } + + if ( ! $this->conn_id OR ($version_string = oci_server_version($this->conn_id)) === FALSE) + { + return FALSE; + } + elseif (preg_match('#Release\s(\d+(?:\.\d+)+)#', $version_string, $match)) + { + return $this->data_cache['version'] = $match[1]; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * @param string $sql an SQL query + * @return resource + */ + protected function _execute($sql) + { + /* Oracle must parse the query before it is run. All of the actions with + * the query are based on the statement id returned by oci_parse(). + */ + if ($this->_reset_stmt_id === TRUE) + { + $this->stmt_id = oci_parse($this->conn_id, $sql); + } + + oci_set_prefetch($this->stmt_id, 1000); + return oci_execute($this->stmt_id, $this->commit_mode); + } + + // -------------------------------------------------------------------- + + /** + * Get cursor. Returns a cursor from the database + * + * @return resource + */ + public function get_cursor() + { + return $this->curs_id = oci_new_cursor($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Stored Procedure. Executes a stored procedure + * + * @param string package name in which the stored procedure is in + * @param string stored procedure name to execute + * @param array parameters + * @return mixed + * + * params array keys + * + * KEY OPTIONAL NOTES + * name no the name of the parameter should be in : format + * value no the value of the parameter. If this is an OUT or IN OUT parameter, + * this should be a reference to a variable + * type yes the type of the parameter + * length yes the max size of the parameter + */ + public function stored_procedure($package, $procedure, array $params) + { + if ($package === '' OR $procedure === '') + { + log_message('error', 'Invalid query: '.$package.'.'.$procedure); + return ($this->db_debug) ? $this->display_error('db_invalid_query') : FALSE; + } + + // Build the query string + $sql = 'BEGIN '.$package.'.'.$procedure.'('; + + $have_cursor = FALSE; + foreach ($params as $param) + { + $sql .= $param['name'].','; + + if (isset($param['type']) && $param['type'] === OCI_B_CURSOR) + { + $have_cursor = TRUE; + } + } + $sql = trim($sql, ',').'); END;'; + + $this->_reset_stmt_id = FALSE; + $this->stmt_id = oci_parse($this->conn_id, $sql); + $this->_bind_params($params); + $result = $this->query($sql, FALSE, $have_cursor); + $this->_reset_stmt_id = TRUE; + return $result; + } + + // -------------------------------------------------------------------- + + /** + * Bind parameters + * + * @param array $params + * @return void + */ + protected function _bind_params($params) + { + if ( ! is_array($params) OR ! is_resource($this->stmt_id)) + { + return; + } + + foreach ($params as $param) + { + foreach (array('name', 'value', 'type', 'length') as $val) + { + if ( ! isset($param[$val])) + { + $param[$val] = ''; + } + } + + oci_bind_by_name($this->stmt_id, $param['name'], $param['value'], $param['length'], $param['type']); + } + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @return bool + */ + protected function _trans_begin() + { + $this->commit_mode = OCI_NO_AUTO_COMMIT; + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @return bool + */ + protected function _trans_commit() + { + $this->commit_mode = OCI_COMMIT_ON_SUCCESS; + + return oci_commit($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @return bool + */ + protected function _trans_rollback() + { + $this->commit_mode = OCI_COMMIT_ON_SUCCESS; + return oci_rollback($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Affected Rows + * + * @return int + */ + public function affected_rows() + { + return oci_num_rows($this->stmt_id); + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * @return int + */ + public function insert_id() + { + // not supported in oracle + return $this->display_error('db_unsupported_function'); + } + + // -------------------------------------------------------------------- + + /** + * Show table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool $prefix_limit + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = 'SELECT "TABLE_NAME" FROM "ALL_TABLES"'; + + if ($prefix_limit !== FALSE && $this->dbprefix !== '') + { + return $sql.' WHERE "TABLE_NAME" LIKE \''.$this->escape_like_str($this->dbprefix)."%' " + .sprintf($this->_like_escape_str, $this->_like_escape_chr); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @param string $table + * @return string + */ + protected function _list_columns($table = '') + { + if (strpos($table, '.') !== FALSE) + { + sscanf($table, '%[^.].%s', $owner, $table); + } + else + { + $owner = $this->username; + } + + return 'SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS + WHERE UPPER(OWNER) = '.$this->escape(strtoupper($owner)).' + AND UPPER(TABLE_NAME) = '.$this->escape(strtoupper($table)); + } + + // -------------------------------------------------------------------- + + /** + * Returns an object with field data + * + * @param string $table + * @return array + */ + public function field_data($table) + { + if (strpos($table, '.') !== FALSE) + { + sscanf($table, '%[^.].%s', $owner, $table); + } + else + { + $owner = $this->username; + } + + $sql = 'SELECT COLUMN_NAME, DATA_TYPE, CHAR_LENGTH, DATA_PRECISION, DATA_LENGTH, DATA_DEFAULT, NULLABLE + FROM ALL_TAB_COLUMNS + WHERE UPPER(OWNER) = '.$this->escape(strtoupper($owner)).' + AND UPPER(TABLE_NAME) = '.$this->escape(strtoupper($table)); + + if (($query = $this->query($sql)) === FALSE) + { + return FALSE; + } + $query = $query->result_object(); + + $retval = array(); + for ($i = 0, $c = count($query); $i < $c; $i++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = $query[$i]->COLUMN_NAME; + $retval[$i]->type = $query[$i]->DATA_TYPE; + + $length = ($query[$i]->CHAR_LENGTH > 0) + ? $query[$i]->CHAR_LENGTH : $query[$i]->DATA_PRECISION; + if ($length === NULL) + { + $length = $query[$i]->DATA_LENGTH; + } + $retval[$i]->max_length = $length; + + $default = $query[$i]->DATA_DEFAULT; + if ($default === NULL && $query[$i]->NULLABLE === 'N') + { + $default = ''; + } + $retval[$i]->default = $default; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Error + * + * Returns an array containing code and message of the last + * database error that has occurred. + * + * @return array + */ + public function error() + { + // oci_error() returns an array that already contains + // 'code' and 'message' keys, but it can return false + // if there was no error .... + if (is_resource($this->curs_id)) + { + $error = oci_error($this->curs_id); + } + elseif (is_resource($this->stmt_id)) + { + $error = oci_error($this->stmt_id); + } + elseif (is_resource($this->conn_id)) + { + $error = oci_error($this->conn_id); + } + else + { + $error = oci_error(); + } + + return is_array($error) + ? $error + : array('code' => '', 'message' => ''); + } + + // -------------------------------------------------------------------- + + /** + * Insert batch statement + * + * Generates a platform-specific insert string from the supplied data + * + * @param string $table Table name + * @param array $keys INSERT keys + * @param array $values INSERT values + * @return string + */ + protected function _insert_batch($table, $keys, $values) + { + $keys = implode(', ', $keys); + $sql = "INSERT ALL\n"; + + for ($i = 0, $c = count($values); $i < $c; $i++) + { + $sql .= ' INTO '.$table.' ('.$keys.') VALUES '.$values[$i]."\n"; + } + + return $sql.'SELECT * FROM dual'; + } + + // -------------------------------------------------------------------- + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * + * If the database does not support the TRUNCATE statement, + * then this method maps to 'DELETE FROM table' + * + * @param string $table + * @return string + */ + protected function _truncate($table) + { + return 'TRUNCATE TABLE '.$table; + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @param string $table + * @return string + */ + protected function _delete($table) + { + if ($this->qb_limit) + { + $this->where('rownum <= ',$this->qb_limit, FALSE); + $this->qb_limit = FALSE; + } + + return parent::_delete($table); + } + + // -------------------------------------------------------------------- + + /** + * LIMIT + * + * Generates a platform-specific LIMIT clause + * + * @param string $sql SQL Query + * @return string + */ + protected function _limit($sql) + { + if (version_compare($this->version(), '12.1', '>=')) + { + // OFFSET-FETCH can be used only with the ORDER BY clause + empty($this->qb_orderby) && $sql .= ' ORDER BY 1'; + + return $sql.' OFFSET '.(int) $this->qb_offset.' ROWS FETCH NEXT '.$this->qb_limit.' ROWS ONLY'; + } + + $this->limit_used = TRUE; + return 'SELECT * FROM (SELECT inner_query.*, rownum rnum FROM ('.$sql.') inner_query WHERE rownum < '.($this->qb_offset + $this->qb_limit + 1).')' + .($this->qb_offset ? ' WHERE rnum >= '.($this->qb_offset + 1) : ''); + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @return void + */ + protected function _close() + { + if (is_resource($this->curs_id)) + { + oci_free_statement($this->curs_id); + } + + if (is_resource($this->stmt_id)) + { + oci_free_statement($this->stmt_id); + } + + oci_close($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * We need to reset our $limit_used hack flag, so it doesn't propagate + * to subsequent queries. + * + * @return void + */ + protected function _reset_select() + { + $this->limit_used = FALSE; + parent::_reset_select(); + } +} diff --git a/system/database/drivers/oci8/oci8_forge.php b/system/database/drivers/oci8/oci8_forge.php new file mode 100644 index 0000000..9910b11 --- /dev/null +++ b/system/database/drivers/oci8/oci8_forge.php @@ -0,0 +1,217 @@ +db->escape_identifiers($table); + $sqls = array(); + for ($i = 0, $c = count($field); $i < $c; $i++) + { + if ($field[$i]['_literal'] !== FALSE) + { + $field[$i] = "\n\t".$field[$i]['_literal']; + } + else + { + $field[$i]['_literal'] = "\n\t".$this->_process_column($field[$i]); + + if ( ! empty($field[$i]['comment'])) + { + $sqls[] = 'COMMENT ON COLUMN ' + .$this->db->escape_identifiers($table).'.'.$this->db->escape_identifiers($field[$i]['name']) + .' IS '.$field[$i]['comment']; + } + + if ($alter_type === 'MODIFY' && ! empty($field[$i]['new_name'])) + { + $sqls[] = $sql.' RENAME COLUMN '.$this->db->escape_identifiers($field[$i]['name']) + .' TO '.$this->db->escape_identifiers($field[$i]['new_name']); + } + + $field[$i] = "\n\t".$field[$i]['_literal']; + } + } + + $sql .= ' '.$alter_type.' '; + $sql .= (count($field) === 1) + ? $field[0] + : '('.implode(',', $field).')'; + + // RENAME COLUMN must be executed after MODIFY + array_unshift($sqls, $sql); + return $sqls; + } + + // -------------------------------------------------------------------- + + /** + * Field attribute AUTO_INCREMENT + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_auto_increment(&$attributes, &$field) + { + if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE && stripos($field['type'], 'number') !== FALSE && version_compare($this->db->version(), '12.1', '>=')) + { + $field['auto_increment'] = ' GENERATED ALWAYS AS IDENTITY'; + } + } + + // -------------------------------------------------------------------- + + /** + * Process column + * + * @param array $field + * @return string + */ + protected function _process_column($field) + { + return $this->db->escape_identifiers($field['name']) + .' '.$field['type'].$field['length'] + .$field['unsigned'] + .$field['default'] + .$field['auto_increment'] + .$field['null'] + .$field['unique']; + } + + // -------------------------------------------------------------------- + + /** + * Field attribute TYPE + * + * Performs a data type mapping between different databases. + * + * @param array &$attributes + * @return void + */ + protected function _attr_type(&$attributes) + { + switch (strtoupper($attributes['TYPE'])) + { + case 'TINYINT': + $attributes['TYPE'] = 'NUMBER'; + return; + case 'MEDIUMINT': + $attributes['TYPE'] = 'NUMBER'; + return; + case 'INT': + $attributes['TYPE'] = 'NUMBER'; + return; + case 'BIGINT': + $attributes['TYPE'] = 'NUMBER'; + return; + default: return; + } + } +} diff --git a/system/database/drivers/oci8/oci8_result.php b/system/database/drivers/oci8/oci8_result.php new file mode 100644 index 0000000..4312f9b --- /dev/null +++ b/system/database/drivers/oci8/oci8_result.php @@ -0,0 +1,230 @@ +stmt_id = $driver_object->stmt_id; + $this->curs_id = $driver_object->curs_id; + $this->limit_used = $driver_object->limit_used; + $this->commit_mode =& $driver_object->commit_mode; + $driver_object->stmt_id = FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Number of fields in the result set + * + * @return int + */ + public function num_fields() + { + $count = oci_num_fields($this->stmt_id); + + // if we used a limit we subtract it + return ($this->limit_used) ? $count - 1 : $count; + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @return array + */ + public function list_fields() + { + $field_names = array(); + for ($c = 1, $fieldCount = $this->num_fields(); $c <= $fieldCount; $c++) + { + $field_names[] = oci_field_name($this->stmt_id, $c); + } + return $field_names; + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @return array + */ + public function field_data() + { + $retval = array(); + for ($c = 1, $fieldCount = $this->num_fields(); $c <= $fieldCount; $c++) + { + $F = new stdClass(); + $F->name = oci_field_name($this->stmt_id, $c); + $F->type = oci_field_type($this->stmt_id, $c); + $F->max_length = oci_field_size($this->stmt_id, $c); + + $retval[] = $F; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * @return void + */ + public function free_result() + { + if (is_resource($this->result_id)) + { + oci_free_statement($this->result_id); + $this->result_id = FALSE; + } + + if (is_resource($this->stmt_id)) + { + oci_free_statement($this->stmt_id); + } + + if (is_resource($this->curs_id)) + { + oci_cancel($this->curs_id); + $this->curs_id = NULL; + } + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @return array + */ + protected function _fetch_assoc() + { + $id = ($this->curs_id) ? $this->curs_id : $this->stmt_id; + return oci_fetch_assoc($id); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @param string $class_name + * @return object + */ + protected function _fetch_object($class_name = 'stdClass') + { + $row = ($this->curs_id) + ? oci_fetch_object($this->curs_id) + : oci_fetch_object($this->stmt_id); + + if ($class_name === 'stdClass' OR ! $row) + { + return $row; + } + + $class_name = new $class_name(); + foreach ($row as $key => $value) + { + $class_name->$key = $value; + } + + return $class_name; + } + +} diff --git a/system/database/drivers/oci8/oci8_utility.php b/system/database/drivers/oci8/oci8_utility.php new file mode 100644 index 0000000..bcce114 --- /dev/null +++ b/system/database/drivers/oci8/oci8_utility.php @@ -0,0 +1,69 @@ +db->display_error('db_unsupported_feature'); + } + +} diff --git a/system/database/drivers/odbc/index.html b/system/database/drivers/odbc/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/system/database/drivers/odbc/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

    Directory access is forbidden.

    + + + diff --git a/system/database/drivers/odbc/odbc_driver.php b/system/database/drivers/odbc/odbc_driver.php new file mode 100644 index 0000000..cfb9d57 --- /dev/null +++ b/system/database/drivers/odbc/odbc_driver.php @@ -0,0 +1,426 @@ +dsn)) + { + $this->dsn = $this->hostname; + } + } + + // -------------------------------------------------------------------- + + /** + * Non-persistent database connection + * + * @param bool $persistent + * @return resource + */ + public function db_connect($persistent = FALSE) + { + return ($persistent === TRUE) + ? odbc_pconnect($this->dsn, $this->username, $this->password) + : odbc_connect($this->dsn, $this->username, $this->password); + } + + // -------------------------------------------------------------------- + + /** + * Compile Bindings + * + * @param string $sql SQL statement + * @param array $binds An array of values to bind + * @return string + */ + public function compile_binds($sql, $binds) + { + if (empty($binds) OR empty($this->bind_marker) OR strpos($sql, $this->bind_marker) === FALSE) + { + return $sql; + } + elseif ( ! is_array($binds)) + { + $binds = array($binds); + $bind_count = 1; + } + else + { + // Make sure we're using numeric keys + $binds = array_values($binds); + $bind_count = count($binds); + } + + // We'll need the marker length later + $ml = strlen($this->bind_marker); + + // Make sure not to replace a chunk inside a string that happens to match the bind marker + if ($c = preg_match_all("/'[^']*'|\"[^\"]*\"/i", $sql, $matches)) + { + $c = preg_match_all('/'.preg_quote($this->bind_marker, '/').'/i', + str_replace($matches[0], + str_replace($this->bind_marker, str_repeat(' ', $ml), $matches[0]), + $sql, $c), + $matches, PREG_OFFSET_CAPTURE); + + // Bind values' count must match the count of markers in the query + if ($bind_count !== $c) + { + return $sql; + } + } + elseif (($c = preg_match_all('/'.preg_quote($this->bind_marker, '/').'/i', $sql, $matches, PREG_OFFSET_CAPTURE)) !== $bind_count) + { + return $sql; + } + + if ($this->bind_marker !== '?') + { + do + { + $c--; + $sql = substr_replace($sql, '?', $matches[0][$c][1], $ml); + } + while ($c !== 0); + } + + if (FALSE !== ($this->odbc_result = odbc_prepare($this->conn_id, $sql))) + { + $this->binds = array_values($binds); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * @param string $sql an SQL query + * @return resource + */ + protected function _execute($sql) + { + if ( ! isset($this->odbc_result)) + { + return odbc_exec($this->conn_id, $sql); + } + elseif ($this->odbc_result === FALSE) + { + return FALSE; + } + + if (TRUE === ($success = odbc_execute($this->odbc_result, $this->binds))) + { + // For queries that return result sets, return the result_id resource on success + $this->is_write_type($sql) OR $success = $this->odbc_result; + } + + $this->odbc_result = NULL; + $this->binds = array(); + + return $success; + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @return bool + */ + protected function _trans_begin() + { + return odbc_autocommit($this->conn_id, FALSE); + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @return bool + */ + protected function _trans_commit() + { + if (odbc_commit($this->conn_id)) + { + odbc_autocommit($this->conn_id, TRUE); + return TRUE; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @return bool + */ + protected function _trans_rollback() + { + if (odbc_rollback($this->conn_id)) + { + odbc_autocommit($this->conn_id, TRUE); + return TRUE; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Determines if a query is a "write" type. + * + * @param string An SQL query string + * @return bool + */ + public function is_write_type($sql) + { + if (preg_match('#^(INSERT|UPDATE).*RETURNING\s.+(\,\s?.+)*$#is', $sql)) + { + return FALSE; + } + + return parent::is_write_type($sql); + } + + // -------------------------------------------------------------------- + + /** + * Platform-dependent string escape + * + * @param string + * @return string + */ + protected function _escape_str($str) + { + $this->display_error('db_unsupported_feature'); + } + + // -------------------------------------------------------------------- + + /** + * Affected Rows + * + * @return int + */ + public function affected_rows() + { + return odbc_num_rows($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * @return bool + */ + public function insert_id() + { + return ($this->db_debug) ? $this->display_error('db_unsupported_feature') : FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Show table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool $prefix_limit + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = "SELECT table_name FROM information_schema.tables WHERE table_schema = '".$this->schema."'"; + + if ($prefix_limit !== FALSE && $this->dbprefix !== '') + { + return $sql." AND table_name LIKE '".$this->escape_like_str($this->dbprefix)."%' " + .sprintf($this->_like_escape_str, $this->_like_escape_chr); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @param string $table + * @return string + */ + protected function _list_columns($table = '') + { + return 'SHOW COLUMNS FROM '.$table; + } + + // -------------------------------------------------------------------- + + /** + * Field data query + * + * Generates a platform-specific query so that the column data can be retrieved + * + * @param string $table + * @return string + */ + protected function _field_data($table) + { + return 'SELECT TOP 1 FROM '.$table; + } + + // -------------------------------------------------------------------- + + /** + * Error + * + * Returns an array containing code and message of the last + * database error that has occurred. + * + * @return array + */ + public function error() + { + return array('code' => odbc_error($this->conn_id), 'message' => odbc_errormsg($this->conn_id)); + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @return void + */ + protected function _close() + { + odbc_close($this->conn_id); + } +} diff --git a/system/database/drivers/odbc/odbc_forge.php b/system/database/drivers/odbc/odbc_forge.php new file mode 100644 index 0000000..115d08a --- /dev/null +++ b/system/database/drivers/odbc/odbc_forge.php @@ -0,0 +1,87 @@ +num_rows)) + { + return $this->num_rows; + } + elseif (($this->num_rows = odbc_num_rows($this->result_id)) !== -1) + { + return $this->num_rows; + } + + // Work-around for ODBC subdrivers that don't support num_rows() + if (count($this->result_array) > 0) + { + return $this->num_rows = count($this->result_array); + } + elseif (count($this->result_object) > 0) + { + return $this->num_rows = count($this->result_object); + } + + return $this->num_rows = count($this->result_array()); + } + + // -------------------------------------------------------------------- + + /** + * Number of fields in the result set + * + * @return int + */ + public function num_fields() + { + return odbc_num_fields($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @return array + */ + public function list_fields() + { + $field_names = array(); + $num_fields = $this->num_fields(); + + if ($num_fields > 0) + { + for ($i = 1; $i <= $num_fields; $i++) + { + $field_names[] = odbc_field_name($this->result_id, $i); + } + } + + return $field_names; + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @return array + */ + public function field_data() + { + $retval = array(); + for ($i = 0, $odbc_index = 1, $c = $this->num_fields(); $i < $c; $i++, $odbc_index++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = odbc_field_name($this->result_id, $odbc_index); + $retval[$i]->type = odbc_field_type($this->result_id, $odbc_index); + $retval[$i]->max_length = odbc_field_len($this->result_id, $odbc_index); + $retval[$i]->primary_key = 0; + $retval[$i]->default = ''; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * @return void + */ + public function free_result() + { + if (is_resource($this->result_id)) + { + odbc_free_result($this->result_id); + $this->result_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @return array + */ + protected function _fetch_assoc() + { + return odbc_fetch_array($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @param string $class_name + * @return object + */ + protected function _fetch_object($class_name = 'stdClass') + { + $row = odbc_fetch_object($this->result_id); + + if ($class_name === 'stdClass' OR ! $row) + { + return $row; + } + + $class_name = new $class_name(); + foreach ($row as $key => $value) + { + $class_name->$key = $value; + } + + return $class_name; + } + +} + +// -------------------------------------------------------------------- + +if ( ! function_exists('odbc_fetch_array')) +{ + /** + * ODBC Fetch array + * + * Emulates the native odbc_fetch_array() function when + * it is not available (odbc_fetch_array() requires unixODBC) + * + * @param resource &$result + * @param int $rownumber + * @return array + */ + function odbc_fetch_array(&$result, $rownumber = 1) + { + $rs = array(); + if ( ! odbc_fetch_into($result, $rs, $rownumber)) + { + return FALSE; + } + + $rs_assoc = array(); + foreach ($rs as $k => $v) + { + $field_name = odbc_field_name($result, $k+1); + $rs_assoc[$field_name] = $v; + } + + return $rs_assoc; + } +} + +// -------------------------------------------------------------------- + +if ( ! function_exists('odbc_fetch_object')) +{ + /** + * ODBC Fetch object + * + * Emulates the native odbc_fetch_object() function when + * it is not available. + * + * @param resource &$result + * @param int $rownumber + * @return object + */ + function odbc_fetch_object(&$result, $rownumber = 1) + { + $rs = array(); + if ( ! odbc_fetch_into($result, $rs, $rownumber)) + { + return FALSE; + } + + $rs_object = new stdClass(); + foreach ($rs as $k => $v) + { + $field_name = odbc_field_name($result, $k+1); + $rs_object->$field_name = $v; + } + + return $rs_object; + } +} diff --git a/system/database/drivers/odbc/odbc_utility.php b/system/database/drivers/odbc/odbc_utility.php new file mode 100644 index 0000000..a69ed00 --- /dev/null +++ b/system/database/drivers/odbc/odbc_utility.php @@ -0,0 +1,64 @@ +db->display_error('db_unsupported_feature'); + } + +} diff --git a/system/database/drivers/pdo/index.html b/system/database/drivers/pdo/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/system/database/drivers/pdo/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

    Directory access is forbidden.

    + + + diff --git a/system/database/drivers/pdo/pdo_driver.php b/system/database/drivers/pdo/pdo_driver.php new file mode 100644 index 0000000..559e865 --- /dev/null +++ b/system/database/drivers/pdo/pdo_driver.php @@ -0,0 +1,351 @@ +dsn, $match) && count($match) === 2) + { + // If there is a minimum valid dsn string pattern found, we're done + // This is for general PDO users, who tend to have a full DSN string. + $this->subdriver = $match[1]; + return; + } + // Legacy support for DSN specified in the hostname field + elseif (preg_match('/([^:]+):/', $this->hostname, $match) && count($match) === 2) + { + $this->dsn = $this->hostname; + $this->hostname = NULL; + $this->subdriver = $match[1]; + return; + } + elseif (in_array($this->subdriver, array('mssql', 'sybase'), TRUE)) + { + $this->subdriver = 'dblib'; + } + elseif ($this->subdriver === '4D') + { + $this->subdriver = '4d'; + } + elseif ( ! in_array($this->subdriver, array('4d', 'cubrid', 'dblib', 'firebird', 'ibm', 'informix', 'mysql', 'oci', 'odbc', 'pgsql', 'sqlite', 'sqlsrv'), TRUE)) + { + log_message('error', 'PDO: Invalid or non-existent subdriver'); + + if ($this->db_debug) + { + show_error('Invalid or non-existent PDO subdriver'); + } + } + + $this->dsn = NULL; + } + + // -------------------------------------------------------------------- + + /** + * Database connection + * + * @param bool $persistent + * @return object + */ + public function db_connect($persistent = FALSE) + { + if ($persistent === TRUE) + { + $this->options[PDO::ATTR_PERSISTENT] = TRUE; + } + + // From PHP8.0, default PDO::ATTR_ERRMODE is changed + // from PDO::ERRMODE_SILENT to PDO::ERRMODE_EXCEPTION + // as https://wiki.php.net/rfc/pdo_default_errmode + if ( ! isset($this->options[PDO::ATTR_ERRMODE])) + { + $this->options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_SILENT; + } + + try + { + return new PDO($this->dsn, $this->username, $this->password, $this->options); + } + catch (PDOException $e) + { + if ($this->db_debug && empty($this->failover)) + { + $this->display_error($e->getMessage(), '', TRUE); + } + + return FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Database version number + * + * @return string + */ + public function version() + { + if (isset($this->data_cache['version'])) + { + return $this->data_cache['version']; + } + + // Not all subdrivers support the getAttribute() method + try + { + return $this->data_cache['version'] = $this->conn_id->getAttribute(PDO::ATTR_SERVER_VERSION); + } + catch (PDOException $e) + { + return parent::version(); + } + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * @param string $sql SQL query + * @return mixed + */ + protected function _execute($sql) + { + return $this->conn_id->query($sql); + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @return bool + */ + protected function _trans_begin() + { + return $this->conn_id->beginTransaction(); + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @return bool + */ + protected function _trans_commit() + { + return $this->conn_id->commit(); + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @return bool + */ + protected function _trans_rollback() + { + return $this->conn_id->rollBack(); + } + + // -------------------------------------------------------------------- + + /** + * Platform-dependent string escape + * + * @param string + * @return string + */ + protected function _escape_str($str) + { + // Escape the string + $str = $this->conn_id->quote($str); + + // If there are duplicated quotes, trim them away + return ($str[0] === "'") + ? substr($str, 1, -1) + : $str; + } + + // -------------------------------------------------------------------- + + /** + * Affected Rows + * + * @return int + */ + public function affected_rows() + { + return is_object($this->result_id) ? $this->result_id->rowCount() : 0; + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * @param string $name + * @return int + */ + public function insert_id($name = NULL) + { + return $this->conn_id->lastInsertId($name); + } + + // -------------------------------------------------------------------- + + /** + * Field data query + * + * Generates a platform-specific query so that the column data can be retrieved + * + * @param string $table + * @return string + */ + protected function _field_data($table) + { + return 'SELECT TOP 1 * FROM '.$this->protect_identifiers($table); + } + + // -------------------------------------------------------------------- + + /** + * Error + * + * Returns an array containing code and message of the last + * database error that has occurred. + * + * @return array + */ + public function error() + { + $error = array('code' => '00000', 'message' => ''); + $pdo_error = $this->conn_id->errorInfo(); + + if (empty($pdo_error[0])) + { + return $error; + } + + $error['code'] = isset($pdo_error[1]) ? $pdo_error[0].'/'.$pdo_error[1] : $pdo_error[0]; + if (isset($pdo_error[2])) + { + $error['message'] = $pdo_error[2]; + } + + return $error; + } + + // -------------------------------------------------------------------- + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * + * If the database does not support the TRUNCATE statement, + * then this method maps to 'DELETE FROM table' + * + * @param string $table + * @return string + */ + protected function _truncate($table) + { + return 'TRUNCATE TABLE '.$table; + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @return void + */ + protected function _close() + { + $this->result_id = FALSE; + $this->conn_id = FALSE; + } + +} diff --git a/system/database/drivers/pdo/pdo_forge.php b/system/database/drivers/pdo/pdo_forge.php new file mode 100644 index 0000000..b35ff67 --- /dev/null +++ b/system/database/drivers/pdo/pdo_forge.php @@ -0,0 +1,66 @@ +num_rows)) + { + return $this->num_rows; + } + elseif (count($this->result_array) > 0) + { + return $this->num_rows = count($this->result_array); + } + elseif (count($this->result_object) > 0) + { + return $this->num_rows = count($this->result_object); + } + elseif (($num_rows = $this->result_id->rowCount()) > 0) + { + return $this->num_rows = $num_rows; + } + + return $this->num_rows = count($this->result_array()); + } + + // -------------------------------------------------------------------- + + /** + * Number of fields in the result set + * + * @return int + */ + public function num_fields() + { + return $this->result_id->columnCount(); + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @return bool + */ + public function list_fields() + { + $field_names = array(); + for ($i = 0, $c = $this->num_fields(); $i < $c; $i++) + { + // Might trigger an E_WARNING due to not all subdrivers + // supporting getColumnMeta() + $field_names[$i] = @$this->result_id->getColumnMeta($i); + $field_names[$i] = $field_names[$i]['name']; + } + + return $field_names; + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @return array + */ + public function field_data() + { + try + { + $retval = array(); + + for ($i = 0, $c = $this->num_fields(); $i < $c; $i++) + { + $field = $this->result_id->getColumnMeta($i); + + $retval[$i] = new stdClass(); + $retval[$i]->name = $field['name']; + $retval[$i]->type = isset($field['native_type']) ? $field['native_type'] : null; + $retval[$i]->max_length = ($field['len'] > 0) ? $field['len'] : NULL; + $retval[$i]->primary_key = (int) ( ! empty($field['flags']) && in_array('primary_key', $field['flags'], TRUE)); + } + + return $retval; + } + catch (Exception $e) + { + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsupported_feature'); + } + + return FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * @return void + */ + public function free_result() + { + if (is_object($this->result_id)) + { + $this->result_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @return array + */ + protected function _fetch_assoc() + { + return $this->result_id->fetch(PDO::FETCH_ASSOC); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @param string $class_name + * @return object + */ + protected function _fetch_object($class_name = 'stdClass') + { + return $this->result_id->fetchObject($class_name); + } + +} diff --git a/system/database/drivers/pdo/pdo_utility.php b/system/database/drivers/pdo/pdo_utility.php new file mode 100644 index 0000000..2094ef4 --- /dev/null +++ b/system/database/drivers/pdo/pdo_utility.php @@ -0,0 +1,64 @@ +db->display_error('db_unsupported_feature'); + } + +} diff --git a/system/database/drivers/pdo/subdrivers/index.html b/system/database/drivers/pdo/subdrivers/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

    Directory access is forbidden.

    + + + diff --git a/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php b/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php new file mode 100644 index 0000000..8d5b2f6 --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php @@ -0,0 +1,201 @@ +dsn)) + { + $this->dsn = '4D:host='.(empty($this->hostname) ? '127.0.0.1' : $this->hostname); + + empty($this->port) OR $this->dsn .= ';port='.$this->port; + empty($this->database) OR $this->dsn .= ';dbname='.$this->database; + empty($this->char_set) OR $this->dsn .= ';charset='.$this->char_set; + } + elseif ( ! empty($this->char_set) && strpos($this->dsn, 'charset=', 3) === FALSE) + { + $this->dsn .= ';charset='.$this->char_set; + } + } + + // -------------------------------------------------------------------- + + /** + * Show table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool $prefix_limit + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = 'SELECT '.$this->escape_identifiers('TABLE_NAME').' FROM '.$this->escape_identifiers('_USER_TABLES'); + + if ($prefix_limit === TRUE && $this->dbprefix !== '') + { + $sql .= ' WHERE '.$this->escape_identifiers('TABLE_NAME')." LIKE '".$this->escape_like_str($this->dbprefix)."%' " + .sprintf($this->_like_escape_str, $this->_like_escape_chr); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @param string $table + * @return string + */ + protected function _list_columns($table = '') + { + return 'SELECT '.$this->escape_identifiers('COLUMN_NAME').' FROM '.$this->escape_identifiers('_USER_COLUMNS') + .' WHERE '.$this->escape_identifiers('TABLE_NAME').' = '.$this->escape($table); + } + + // -------------------------------------------------------------------- + + /** + * Field data query + * + * Generates a platform-specific query so that the column data can be retrieved + * + * @param string $table + * @return string + */ + protected function _field_data($table) + { + return 'SELECT * FROM '.$this->protect_identifiers($table, TRUE, NULL, FALSE).' LIMIT 1'; + } + + // -------------------------------------------------------------------- + + /** + * Update statement + * + * Generates a platform-specific update string from the supplied data + * + * @param string $table + * @param array $values + * @return string + */ + protected function _update($table, $values) + { + $this->qb_limit = FALSE; + $this->qb_orderby = array(); + return parent::_update($table, $values); + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @param string $table + * @return string + */ + protected function _delete($table) + { + $this->qb_limit = FALSE; + return parent::_delete($table); + } + + // -------------------------------------------------------------------- + + /** + * LIMIT + * + * Generates a platform-specific LIMIT clause + * + * @param string $sql SQL Query + * @return string + */ + protected function _limit($sql) + { + return $sql.' LIMIT '.$this->qb_limit.($this->qb_offset ? ' OFFSET '.$this->qb_offset : ''); + } + +} diff --git a/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php b/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php new file mode 100644 index 0000000..28fc008 --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php @@ -0,0 +1,218 @@ + 'INT', + 'SMALLINT' => 'INT', + 'INT' => 'INT64', + 'INT32' => 'INT64' + ); + + /** + * DEFAULT value representation in CREATE/ALTER TABLE statements + * + * @var string + */ + protected $_default = FALSE; + + // -------------------------------------------------------------------- + + /** + * ALTER TABLE + * + * @param string $alter_type ALTER type + * @param string $table Table name + * @param mixed $field Column definition + * @return string|string[] + */ + protected function _alter_table($alter_type, $table, $field) + { + if (in_array($alter_type, array('ADD', 'DROP'), TRUE)) + { + return parent::_alter_table($alter_type, $table, $field); + } + + // No method of modifying columns is supported + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Process column + * + * @param array $field + * @return string + */ + protected function _process_column($field) + { + return $this->db->escape_identifiers($field['name']) + .' '.$field['type'].$field['length'] + .$field['null'] + .$field['unique'] + .$field['auto_increment']; + } + + // -------------------------------------------------------------------- + + /** + * Field attribute TYPE + * + * Performs a data type mapping between different databases. + * + * @param array &$attributes + * @return void + */ + protected function _attr_type(&$attributes) + { + switch (strtoupper($attributes['TYPE'])) + { + case 'TINYINT': + $attributes['TYPE'] = 'SMALLINT'; + $attributes['UNSIGNED'] = FALSE; + return; + case 'MEDIUMINT': + $attributes['TYPE'] = 'INTEGER'; + $attributes['UNSIGNED'] = FALSE; + return; + case 'INTEGER': + $attributes['TYPE'] = 'INT'; + return; + case 'BIGINT': + $attributes['TYPE'] = 'INT64'; + return; + default: return; + } + } + + // -------------------------------------------------------------------- + + /** + * Field attribute UNIQUE + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_unique(&$attributes, &$field) + { + if ( ! empty($attributes['UNIQUE']) && $attributes['UNIQUE'] === TRUE) + { + $field['unique'] = ' UNIQUE'; + + // UNIQUE must be used with NOT NULL + $field['null'] = ' NOT NULL'; + } + } + + // -------------------------------------------------------------------- + + /** + * Field attribute AUTO_INCREMENT + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_auto_increment(&$attributes, &$field) + { + if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE) + { + if (stripos($field['type'], 'int') !== FALSE) + { + $field['auto_increment'] = ' AUTO_INCREMENT'; + } + elseif (strcasecmp($field['type'], 'UUID') === 0) + { + $field['auto_increment'] = ' AUTO_GENERATE'; + } + } + } + +} diff --git a/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php b/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php new file mode 100644 index 0000000..c8f9258 --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php @@ -0,0 +1,210 @@ +dsn)) + { + $this->dsn = 'cubrid:host='.(empty($this->hostname) ? '127.0.0.1' : $this->hostname); + + empty($this->port) OR $this->dsn .= ';port='.$this->port; + empty($this->database) OR $this->dsn .= ';dbname='.$this->database; + empty($this->char_set) OR $this->dsn .= ';charset='.$this->char_set; + } + } + + // -------------------------------------------------------------------- + + /** + * Show table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool $prefix_limit + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = 'SHOW TABLES'; + + if ($prefix_limit === TRUE && $this->dbprefix !== '') + { + return $sql." LIKE '".$this->escape_like_str($this->dbprefix)."%'"; + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @param string $table + * @return string + */ + protected function _list_columns($table = '') + { + return 'SHOW COLUMNS FROM '.$this->protect_identifiers($table, TRUE, NULL, FALSE); + } + + // -------------------------------------------------------------------- + + /** + * Returns an object with field data + * + * @param string $table + * @return array + */ + public function field_data($table) + { + if (($query = $this->query('SHOW COLUMNS FROM '.$this->protect_identifiers($table, TRUE, NULL, FALSE))) === FALSE) + { + return FALSE; + } + $query = $query->result_object(); + + $retval = array(); + for ($i = 0, $c = count($query); $i < $c; $i++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = $query[$i]->Field; + + sscanf($query[$i]->Type, '%[a-z](%d)', + $retval[$i]->type, + $retval[$i]->max_length + ); + + $retval[$i]->default = $query[$i]->Default; + $retval[$i]->primary_key = (int) ($query[$i]->Key === 'PRI'); + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * + * If the database does not support the TRUNCATE statement, + * then this method maps to 'DELETE FROM table' + * + * @param string $table + * @return string + */ + protected function _truncate($table) + { + return 'TRUNCATE '.$table; + } + + // -------------------------------------------------------------------- + + /** + * FROM tables + * + * Groups tables in FROM clauses if needed, so there is no confusion + * about operator precedence. + * + * @return string + */ + protected function _from_tables() + { + if ( ! empty($this->qb_join) && count($this->qb_from) > 1) + { + return '('.implode(', ', $this->qb_from).')'; + } + + return implode(', ', $this->qb_from); + } + +} diff --git a/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php b/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php new file mode 100644 index 0000000..de02983 --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php @@ -0,0 +1,231 @@ + 'INTEGER', + 'SMALLINT' => 'INTEGER', + 'INT' => 'BIGINT', + 'INTEGER' => 'BIGINT', + 'BIGINT' => 'NUMERIC', + 'FLOAT' => 'DOUBLE', + 'REAL' => 'DOUBLE' + ); + + // -------------------------------------------------------------------- + + /** + * ALTER TABLE + * + * @param string $alter_type ALTER type + * @param string $table Table name + * @param mixed $field Column definition + * @return string|string[] + */ + protected function _alter_table($alter_type, $table, $field) + { + if (in_array($alter_type, array('DROP', 'ADD'), TRUE)) + { + return parent::_alter_table($alter_type, $table, $field); + } + + $sql = 'ALTER TABLE '.$this->db->escape_identifiers($table); + $sqls = array(); + for ($i = 0, $c = count($field); $i < $c; $i++) + { + if ($field[$i]['_literal'] !== FALSE) + { + $sqls[] = $sql.' CHANGE '.$field[$i]['_literal']; + } + else + { + $alter_type = empty($field[$i]['new_name']) ? ' MODIFY ' : ' CHANGE '; + $sqls[] = $sql.$alter_type.$this->_process_column($field[$i]); + } + } + + return $sqls; + } + + // -------------------------------------------------------------------- + + /** + * Process column + * + * @param array $field + * @return string + */ + protected function _process_column($field) + { + $extra_clause = isset($field['after']) + ? ' AFTER '.$this->db->escape_identifiers($field['after']) : ''; + + if (empty($extra_clause) && isset($field['first']) && $field['first'] === TRUE) + { + $extra_clause = ' FIRST'; + } + + return $this->db->escape_identifiers($field['name']) + .(empty($field['new_name']) ? '' : ' '.$this->db->escape_identifiers($field['new_name'])) + .' '.$field['type'].$field['length'] + .$field['unsigned'] + .$field['null'] + .$field['default'] + .$field['auto_increment'] + .$field['unique'] + .$extra_clause; + } + + // -------------------------------------------------------------------- + + /** + * Field attribute TYPE + * + * Performs a data type mapping between different databases. + * + * @param array &$attributes + * @return void + */ + protected function _attr_type(&$attributes) + { + switch (strtoupper($attributes['TYPE'])) + { + case 'TINYINT': + $attributes['TYPE'] = 'SMALLINT'; + $attributes['UNSIGNED'] = FALSE; + return; + case 'MEDIUMINT': + $attributes['TYPE'] = 'INTEGER'; + $attributes['UNSIGNED'] = FALSE; + return; + case 'LONGTEXT': + $attributes['TYPE'] = 'STRING'; + return; + default: return; + } + } + + // -------------------------------------------------------------------- + + /** + * Process indexes + * + * @param string $table (ignored) + * @return string + */ + protected function _process_indexes($table) + { + $sql = ''; + + for ($i = 0, $c = count($this->keys); $i < $c; $i++) + { + if (is_array($this->keys[$i])) + { + for ($i2 = 0, $c2 = count($this->keys[$i]); $i2 < $c2; $i2++) + { + if ( ! isset($this->fields[$this->keys[$i][$i2]])) + { + unset($this->keys[$i][$i2]); + continue; + } + } + } + elseif ( ! isset($this->fields[$this->keys[$i]])) + { + unset($this->keys[$i]); + continue; + } + + is_array($this->keys[$i]) OR $this->keys[$i] = array($this->keys[$i]); + + $sql .= ",\n\tKEY ".$this->db->escape_identifiers(implode('_', $this->keys[$i])) + .' ('.implode(', ', $this->db->escape_identifiers($this->keys[$i])).')'; + } + + $this->keys = array(); + + return $sql; + } + +} diff --git a/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php b/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php new file mode 100644 index 0000000..7d8d4a2 --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php @@ -0,0 +1,354 @@ +dsn)) + { + $this->dsn = $params['subdriver'].':host='.(empty($this->hostname) ? '127.0.0.1' : $this->hostname); + + if ( ! empty($this->port)) + { + $this->dsn .= (DIRECTORY_SEPARATOR === '\\' ? ',' : ':').$this->port; + } + + empty($this->database) OR $this->dsn .= ';dbname='.$this->database; + empty($this->char_set) OR $this->dsn .= ';charset='.$this->char_set; + empty($this->appname) OR $this->dsn .= ';appname='.$this->appname; + } + else + { + if ( ! empty($this->char_set) && strpos($this->dsn, 'charset=', 6) === FALSE) + { + $this->dsn .= ';charset='.$this->char_set; + } + + $this->subdriver = 'dblib'; + } + } + + // -------------------------------------------------------------------- + + /** + * Database connection + * + * @param bool $persistent + * @return object + */ + public function db_connect($persistent = FALSE) + { + if ($persistent === TRUE) + { + log_message('debug', "dblib driver doesn't support persistent connections"); + } + + $this->conn_id = parent::db_connect(FALSE); + + if ( ! is_object($this->conn_id)) + { + return $this->conn_id; + } + + // Determine how identifiers are escaped + $query = $this->query('SELECT CASE WHEN (@@OPTIONS | 256) = @@OPTIONS THEN 1 ELSE 0 END AS qi'); + $query = $query->row_array(); + $this->_quoted_identifier = empty($query) ? FALSE : (bool) $query['qi']; + $this->_escape_char = ($this->_quoted_identifier) ? '"' : array('[', ']'); + + return $this->conn_id; + } + + // -------------------------------------------------------------------- + + /** + * Show table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool $prefix_limit + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = 'SELECT '.$this->escape_identifiers('name') + .' FROM '.$this->escape_identifiers('sysobjects') + .' WHERE '.$this->escape_identifiers('type')." = 'U'"; + + if ($prefix_limit === TRUE && $this->dbprefix !== '') + { + $sql .= ' AND '.$this->escape_identifiers('name')." LIKE '".$this->escape_like_str($this->dbprefix)."%' " + .sprintf($this->_like_escape_str, $this->_like_escape_chr); + } + + return $sql.' ORDER BY '.$this->escape_identifiers('name'); + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @param string $table + * @return string + */ + protected function _list_columns($table = '') + { + return 'SELECT COLUMN_NAME + FROM INFORMATION_SCHEMA.Columns + WHERE UPPER(TABLE_NAME) = '.$this->escape(strtoupper($table)); + } + + // -------------------------------------------------------------------- + + /** + * Returns an object with field data + * + * @param string $table + * @return array + */ + public function field_data($table) + { + $sql = 'SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, NUMERIC_PRECISION, COLUMN_DEFAULT + FROM INFORMATION_SCHEMA.Columns + WHERE UPPER(TABLE_NAME) = '.$this->escape(strtoupper($table)); + + if (($query = $this->query($sql)) === FALSE) + { + return FALSE; + } + $query = $query->result_object(); + + $retval = array(); + for ($i = 0, $c = count($query); $i < $c; $i++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = $query[$i]->COLUMN_NAME; + $retval[$i]->type = $query[$i]->DATA_TYPE; + $retval[$i]->max_length = ($query[$i]->CHARACTER_MAXIMUM_LENGTH > 0) ? $query[$i]->CHARACTER_MAXIMUM_LENGTH : $query[$i]->NUMERIC_PRECISION; + $retval[$i]->default = $query[$i]->COLUMN_DEFAULT; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Update statement + * + * Generates a platform-specific update string from the supplied data + * + * @param string $table + * @param array $values + * @return string + */ + protected function _update($table, $values) + { + $this->qb_limit = FALSE; + $this->qb_orderby = array(); + return parent::_update($table, $values); + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @param string $table + * @return string + */ + protected function _delete($table) + { + if ($this->qb_limit) + { + return 'WITH ci_delete AS (SELECT TOP '.$this->qb_limit.' * FROM '.$table.$this->_compile_wh('qb_where').') DELETE FROM ci_delete'; + } + + return parent::_delete($table); + } + + // -------------------------------------------------------------------- + + /** + * LIMIT + * + * Generates a platform-specific LIMIT clause + * + * @param string $sql SQL Query + * @return string + */ + protected function _limit($sql) + { + $limit = $this->qb_offset + $this->qb_limit; + + // As of SQL Server 2005 (9.0.*) ROW_NUMBER() is supported, + // however an ORDER BY clause is required for it to work + if (version_compare($this->version(), '9', '>=') && $this->qb_offset && ! empty($this->qb_orderby)) + { + $orderby = $this->_compile_order_by(); + + // We have to strip the ORDER BY clause + $sql = trim(substr($sql, 0, strrpos($sql, $orderby))); + + // Get the fields to select from our subquery, so that we can avoid CI_rownum appearing in the actual results + if (count($this->qb_select) === 0 OR strpos(implode(',', $this->qb_select), '*') !== FALSE) + { + $select = '*'; // Inevitable + } + else + { + // Use only field names and their aliases, everything else is out of our scope. + $select = array(); + $field_regexp = ($this->_quoted_identifier) + ? '("[^\"]+")' : '(\[[^\]]+\])'; + for ($i = 0, $c = count($this->qb_select); $i < $c; $i++) + { + $select[] = preg_match('/(?:\s|\.)'.$field_regexp.'$/i', $this->qb_select[$i], $m) + ? $m[1] : $this->qb_select[$i]; + } + $select = implode(', ', $select); + } + + return 'SELECT '.$select." FROM (\n\n" + .preg_replace('/^(SELECT( DISTINCT)?)/i', '\\1 ROW_NUMBER() OVER('.trim($orderby).') AS '.$this->escape_identifiers('CI_rownum').', ', $sql) + ."\n\n) ".$this->escape_identifiers('CI_subquery') + ."\nWHERE ".$this->escape_identifiers('CI_rownum').' BETWEEN '.($this->qb_offset + 1).' AND '.$limit; + } + + return preg_replace('/(^\SELECT (DISTINCT)?)/i','\\1 TOP '.$limit.' ', $sql); + } + + // -------------------------------------------------------------------- + + /** + * Insert batch statement + * + * Generates a platform-specific insert string from the supplied data. + * + * @param string $table Table name + * @param array $keys INSERT keys + * @param array $values INSERT values + * @return string|bool + */ + protected function _insert_batch($table, $keys, $values) + { + // Multiple-value inserts are only supported as of SQL Server 2008 + if (version_compare($this->version(), '10', '>=')) + { + return parent::_insert_batch($table, $keys, $values); + } + + return ($this->db_debug) ? $this->display_error('db_unsupported_feature') : FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Database version number + * + * @return string + */ + public function version() + { + if (isset($this->data_cache['version'])) + { + return $this->data_cache['version']; + } + + return $this->data_cache['version'] = $this->conn_id->query("SELECT SERVERPROPERTY('ProductVersion') AS ver")->fetchColumn(0); + } +} diff --git a/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php b/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php new file mode 100644 index 0000000..3ee352f --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php @@ -0,0 +1,150 @@ + 'SMALLINT', + 'SMALLINT' => 'INT', + 'INT' => 'BIGINT', + 'REAL' => 'FLOAT' + ); + + // -------------------------------------------------------------------- + + /** + * ALTER TABLE + * + * @param string $alter_type ALTER type + * @param string $table Table name + * @param mixed $field Column definition + * @return string|string[] + */ + protected function _alter_table($alter_type, $table, $field) + { + if (in_array($alter_type, array('ADD', 'DROP'), TRUE)) + { + return parent::_alter_table($alter_type, $table, $field); + } + + $sql = 'ALTER TABLE '.$this->db->escape_identifiers($table).' ALTER COLUMN '; + $sqls = array(); + for ($i = 0, $c = count($field); $i < $c; $i++) + { + $sqls[] = $sql.$this->_process_column($field[$i]); + } + + return $sqls; + } + + // -------------------------------------------------------------------- + + /** + * Field attribute TYPE + * + * Performs a data type mapping between different databases. + * + * @param array &$attributes + * @return void + */ + protected function _attr_type(&$attributes) + { + if (isset($attributes['CONSTRAINT']) && strpos($attributes['TYPE'], 'INT') !== FALSE) + { + unset($attributes['CONSTRAINT']); + } + + switch (strtoupper($attributes['TYPE'])) + { + case 'MEDIUMINT': + $attributes['TYPE'] = 'INTEGER'; + $attributes['UNSIGNED'] = FALSE; + return; + case 'INTEGER': + $attributes['TYPE'] = 'INT'; + return; + default: return; + } + } + + // -------------------------------------------------------------------- + + /** + * Field attribute AUTO_INCREMENT + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_auto_increment(&$attributes, &$field) + { + if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE && stripos($field['type'], 'int') !== FALSE) + { + $field['auto_increment'] = ' IDENTITY(1,1)'; + } + } + +} diff --git a/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php b/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php new file mode 100644 index 0000000..9778250 --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php @@ -0,0 +1,280 @@ +dsn)) + { + $this->dsn = 'firebird:'; + + if ( ! empty($this->database)) + { + $this->dsn .= 'dbname='.$this->database; + } + elseif ( ! empty($this->hostname)) + { + $this->dsn .= 'dbname='.$this->hostname; + } + + empty($this->char_set) OR $this->dsn .= ';charset='.$this->char_set; + empty($this->role) OR $this->dsn .= ';role='.$this->role; + } + elseif ( ! empty($this->char_set) && strpos($this->dsn, 'charset=', 9) === FALSE) + { + $this->dsn .= ';charset='.$this->char_set; + } + } + + // -------------------------------------------------------------------- + + /** + * Show table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool $prefix_limit + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = 'SELECT "RDB$RELATION_NAME" FROM "RDB$RELATIONS" WHERE "RDB$RELATION_NAME" NOT LIKE \'RDB$%\' AND "RDB$RELATION_NAME" NOT LIKE \'MON$%\''; + + if ($prefix_limit === TRUE && $this->dbprefix !== '') + { + return $sql.' AND "RDB$RELATION_NAME" LIKE \''.$this->escape_like_str($this->dbprefix)."%' " + .sprintf($this->_like_escape_str, $this->_like_escape_chr); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @param string $table + * @return string + */ + protected function _list_columns($table = '') + { + return 'SELECT "RDB$FIELD_NAME" FROM "RDB$RELATION_FIELDS" WHERE "RDB$RELATION_NAME" = '.$this->escape($table); + } + + // -------------------------------------------------------------------- + + /** + * Returns an object with field data + * + * @param string $table + * @return array + */ + public function field_data($table) + { + $sql = 'SELECT "rfields"."RDB$FIELD_NAME" AS "name", + CASE "fields"."RDB$FIELD_TYPE" + WHEN 7 THEN \'SMALLINT\' + WHEN 8 THEN \'INTEGER\' + WHEN 9 THEN \'QUAD\' + WHEN 10 THEN \'FLOAT\' + WHEN 11 THEN \'DFLOAT\' + WHEN 12 THEN \'DATE\' + WHEN 13 THEN \'TIME\' + WHEN 14 THEN \'CHAR\' + WHEN 16 THEN \'INT64\' + WHEN 27 THEN \'DOUBLE\' + WHEN 35 THEN \'TIMESTAMP\' + WHEN 37 THEN \'VARCHAR\' + WHEN 40 THEN \'CSTRING\' + WHEN 261 THEN \'BLOB\' + ELSE NULL + END AS "type", + "fields"."RDB$FIELD_LENGTH" AS "max_length", + "rfields"."RDB$DEFAULT_VALUE" AS "default" + FROM "RDB$RELATION_FIELDS" "rfields" + JOIN "RDB$FIELDS" "fields" ON "rfields"."RDB$FIELD_SOURCE" = "fields"."RDB$FIELD_NAME" + WHERE "rfields"."RDB$RELATION_NAME" = '.$this->escape($table).' + ORDER BY "rfields"."RDB$FIELD_POSITION"'; + + return (($query = $this->query($sql)) !== FALSE) + ? $query->result_object() + : FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Update statement + * + * Generates a platform-specific update string from the supplied data + * + * @param string $table + * @param array $values + * @return string + */ + protected function _update($table, $values) + { + $this->qb_limit = FALSE; + return parent::_update($table, $values); + } + + // -------------------------------------------------------------------- + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * + * If the database does not support the TRUNCATE statement, + * then this method maps to 'DELETE FROM table' + * + * @param string $table + * @return string + */ + protected function _truncate($table) + { + return 'DELETE FROM '.$table; + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @param string $table + * @return string + */ + protected function _delete($table) + { + $this->qb_limit = FALSE; + return parent::_delete($table); + } + + // -------------------------------------------------------------------- + + /** + * LIMIT + * + * Generates a platform-specific LIMIT clause + * + * @param string $sql SQL Query + * @return string + */ + protected function _limit($sql) + { + // Limit clause depends on if Interbase or Firebird + if (stripos($this->version(), 'firebird') !== FALSE) + { + $select = 'FIRST '.$this->qb_limit + .($this->qb_offset > 0 ? ' SKIP '.$this->qb_offset : ''); + } + else + { + $select = 'ROWS ' + .($this->qb_offset > 0 ? $this->qb_offset.' TO '.($this->qb_limit + $this->qb_offset) : $this->qb_limit); + } + + return preg_replace('`SELECT`i', 'SELECT '.$select, $sql); + } + + // -------------------------------------------------------------------- + + /** + * Insert batch statement + * + * Generates a platform-specific insert string from the supplied data. + * + * @param string $table Table name + * @param array $keys INSERT keys + * @param array $values INSERT values + * @return string|bool + */ + protected function _insert_batch($table, $keys, $values) + { + return ($this->db_debug) ? $this->display_error('db_unsupported_feature') : FALSE; + } +} diff --git a/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php b/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php new file mode 100644 index 0000000..26e052a --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php @@ -0,0 +1,238 @@ + 'INTEGER', + 'INTEGER' => 'INT64', + 'FLOAT' => 'DOUBLE PRECISION' + ); + + /** + * NULL value representation in CREATE/ALTER TABLE statements + * + * @var string + */ + protected $_null = 'NULL'; + + // -------------------------------------------------------------------- + + /** + * Create database + * + * @param string $db_name + * @return string + */ + public function create_database($db_name) + { + // Firebird databases are flat files, so a path is required + + // Hostname is needed for remote access + empty($this->db->hostname) OR $db_name = $this->hostname.':'.$db_name; + + return parent::create_database('"'.$db_name.'"'); + } + + // -------------------------------------------------------------------- + + /** + * Drop database + * + * @param string $db_name (ignored) + * @return bool + */ + public function drop_database($db_name) + { + if ( ! ibase_drop_db($this->conn_id)) + { + return ($this->db->db_debug) ? $this->db->display_error('db_unable_to_drop') : FALSE; + } + elseif ( ! empty($this->db->data_cache['db_names'])) + { + $key = array_search(strtolower($this->db->database), array_map('strtolower', $this->db->data_cache['db_names']), TRUE); + if ($key !== FALSE) + { + unset($this->db->data_cache['db_names'][$key]); + } + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * ALTER TABLE + * + * @param string $alter_type ALTER type + * @param string $table Table name + * @param mixed $field Column definition + * @return string|string[] + */ + protected function _alter_table($alter_type, $table, $field) + { + if (in_array($alter_type, array('DROP', 'ADD'), TRUE)) + { + return parent::_alter_table($alter_type, $table, $field); + } + + $sql = 'ALTER TABLE '.$this->db->escape_identifiers($table); + $sqls = array(); + for ($i = 0, $c = count($field); $i < $c; $i++) + { + if ($field[$i]['_literal'] !== FALSE) + { + return FALSE; + } + + if (isset($field[$i]['type'])) + { + $sqls[] = $sql.' ALTER COLUMN '.$this->db->escape_identifiers($field[$i]['name']) + .' TYPE '.$field[$i]['type'].$field[$i]['length']; + } + + if ( ! empty($field[$i]['default'])) + { + $sqls[] = $sql.' ALTER COLUMN '.$this->db->escape_identifiers($field[$i]['name']) + .' SET '.$field[$i]['default']; + } + + if (isset($field[$i]['null'])) + { + $sqls[] = 'UPDATE "RDB$RELATION_FIELDS" SET "RDB$NULL_FLAG" = ' + .($field[$i]['null'] === TRUE ? 'NULL' : '1') + .' WHERE "RDB$FIELD_NAME" = '.$this->db->escape($field[$i]['name']) + .' AND "RDB$RELATION_NAME" = '.$this->db->escape($table); + } + + if ( ! empty($field[$i]['new_name'])) + { + $sqls[] = $sql.' ALTER COLUMN '.$this->db->escape_identifiers($field[$i]['name']) + .' TO '.$this->db->escape_identifiers($field[$i]['new_name']); + } + } + + return $sqls; + } + + // -------------------------------------------------------------------- + + /** + * Process column + * + * @param array $field + * @return string + */ + protected function _process_column($field) + { + return $this->db->escape_identifiers($field['name']) + .' '.$field['type'].$field['length'] + .$field['null'] + .$field['unique'] + .$field['default']; + } + + // -------------------------------------------------------------------- + + /** + * Field attribute TYPE + * + * Performs a data type mapping between different databases. + * + * @param array &$attributes + * @return void + */ + protected function _attr_type(&$attributes) + { + switch (strtoupper($attributes['TYPE'])) + { + case 'TINYINT': + $attributes['TYPE'] = 'SMALLINT'; + $attributes['UNSIGNED'] = FALSE; + return; + case 'MEDIUMINT': + $attributes['TYPE'] = 'INTEGER'; + $attributes['UNSIGNED'] = FALSE; + return; + case 'INT': + $attributes['TYPE'] = 'INTEGER'; + return; + case 'BIGINT': + $attributes['TYPE'] = 'INT64'; + return; + default: return; + } + } + + // -------------------------------------------------------------------- + + /** + * Field attribute AUTO_INCREMENT + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_auto_increment(&$attributes, &$field) + { + // Not supported + } + +} diff --git a/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php b/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php new file mode 100644 index 0000000..aca58ec --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php @@ -0,0 +1,245 @@ +dsn)) + { + $this->dsn = 'ibm:'; + + // Pre-defined DSN + if (empty($this->hostname) && empty($this->HOSTNAME) && empty($this->port) && empty($this->PORT)) + { + if (isset($this->DSN)) + { + $this->dsn .= 'DSN='.$this->DSN; + } + elseif ( ! empty($this->database)) + { + $this->dsn .= 'DSN='.$this->database; + } + + return; + } + + $this->dsn .= 'DRIVER='.(isset($this->DRIVER) ? '{'.$this->DRIVER.'}' : '{IBM DB2 ODBC DRIVER}').';'; + + if (isset($this->DATABASE)) + { + $this->dsn .= 'DATABASE='.$this->DATABASE.';'; + } + elseif ( ! empty($this->database)) + { + $this->dsn .= 'DATABASE='.$this->database.';'; + } + + if (isset($this->HOSTNAME)) + { + $this->dsn .= 'HOSTNAME='.$this->HOSTNAME.';'; + } + else + { + $this->dsn .= 'HOSTNAME='.(empty($this->hostname) ? '127.0.0.1;' : $this->hostname.';'); + } + + if (isset($this->PORT)) + { + $this->dsn .= 'PORT='.$this->port.';'; + } + elseif ( ! empty($this->port)) + { + $this->dsn .= ';PORT='.$this->port.';'; + } + + $this->dsn .= 'PROTOCOL='.(isset($this->PROTOCOL) ? $this->PROTOCOL.';' : 'TCPIP;'); + } + } + + // -------------------------------------------------------------------- + + /** + * Show table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool $prefix_limit + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = 'SELECT "tabname" FROM "syscat"."tables" + WHERE "type" = \'T\' AND LOWER("tabschema") = '.$this->escape(strtolower($this->database)); + + if ($prefix_limit === TRUE && $this->dbprefix !== '') + { + $sql .= ' AND "tabname" LIKE \''.$this->escape_like_str($this->dbprefix)."%' " + .sprintf($this->_like_escape_str, $this->_like_escape_chr); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @param string $table + * @return array + */ + protected function _list_columns($table = '') + { + return 'SELECT "colname" FROM "syscat"."columns" + WHERE LOWER("tabschema") = '.$this->escape(strtolower($this->database)).' + AND LOWER("tabname") = '.$this->escape(strtolower($table)); + } + + // -------------------------------------------------------------------- + + /** + * Returns an object with field data + * + * @param string $table + * @return array + */ + public function field_data($table) + { + $sql = 'SELECT "colname" AS "name", "typename" AS "type", "default" AS "default", "length" AS "max_length", + CASE "keyseq" WHEN NULL THEN 0 ELSE 1 END AS "primary_key" + FROM "syscat"."columns" + WHERE LOWER("tabschema") = '.$this->escape(strtolower($this->database)).' + AND LOWER("tabname") = '.$this->escape(strtolower($table)).' + ORDER BY "colno"'; + + return (($query = $this->query($sql)) !== FALSE) + ? $query->result_object() + : FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Update statement + * + * Generates a platform-specific update string from the supplied data + * + * @param string $table + * @param array $values + * @return string + */ + protected function _update($table, $values) + { + $this->qb_limit = FALSE; + $this->qb_orderby = array(); + return parent::_update($table, $values); + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @param string $table + * @return string + */ + protected function _delete($table) + { + $this->qb_limit = FALSE; + return parent::_delete($table); + } + + // -------------------------------------------------------------------- + + /** + * LIMIT + * + * Generates a platform-specific LIMIT clause + * + * @param string $sql SQL Query + * @return string + */ + protected function _limit($sql) + { + $sql .= ' FETCH FIRST '.($this->qb_limit + $this->qb_offset).' ROWS ONLY'; + + return ($this->qb_offset) + ? 'SELECT * FROM ('.$sql.') WHERE rownum > '.$this->qb_offset + : $sql; + } + +} diff --git a/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php b/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php new file mode 100644 index 0000000..cf023d4 --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php @@ -0,0 +1,155 @@ + 'INTEGER', + 'INT' => 'BIGINT', + 'INTEGER' => 'BIGINT' + ); + + /** + * DEFAULT value representation in CREATE/ALTER TABLE statements + * + * @var string + */ + protected $_default = FALSE; + + // -------------------------------------------------------------------- + + /** + * ALTER TABLE + * + * @param string $alter_type ALTER type + * @param string $table Table name + * @param mixed $field Column definition + * @return string|string[] + */ + protected function _alter_table($alter_type, $table, $field) + { + if ($alter_type === 'CHANGE') + { + $alter_type = 'MODIFY'; + } + + return parent::_alter_table($alter_type, $table, $field); + } + + // -------------------------------------------------------------------- + + /** + * Field attribute TYPE + * + * Performs a data type mapping between different databases. + * + * @param array &$attributes + * @return void + */ + protected function _attr_type(&$attributes) + { + switch (strtoupper($attributes['TYPE'])) + { + case 'TINYINT': + $attributes['TYPE'] = 'SMALLINT'; + $attributes['UNSIGNED'] = FALSE; + return; + case 'MEDIUMINT': + $attributes['TYPE'] = 'INTEGER'; + $attributes['UNSIGNED'] = FALSE; + return; + default: return; + } + } + + // -------------------------------------------------------------------- + + /** + * Field attribute UNIQUE + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_unique(&$attributes, &$field) + { + if ( ! empty($attributes['UNIQUE']) && $attributes['UNIQUE'] === TRUE) + { + $field['unique'] = ' UNIQUE'; + + // UNIQUE must be used with NOT NULL + $field['null'] = ' NOT NULL'; + } + } + + // -------------------------------------------------------------------- + + /** + * Field attribute AUTO_INCREMENT + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_auto_increment(&$attributes, &$field) + { + // Not supported + } + +} diff --git a/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php b/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php new file mode 100644 index 0000000..4d230c3 --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php @@ -0,0 +1,310 @@ +dsn)) + { + $this->dsn = 'informix:'; + + // Pre-defined DSN + if (empty($this->hostname) && empty($this->host) && empty($this->port) && empty($this->service)) + { + if (isset($this->DSN)) + { + $this->dsn .= 'DSN='.$this->DSN; + } + elseif ( ! empty($this->database)) + { + $this->dsn .= 'DSN='.$this->database; + } + + return; + } + + if (isset($this->host)) + { + $this->dsn .= 'host='.$this->host; + } + else + { + $this->dsn .= 'host='.(empty($this->hostname) ? '127.0.0.1' : $this->hostname); + } + + if (isset($this->service)) + { + $this->dsn .= '; service='.$this->service; + } + elseif ( ! empty($this->port)) + { + $this->dsn .= '; service='.$this->port; + } + + empty($this->database) OR $this->dsn .= '; database='.$this->database; + empty($this->server) OR $this->dsn .= '; server='.$this->server; + + $this->dsn .= '; protocol='.(isset($this->protocol) ? $this->protocol : 'onsoctcp') + .'; EnableScrollableCursors=1'; + } + } + + // -------------------------------------------------------------------- + + /** + * Show table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool $prefix_limit + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = 'SELECT "tabname" FROM "systables" + WHERE "tabid" > 99 AND "tabtype" = \'T\' AND LOWER("owner") = '.$this->escape(strtolower($this->username)); + + if ($prefix_limit === TRUE && $this->dbprefix !== '') + { + $sql .= ' AND "tabname" LIKE \''.$this->escape_like_str($this->dbprefix)."%' " + .sprintf($this->_like_escape_str, $this->_like_escape_chr); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @param string $table + * @return string + */ + protected function _list_columns($table = '') + { + if (strpos($table, '.') !== FALSE) + { + sscanf($table, '%[^.].%s', $owner, $table); + } + else + { + $owner = $this->username; + } + + return 'SELECT "colname" FROM "systables", "syscolumns" + WHERE "systables"."tabid" = "syscolumns"."tabid" + AND "systables"."tabtype" = \'T\' + AND LOWER("systables"."owner") = '.$this->escape(strtolower($owner)).' + AND LOWER("systables"."tabname") = '.$this->escape(strtolower($table)); + } + + // -------------------------------------------------------------------- + + /** + * Returns an object with field data + * + * @param string $table + * @return array + */ + public function field_data($table) + { + $sql = 'SELECT "syscolumns"."colname" AS "name", + CASE "syscolumns"."coltype" + WHEN 0 THEN \'CHAR\' + WHEN 1 THEN \'SMALLINT\' + WHEN 2 THEN \'INTEGER\' + WHEN 3 THEN \'FLOAT\' + WHEN 4 THEN \'SMALLFLOAT\' + WHEN 5 THEN \'DECIMAL\' + WHEN 6 THEN \'SERIAL\' + WHEN 7 THEN \'DATE\' + WHEN 8 THEN \'MONEY\' + WHEN 9 THEN \'NULL\' + WHEN 10 THEN \'DATETIME\' + WHEN 11 THEN \'BYTE\' + WHEN 12 THEN \'TEXT\' + WHEN 13 THEN \'VARCHAR\' + WHEN 14 THEN \'INTERVAL\' + WHEN 15 THEN \'NCHAR\' + WHEN 16 THEN \'NVARCHAR\' + WHEN 17 THEN \'INT8\' + WHEN 18 THEN \'SERIAL8\' + WHEN 19 THEN \'SET\' + WHEN 20 THEN \'MULTISET\' + WHEN 21 THEN \'LIST\' + WHEN 22 THEN \'Unnamed ROW\' + WHEN 40 THEN \'LVARCHAR\' + WHEN 41 THEN \'BLOB/CLOB/BOOLEAN\' + WHEN 4118 THEN \'Named ROW\' + ELSE "syscolumns"."coltype" + END AS "type", + "syscolumns"."collength" as "max_length", + CASE "sysdefaults"."type" + WHEN \'L\' THEN "sysdefaults"."default" + ELSE NULL + END AS "default" + FROM "syscolumns", "systables", "sysdefaults" + WHERE "syscolumns"."tabid" = "systables"."tabid" + AND "systables"."tabid" = "sysdefaults"."tabid" + AND "syscolumns"."colno" = "sysdefaults"."colno" + AND "systables"."tabtype" = \'T\' + AND LOWER("systables"."owner") = '.$this->escape(strtolower($this->username)).' + AND LOWER("systables"."tabname") = '.$this->escape(strtolower($table)).' + ORDER BY "syscolumns"."colno"'; + + return (($query = $this->query($sql)) !== FALSE) + ? $query->result_object() + : FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Update statement + * + * Generates a platform-specific update string from the supplied data + * + * @param string $table + * @param array $values + * @return string + */ + protected function _update($table, $values) + { + $this->qb_limit = FALSE; + $this->qb_orderby = array(); + return parent::_update($table, $values); + } + + // -------------------------------------------------------------------- + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * + * If the database does not support the TRUNCATE statement, + * then this method maps to 'DELETE FROM table' + * + * @param string $table + * @return string + */ + protected function _truncate($table) + { + return 'TRUNCATE TABLE ONLY '.$table; + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @param string $table + * @return string + */ + protected function _delete($table) + { + $this->qb_limit = FALSE; + return parent::_delete($table); + } + + // -------------------------------------------------------------------- + + /** + * LIMIT + * + * Generates a platform-specific LIMIT clause + * + * @param string $sql $SQL Query + * @return string + */ + protected function _limit($sql) + { + $select = 'SELECT '.($this->qb_offset ? 'SKIP '.$this->qb_offset : '').'FIRST '.$this->qb_limit.' '; + return preg_replace('/^(SELECT\s)/i', $select, $sql, 1); + } + +} diff --git a/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php b/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php new file mode 100644 index 0000000..368d8dc --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php @@ -0,0 +1,164 @@ + 'INTEGER', + 'INT' => 'BIGINT', + 'INTEGER' => 'BIGINT', + 'REAL' => 'DOUBLE PRECISION', + 'SMALLFLOAT' => 'DOUBLE PRECISION' + ); + + /** + * DEFAULT value representation in CREATE/ALTER TABLE statements + * + * @var string + */ + protected $_default = ', '; + + // -------------------------------------------------------------------- + + /** + * ALTER TABLE + * + * @param string $alter_type ALTER type + * @param string $table Table name + * @param mixed $field Column definition + * @return string|string[] + */ + protected function _alter_table($alter_type, $table, $field) + { + if ($alter_type === 'CHANGE') + { + $alter_type = 'MODIFY'; + } + + return parent::_alter_table($alter_type, $table, $field); + } + + // -------------------------------------------------------------------- + + /** + * Field attribute TYPE + * + * Performs a data type mapping between different databases. + * + * @param array &$attributes + * @return void + */ + protected function _attr_type(&$attributes) + { + switch (strtoupper($attributes['TYPE'])) + { + case 'TINYINT': + $attributes['TYPE'] = 'SMALLINT'; + $attributes['UNSIGNED'] = FALSE; + return; + case 'MEDIUMINT': + $attributes['TYPE'] = 'INTEGER'; + $attributes['UNSIGNED'] = FALSE; + return; + case 'BYTE': + case 'TEXT': + case 'BLOB': + case 'CLOB': + $attributes['UNIQUE'] = FALSE; + if (isset($attributes['DEFAULT'])) + { + unset($attributes['DEFAULT']); + } + return; + default: return; + } + } + + // -------------------------------------------------------------------- + + /** + * Field attribute UNIQUE + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_unique(&$attributes, &$field) + { + if ( ! empty($attributes['UNIQUE']) && $attributes['UNIQUE'] === TRUE) + { + $field['unique'] = ' UNIQUE CONSTRAINT '.$this->db->escape_identifiers($field['name']); + } + } + + // -------------------------------------------------------------------- + + /** + * Field attribute AUTO_INCREMENT + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_auto_increment(&$attributes, &$field) + { + // Not supported + } + +} diff --git a/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php b/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php new file mode 100644 index 0000000..1ad854d --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php @@ -0,0 +1,380 @@ +dsn)) + { + $this->dsn = 'mysql:host='.(empty($this->hostname) ? '127.0.0.1' : $this->hostname); + + empty($this->port) OR $this->dsn .= ';port='.$this->port; + empty($this->database) OR $this->dsn .= ';dbname='.$this->database; + empty($this->char_set) OR $this->dsn .= ';charset='.$this->char_set; + } + elseif ( ! empty($this->char_set) && strpos($this->dsn, 'charset=', 6) === FALSE) + { + $this->dsn .= ';charset='.$this->char_set; + } + } + + // -------------------------------------------------------------------- + + /** + * Database connection + * + * @param bool $persistent + * @return object + */ + public function db_connect($persistent = FALSE) + { + if (isset($this->stricton)) + { + if ($this->stricton) + { + $sql = 'CONCAT(@@sql_mode, ",", "STRICT_ALL_TABLES")'; + } + else + { + $sql = 'REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + @@sql_mode, + "STRICT_ALL_TABLES,", ""), + ",STRICT_ALL_TABLES", ""), + "STRICT_ALL_TABLES", ""), + "STRICT_TRANS_TABLES,", ""), + ",STRICT_TRANS_TABLES", ""), + "STRICT_TRANS_TABLES", "")'; + } + + if ( ! empty($sql)) + { + if (empty($this->options[PDO::MYSQL_ATTR_INIT_COMMAND])) + { + $this->options[PDO::MYSQL_ATTR_INIT_COMMAND] = 'SET SESSION sql_mode = '.$sql; + } + else + { + $this->options[PDO::MYSQL_ATTR_INIT_COMMAND] .= ', @@session.sql_mode = '.$sql; + } + } + } + + if ($this->compress === TRUE) + { + $this->options[PDO::MYSQL_ATTR_COMPRESS] = TRUE; + } + + if (is_array($this->encrypt)) + { + $ssl = array(); + empty($this->encrypt['ssl_key']) OR $ssl[PDO::MYSQL_ATTR_SSL_KEY] = $this->encrypt['ssl_key']; + empty($this->encrypt['ssl_cert']) OR $ssl[PDO::MYSQL_ATTR_SSL_CERT] = $this->encrypt['ssl_cert']; + empty($this->encrypt['ssl_ca']) OR $ssl[PDO::MYSQL_ATTR_SSL_CA] = $this->encrypt['ssl_ca']; + empty($this->encrypt['ssl_capath']) OR $ssl[PDO::MYSQL_ATTR_SSL_CAPATH] = $this->encrypt['ssl_capath']; + empty($this->encrypt['ssl_cipher']) OR $ssl[PDO::MYSQL_ATTR_SSL_CIPHER] = $this->encrypt['ssl_cipher']; + + if (defined('PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT') && isset($this->encrypt['ssl_verify'])) + { + $ssl[PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT] = $this->encrypt['ssl_verify']; + } + + // DO NOT use array_merge() here! + // It re-indexes numeric keys and the PDO_MYSQL_ATTR_SSL_* constants are integers. + empty($ssl) OR $this->options += $ssl; + } + + // Prior to version 5.7.3, MySQL silently downgrades to an unencrypted connection if SSL setup fails + if ( + ($pdo = parent::db_connect($persistent)) !== FALSE + && ! empty($ssl) + && version_compare($pdo->getAttribute(PDO::ATTR_CLIENT_VERSION), '5.7.3', '<=') + && empty($pdo->query("SHOW STATUS LIKE 'ssl_cipher'")->fetchObject()->Value) + ) + { + $message = 'PDO_MYSQL was configured for an SSL connection, but got an unencrypted connection instead!'; + log_message('error', $message); + return ($this->db_debug) ? $this->display_error($message, '', TRUE) : FALSE; + } + + return $pdo; + } + + // -------------------------------------------------------------------- + + /** + * Select the database + * + * @param string $database + * @return bool + */ + public function db_select($database = '') + { + if ($database === '') + { + $database = $this->database; + } + + if (FALSE !== $this->simple_query('USE '.$this->escape_identifiers($database))) + { + $this->database = $database; + $this->data_cache = array(); + return TRUE; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @return bool + */ + protected function _trans_begin() + { + $this->conn_id->setAttribute(PDO::ATTR_AUTOCOMMIT, FALSE); + return $this->conn_id->beginTransaction(); + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @return bool + */ + protected function _trans_commit() + { + if ($this->conn_id->commit()) + { + $this->conn_id->setAttribute(PDO::ATTR_AUTOCOMMIT, TRUE); + return TRUE; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @return bool + */ + protected function _trans_rollback() + { + if ($this->conn_id->rollBack()) + { + $this->conn_id->setAttribute(PDO::ATTR_AUTOCOMMIT, TRUE); + return TRUE; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Show table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool $prefix_limit + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = 'SHOW TABLES FROM '.$this->_escape_char.$this->database.$this->_escape_char; + + if ($prefix_limit === TRUE && $this->dbprefix !== '') + { + return $sql." LIKE '".$this->escape_like_str($this->dbprefix)."%'"; + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @param string $table + * @return string + */ + protected function _list_columns($table = '') + { + return 'SHOW COLUMNS FROM '.$this->protect_identifiers($table, TRUE, NULL, FALSE); + } + + // -------------------------------------------------------------------- + + /** + * Returns an object with field data + * + * @param string $table + * @return array + */ + public function field_data($table) + { + if (($query = $this->query('SHOW COLUMNS FROM '.$this->protect_identifiers($table, TRUE, NULL, FALSE))) === FALSE) + { + return FALSE; + } + $query = $query->result_object(); + + $retval = array(); + for ($i = 0, $c = count($query); $i < $c; $i++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = $query[$i]->Field; + + sscanf($query[$i]->Type, '%[a-z](%d)', + $retval[$i]->type, + $retval[$i]->max_length + ); + + $retval[$i]->default = $query[$i]->Default; + $retval[$i]->primary_key = (int) ($query[$i]->Key === 'PRI'); + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * + * If the database does not support the TRUNCATE statement, + * then this method maps to 'DELETE FROM table' + * + * @param string $table + * @return string + */ + protected function _truncate($table) + { + return 'TRUNCATE '.$table; + } + + // -------------------------------------------------------------------- + + /** + * FROM tables + * + * Groups tables in FROM clauses if needed, so there is no confusion + * about operator precedence. + * + * @return string + */ + protected function _from_tables() + { + if ( ! empty($this->qb_join) && count($this->qb_from) > 1) + { + return '('.implode(', ', $this->qb_from).')'; + } + + return implode(', ', $this->qb_from); + } + +} diff --git a/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php b/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php new file mode 100644 index 0000000..8bf5cfb --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php @@ -0,0 +1,257 @@ +db->char_set) && ! strpos($sql, 'CHARACTER SET') && ! strpos($sql, 'CHARSET')) + { + $sql .= ' DEFAULT CHARACTER SET = '.$this->db->char_set; + } + + if ( ! empty($this->db->dbcollat) && ! strpos($sql, 'COLLATE')) + { + $sql .= ' COLLATE = '.$this->db->dbcollat; + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * ALTER TABLE + * + * @param string $alter_type ALTER type + * @param string $table Table name + * @param mixed $field Column definition + * @return string|string[] + */ + protected function _alter_table($alter_type, $table, $field) + { + if ($alter_type === 'DROP') + { + return parent::_alter_table($alter_type, $table, $field); + } + + $sql = 'ALTER TABLE '.$this->db->escape_identifiers($table); + for ($i = 0, $c = count($field); $i < $c; $i++) + { + if ($field[$i]['_literal'] !== FALSE) + { + $field[$i] = ($alter_type === 'ADD') + ? "\n\tADD ".$field[$i]['_literal'] + : "\n\tMODIFY ".$field[$i]['_literal']; + } + else + { + if ($alter_type === 'ADD') + { + $field[$i]['_literal'] = "\n\tADD "; + } + else + { + $field[$i]['_literal'] = empty($field[$i]['new_name']) ? "\n\tMODIFY " : "\n\tCHANGE "; + } + + $field[$i] = $field[$i]['_literal'].$this->_process_column($field[$i]); + } + } + + return array($sql.implode(',', $field)); + } + + // -------------------------------------------------------------------- + + /** + * Process column + * + * @param array $field + * @return string + */ + protected function _process_column($field) + { + $extra_clause = isset($field['after']) + ? ' AFTER '.$this->db->escape_identifiers($field['after']) : ''; + + if (empty($extra_clause) && isset($field['first']) && $field['first'] === TRUE) + { + $extra_clause = ' FIRST'; + } + + return $this->db->escape_identifiers($field['name']) + .(empty($field['new_name']) ? '' : ' '.$this->db->escape_identifiers($field['new_name'])) + .' '.$field['type'].$field['length'] + .$field['unsigned'] + .$field['null'] + .$field['default'] + .$field['auto_increment'] + .$field['unique'] + .(empty($field['comment']) ? '' : ' COMMENT '.$field['comment']) + .$extra_clause; + } + + // -------------------------------------------------------------------- + + /** + * Process indexes + * + * @param string $table (ignored) + * @return string + */ + protected function _process_indexes($table) + { + $sql = ''; + + for ($i = 0, $c = count($this->keys); $i < $c; $i++) + { + if (is_array($this->keys[$i])) + { + for ($i2 = 0, $c2 = count($this->keys[$i]); $i2 < $c2; $i2++) + { + if ( ! isset($this->fields[$this->keys[$i][$i2]])) + { + unset($this->keys[$i][$i2]); + continue; + } + } + } + elseif ( ! isset($this->fields[$this->keys[$i]])) + { + unset($this->keys[$i]); + continue; + } + + is_array($this->keys[$i]) OR $this->keys[$i] = array($this->keys[$i]); + + $sql .= ",\n\tKEY ".$this->db->escape_identifiers(implode('_', $this->keys[$i])) + .' ('.implode(', ', $this->db->escape_identifiers($this->keys[$i])).')'; + } + + $this->keys = array(); + + return $sql; + } + +} diff --git a/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php b/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php new file mode 100644 index 0000000..3573691 --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php @@ -0,0 +1,327 @@ +dsn)) + { + $this->dsn = 'oci:dbname='; + + // Oracle has a slightly different PDO DSN format (Easy Connect), + // which also supports pre-defined DSNs. + if (empty($this->hostname) && empty($this->port)) + { + $this->dsn .= $this->database; + } + else + { + $this->dsn .= '//'.(empty($this->hostname) ? '127.0.0.1' : $this->hostname) + .(empty($this->port) ? '' : ':'.$this->port).'/'; + + empty($this->database) OR $this->dsn .= $this->database; + } + + empty($this->char_set) OR $this->dsn .= ';charset='.$this->char_set; + } + elseif ( ! empty($this->char_set) && strpos($this->dsn, 'charset=', 4) === FALSE) + { + $this->dsn .= ';charset='.$this->char_set; + } + } + + // -------------------------------------------------------------------- + + /** + * Database version number + * + * @return string + */ + public function version() + { + if (isset($this->data_cache['version'])) + { + return $this->data_cache['version']; + } + + $version_string = parent::version(); + if (preg_match('#(Release\s)?(?\d+(?:\.\d+)+)#', $version_string, $match)) + { + return $this->data_cache['version'] = $match['version']; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Show table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool $prefix_limit + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = 'SELECT "TABLE_NAME" FROM "ALL_TABLES"'; + + if ($prefix_limit === TRUE && $this->dbprefix !== '') + { + return $sql.' WHERE "TABLE_NAME" LIKE \''.$this->escape_like_str($this->dbprefix)."%' " + .sprintf($this->_like_escape_str, $this->_like_escape_chr); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @param string $table + * @return string + */ + protected function _list_columns($table = '') + { + if (strpos($table, '.') !== FALSE) + { + sscanf($table, '%[^.].%s', $owner, $table); + } + else + { + $owner = $this->username; + } + + return 'SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS + WHERE UPPER(OWNER) = '.$this->escape(strtoupper($owner)).' + AND UPPER(TABLE_NAME) = '.$this->escape(strtoupper($table)); + } + + // -------------------------------------------------------------------- + + /** + * Returns an object with field data + * + * @param string $table + * @return array + */ + public function field_data($table) + { + if (strpos($table, '.') !== FALSE) + { + sscanf($table, '%[^.].%s', $owner, $table); + } + else + { + $owner = $this->username; + } + + $sql = 'SELECT COLUMN_NAME, DATA_TYPE, CHAR_LENGTH, DATA_PRECISION, DATA_LENGTH, DATA_DEFAULT, NULLABLE + FROM ALL_TAB_COLUMNS + WHERE UPPER(OWNER) = '.$this->escape(strtoupper($owner)).' + AND UPPER(TABLE_NAME) = '.$this->escape(strtoupper($table)); + + if (($query = $this->query($sql)) === FALSE) + { + return FALSE; + } + $query = $query->result_object(); + + $retval = array(); + for ($i = 0, $c = count($query); $i < $c; $i++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = $query[$i]->COLUMN_NAME; + $retval[$i]->type = $query[$i]->DATA_TYPE; + + $length = ($query[$i]->CHAR_LENGTH > 0) + ? $query[$i]->CHAR_LENGTH : $query[$i]->DATA_PRECISION; + if ($length === NULL) + { + $length = $query[$i]->DATA_LENGTH; + } + $retval[$i]->max_length = $length; + + $default = $query[$i]->DATA_DEFAULT; + if ($default === NULL && $query[$i]->NULLABLE === 'N') + { + $default = ''; + } + $retval[$i]->default = $query[$i]->COLUMN_DEFAULT; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Insert batch statement + * + * @param string $table Table name + * @param array $keys INSERT keys + * @param array $values INSERT values + * @return string + */ + protected function _insert_batch($table, $keys, $values) + { + $keys = implode(', ', $keys); + $sql = "INSERT ALL\n"; + + for ($i = 0, $c = count($values); $i < $c; $i++) + { + $sql .= ' INTO '.$table.' ('.$keys.') VALUES '.$values[$i]."\n"; + } + + return $sql.'SELECT * FROM dual'; + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @param string $table + * @return string + */ + protected function _delete($table) + { + if ($this->qb_limit) + { + $this->where('rownum <= ',$this->qb_limit, FALSE); + $this->qb_limit = FALSE; + } + + return parent::_delete($table); + } + + // -------------------------------------------------------------------- + + /** + * LIMIT + * + * Generates a platform-specific LIMIT clause + * + * @param string $sql SQL Query + * @return string + */ + protected function _limit($sql) + { + if (version_compare($this->version(), '12.1', '>=')) + { + // OFFSET-FETCH can be used only with the ORDER BY clause + empty($this->qb_orderby) && $sql .= ' ORDER BY 1'; + + return $sql.' OFFSET '.(int) $this->qb_offset.' ROWS FETCH NEXT '.$this->qb_limit.' ROWS ONLY'; + } + + return 'SELECT * FROM (SELECT inner_query.*, rownum rnum FROM ('.$sql.') inner_query WHERE rownum < '.($this->qb_offset + $this->qb_limit + 1).')' + .($this->qb_offset ? ' WHERE rnum >= '.($this->qb_offset + 1): ''); + } + +} diff --git a/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php b/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php new file mode 100644 index 0000000..0783cd5 --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php @@ -0,0 +1,208 @@ +db->escape_identifiers($table); + $sqls = array(); + for ($i = 0, $c = count($field); $i < $c; $i++) + { + if ($field[$i]['_literal'] !== FALSE) + { + $field[$i] = "\n\t".$field[$i]['_literal']; + } + else + { + $field[$i]['_literal'] = "\n\t".$this->_process_column($field[$i]); + + if ( ! empty($field[$i]['comment'])) + { + $sqls[] = 'COMMENT ON COLUMN ' + .$this->db->escape_identifiers($table).'.'.$this->db->escape_identifiers($field[$i]['name']) + .' IS '.$field[$i]['comment']; + } + + if ($alter_type === 'MODIFY' && ! empty($field[$i]['new_name'])) + { + $sqls[] = $sql.' RENAME COLUMN '.$this->db->escape_identifiers($field[$i]['name']) + .' TO '.$this->db->escape_identifiers($field[$i]['new_name']); + } + } + } + + $sql .= ' '.$alter_type.' '; + $sql .= (count($field) === 1) + ? $field[0] + : '('.implode(',', $field).')'; + + // RENAME COLUMN must be executed after MODIFY + array_unshift($sqls, $sql); + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Field attribute AUTO_INCREMENT + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_auto_increment(&$attributes, &$field) + { + if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE && stripos($field['type'], 'number') !== FALSE && version_compare($this->db->version(), '12.1', '>=')) + { + $field['auto_increment'] = ' GENERATED ALWAYS AS IDENTITY'; + } + } + + // -------------------------------------------------------------------- + + /** + * Process column + * + * @param array $field + * @return string + */ + protected function _process_column($field) + { + return $this->db->escape_identifiers($field['name']) + .' '.$field['type'].$field['length'] + .$field['unsigned'] + .$field['default'] + .$field['auto_increment'] + .$field['null'] + .$field['unique']; + } + + // -------------------------------------------------------------------- + + /** + * Field attribute TYPE + * + * Performs a data type mapping between different databases. + * + * @param array &$attributes + * @return void + */ + protected function _attr_type(&$attributes) + { + switch (strtoupper($attributes['TYPE'])) + { + case 'TINYINT': + $attributes['TYPE'] = 'NUMBER'; + return; + case 'MEDIUMINT': + $attributes['TYPE'] = 'NUMBER'; + return; + case 'INT': + $attributes['TYPE'] = 'NUMBER'; + return; + case 'BIGINT': + $attributes['TYPE'] = 'NUMBER'; + return; + default: return; + } + } +} diff --git a/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php b/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php new file mode 100644 index 0000000..6b7f237 --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php @@ -0,0 +1,230 @@ +dsn)) + { + $this->dsn = 'odbc:'; + + // Pre-defined DSN + if (empty($this->hostname) && empty($this->HOSTNAME) && empty($this->port) && empty($this->PORT)) + { + if (isset($this->DSN)) + { + $this->dsn .= 'DSN='.$this->DSN; + } + elseif ( ! empty($this->database)) + { + $this->dsn .= 'DSN='.$this->database; + } + + return; + } + + // If the DSN is not pre-configured - try to build an IBM DB2 connection string + $this->dsn .= 'DRIVER='.(isset($this->DRIVER) ? '{'.$this->DRIVER.'}' : '{IBM DB2 ODBC DRIVER}').';'; + + if (isset($this->DATABASE)) + { + $this->dsn .= 'DATABASE='.$this->DATABASE.';'; + } + elseif ( ! empty($this->database)) + { + $this->dsn .= 'DATABASE='.$this->database.';'; + } + + if (isset($this->HOSTNAME)) + { + $this->dsn .= 'HOSTNAME='.$this->HOSTNAME.';'; + } + else + { + $this->dsn .= 'HOSTNAME='.(empty($this->hostname) ? '127.0.0.1;' : $this->hostname.';'); + } + + if (isset($this->PORT)) + { + $this->dsn .= 'PORT='.$this->port.';'; + } + elseif ( ! empty($this->port)) + { + $this->dsn .= ';PORT='.$this->port.';'; + } + + $this->dsn .= 'PROTOCOL='.(isset($this->PROTOCOL) ? $this->PROTOCOL.';' : 'TCPIP;'); + } + } + + // -------------------------------------------------------------------- + + /** + * Platform-dependent string escape + * + * @param string + * @return string + */ + protected function _escape_str($str) + { + $this->display_error('db_unsupported_feature'); + } + + // -------------------------------------------------------------------- + + /** + * Determines if a query is a "write" type. + * + * @param string An SQL query string + * @return bool + */ + public function is_write_type($sql) + { + if (preg_match('#^(INSERT|UPDATE).*RETURNING\s.+(\,\s?.+)*$#is', $sql)) + { + return FALSE; + } + + return parent::is_write_type($sql); + } + + // -------------------------------------------------------------------- + + /** + * Show table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool $prefix_limit + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = "SELECT table_name FROM information_schema.tables WHERE table_schema = '".$this->schema."'"; + + if ($prefix_limit !== FALSE && $this->dbprefix !== '') + { + return $sql." AND table_name LIKE '".$this->escape_like_str($this->dbprefix)."%' " + .sprintf($this->_like_escape_str, $this->_like_escape_chr); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @param string $table + * @return string + */ + protected function _list_columns($table = '') + { + return 'SELECT column_name FROM information_schema.columns WHERE table_name = '.$this->escape($table); + } +} diff --git a/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php b/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php new file mode 100644 index 0000000..c9b8238 --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php @@ -0,0 +1,71 @@ +dsn)) + { + $this->dsn = 'pgsql:host='.(empty($this->hostname) ? '127.0.0.1' : $this->hostname); + + empty($this->port) OR $this->dsn .= ';port='.$this->port; + empty($this->database) OR $this->dsn .= ';dbname='.$this->database; + + if ( ! empty($this->username)) + { + $this->dsn .= ';user='.$this->username; + empty($this->password) OR $this->dsn .= ';password='.$this->password; + } + } + } + + // -------------------------------------------------------------------- + + /** + * Database connection + * + * @param bool $persistent + * @return object + */ + public function db_connect($persistent = FALSE) + { + $this->conn_id = parent::db_connect($persistent); + + if (is_object($this->conn_id) && ! empty($this->schema)) + { + $this->simple_query('SET search_path TO '.$this->schema.',public'); + } + + return $this->conn_id; + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * @param string $name + * @return int + */ + public function insert_id($name = NULL) + { + if ($name === NULL && version_compare($this->version(), '8.1', '>=')) + { + $query = $this->query('SELECT LASTVAL() AS ins_id'); + $query = $query->row(); + return $query->ins_id; + } + + return $this->conn_id->lastInsertId($name); + } + + // -------------------------------------------------------------------- + + /** + * Determines if a query is a "write" type. + * + * @param string An SQL query string + * @return bool + */ + public function is_write_type($sql) + { + if (preg_match('#^(INSERT|UPDATE).*RETURNING\s.+(\,\s?.+)*$#is', $sql)) + { + return FALSE; + } + + return parent::is_write_type($sql); + } + + // -------------------------------------------------------------------- + + /** + * "Smart" Escape String + * + * Escapes data based on type + * + * @param string $str + * @return mixed + */ + public function escape($str) + { + if (is_bool($str)) + { + return ($str) ? 'TRUE' : 'FALSE'; + } + + return parent::escape($str); + } + + // -------------------------------------------------------------------- + + /** + * ORDER BY + * + * @param string $orderby + * @param string $direction ASC, DESC or RANDOM + * @param bool $escape + * @return object + */ + public function order_by($orderby, $direction = '', $escape = NULL) + { + $direction = strtoupper(trim($direction)); + if ($direction === 'RANDOM') + { + if ( ! is_float($orderby) && ctype_digit((string) $orderby)) + { + $orderby = ($orderby > 1) + ? (float) '0.'.$orderby + : (float) $orderby; + } + + if (is_float($orderby)) + { + $this->simple_query('SET SEED '.$orderby); + } + + $orderby = $this->_random_keyword[0]; + $direction = ''; + $escape = FALSE; + } + + return parent::order_by($orderby, $direction, $escape); + } + + // -------------------------------------------------------------------- + + /** + * Show table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool $prefix_limit + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = 'SELECT "table_name" FROM "information_schema"."tables" WHERE "table_schema" = \''.$this->schema."'"; + + if ($prefix_limit === TRUE && $this->dbprefix !== '') + { + return $sql.' AND "table_name" LIKE \'' + .$this->escape_like_str($this->dbprefix)."%' " + .sprintf($this->_like_escape_str, $this->_like_escape_chr); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * List column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @param string $table + * @return string + */ + protected function _list_columns($table = '') + { + return 'SELECT "column_name" + FROM "information_schema"."columns" + WHERE "table_schema" = \''.$this->schema.'\' AND LOWER("table_name") = '.$this->escape(strtolower($table)); + } + + // -------------------------------------------------------------------- + + /** + * Returns an object with field data + * + * @param string $table + * @return array + */ + public function field_data($table) + { + $sql = 'SELECT "column_name", "data_type", "character_maximum_length", "numeric_precision", "column_default" + FROM "information_schema"."columns" + WHERE "table_schema" = \''.$this->schema.'\' AND LOWER("table_name") = '.$this->escape(strtolower($table)); + + if (($query = $this->query($sql)) === FALSE) + { + return FALSE; + } + $query = $query->result_object(); + + $retval = array(); + for ($i = 0, $c = count($query); $i < $c; $i++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = $query[$i]->column_name; + $retval[$i]->type = $query[$i]->data_type; + $retval[$i]->max_length = ($query[$i]->character_maximum_length > 0) ? $query[$i]->character_maximum_length : $query[$i]->numeric_precision; + $retval[$i]->default = $query[$i]->column_default; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Update statement + * + * Generates a platform-specific update string from the supplied data + * + * @param string $table + * @param array $values + * @return string + */ + protected function _update($table, $values) + { + $this->qb_limit = FALSE; + $this->qb_orderby = array(); + return parent::_update($table, $values); + } + + // -------------------------------------------------------------------- + + /** + * Update_Batch statement + * + * Generates a platform-specific batch update string from the supplied data + * + * @param string $table Table name + * @param array $values Update data + * @param string $index WHERE key + * @return string + */ + protected function _update_batch($table, $values, $index) + { + $ids = array(); + foreach ($values as $key => $val) + { + $ids[] = $val[$index]['value']; + + foreach (array_keys($val) as $field) + { + if ($field !== $index) + { + $final[$val[$field]['field']][] = 'WHEN '.$val[$index]['value'].' THEN '.$val[$field]['value']; + } + } + } + + $cases = ''; + foreach ($final as $k => $v) + { + $cases .= $k.' = (CASE '.$val[$index]['field']."\n" + .implode("\n", $v)."\n" + .'ELSE '.$k.' END), '; + } + + $this->where($val[$index]['field'].' IN('.implode(',', $ids).')', NULL, FALSE); + + return 'UPDATE '.$table.' SET '.substr($cases, 0, -2).$this->_compile_wh('qb_where'); + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @param string $table + * @return string + */ + protected function _delete($table) + { + $this->qb_limit = FALSE; + return parent::_delete($table); + } + + // -------------------------------------------------------------------- + + /** + * LIMIT + * + * Generates a platform-specific LIMIT clause + * + * @param string $sql SQL Query + * @return string + */ + protected function _limit($sql) + { + return $sql.' LIMIT '.$this->qb_limit.($this->qb_offset ? ' OFFSET '.$this->qb_offset : ''); + } + +} diff --git a/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php b/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php new file mode 100644 index 0000000..cea2054 --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php @@ -0,0 +1,218 @@ + 'INTEGER', + 'SMALLINT' => 'INTEGER', + 'INT' => 'BIGINT', + 'INT4' => 'BIGINT', + 'INTEGER' => 'BIGINT', + 'INT8' => 'NUMERIC', + 'BIGINT' => 'NUMERIC', + 'REAL' => 'DOUBLE PRECISION', + 'FLOAT' => 'DOUBLE PRECISION' + ); + + /** + * NULL value representation in CREATE/ALTER TABLE statements + * + * @var string + */ + protected $_null = 'NULL'; + + // -------------------------------------------------------------------- + + /** + * Class constructor + * + * @param object &$db Database object + * @return void + */ + public function __construct(&$db) + { + parent::__construct($db); + + if (version_compare($this->db->version(), '9.0', '>')) + { + $this->create_table_if = 'CREATE TABLE IF NOT EXISTS'; + } + } + + // -------------------------------------------------------------------- + + /** + * ALTER TABLE + * + * @param string $alter_type ALTER type + * @param string $table Table name + * @param mixed $field Column definition + * @return string|string[] + */ + protected function _alter_table($alter_type, $table, $field) + { + if (in_array($alter_type, array('DROP', 'ADD'), TRUE)) + { + return parent::_alter_table($alter_type, $table, $field); + } + + $sql = 'ALTER TABLE '.$this->db->escape_identifiers($table); + $sqls = array(); + for ($i = 0, $c = count($field); $i < $c; $i++) + { + if ($field[$i]['_literal'] !== FALSE) + { + return FALSE; + } + + if (version_compare($this->db->version(), '8', '>=') && isset($field[$i]['type'])) + { + $sqls[] = $sql.' ALTER COLUMN '.$this->db->escape_identifiers($field[$i]['name']) + .' TYPE '.$field[$i]['type'].$field[$i]['length']; + } + + if ( ! empty($field[$i]['default'])) + { + $sqls[] = $sql.' ALTER COLUMN '.$this->db->escape_identifiers($field[$i]['name']) + .' SET '.$field[$i]['default']; + } + + if (isset($field[$i]['null'])) + { + $sqls[] = $sql.' ALTER COLUMN '.$this->db->escape_identifiers($field[$i]['name']) + .(trim($field[$i]['null']) === $this->_null ? ' DROP NOT NULL' : ' SET NOT NULL'); + } + + if ( ! empty($field[$i]['new_name'])) + { + $sqls[] = $sql.' RENAME COLUMN '.$this->db->escape_identifiers($field[$i]['name']) + .' TO '.$this->db->escape_identifiers($field[$i]['new_name']); + } + + if ( ! empty($field[$i]['comment'])) + { + $sqls[] = 'COMMENT ON COLUMN ' + .$this->db->escape_identifiers($table).'.'.$this->db->escape_identifiers($field[$i]['name']) + .' IS '.$field[$i]['comment']; + } + } + + return $sqls; + } + + // -------------------------------------------------------------------- + + /** + * Field attribute TYPE + * + * Performs a data type mapping between different databases. + * + * @param array &$attributes + * @return void + */ + protected function _attr_type(&$attributes) + { + // Reset field lengths for data types that don't support it + if (isset($attributes['CONSTRAINT']) && stripos($attributes['TYPE'], 'int') !== FALSE) + { + $attributes['CONSTRAINT'] = NULL; + } + + switch (strtoupper($attributes['TYPE'])) + { + case 'TINYINT': + $attributes['TYPE'] = 'SMALLINT'; + $attributes['UNSIGNED'] = FALSE; + return; + case 'MEDIUMINT': + $attributes['TYPE'] = 'INTEGER'; + $attributes['UNSIGNED'] = FALSE; + return; + default: return; + } + } + + // -------------------------------------------------------------------- + + /** + * Field attribute AUTO_INCREMENT + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_auto_increment(&$attributes, &$field) + { + if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE) + { + $field['type'] = ($field['type'] === 'NUMERIC') + ? 'BIGSERIAL' + : 'SERIAL'; + } + } + +} diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php b/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php new file mode 100644 index 0000000..24c34f2 --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php @@ -0,0 +1,214 @@ +dsn)) + { + $this->dsn = 'sqlite:'; + + if (empty($this->database) && empty($this->hostname)) + { + $this->database = ':memory:'; + } + + $this->database = empty($this->database) ? $this->hostname : $this->database; + } + } + + // -------------------------------------------------------------------- + + /** + * Show table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool $prefix_limit + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = 'SELECT "NAME" FROM "SQLITE_MASTER" WHERE "TYPE" = \'table\''; + + if ($prefix_limit === TRUE && $this->dbprefix !== '') + { + return $sql.' AND "NAME" LIKE \''.$this->escape_like_str($this->dbprefix)."%' " + .sprintf($this->_like_escape_str, $this->_like_escape_chr); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * @param string $table Table name + * @return array + */ + public function list_fields($table) + { + if (($result = $this->query('PRAGMA TABLE_INFO('.$this->protect_identifiers($table, TRUE, NULL, FALSE).')')) === FALSE) + { + return FALSE; + } + + $fields = array(); + foreach ($result->result_array() as $row) + { + $fields[] = $row['name']; + } + + return $fields; + } + + // -------------------------------------------------------------------- + + /** + * Returns an object with field data + * + * @param string $table + * @return array + */ + public function field_data($table) + { + if (($query = $this->query('PRAGMA TABLE_INFO('.$this->protect_identifiers($table, TRUE, NULL, FALSE).')')) === FALSE) + { + return FALSE; + } + + $query = $query->result_array(); + if (empty($query)) + { + return FALSE; + } + + $retval = array(); + for ($i = 0, $c = count($query); $i < $c; $i++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = $query[$i]['name']; + $retval[$i]->type = $query[$i]['type']; + $retval[$i]->max_length = NULL; + $retval[$i]->default = $query[$i]['dflt_value']; + $retval[$i]->primary_key = isset($query[$i]['pk']) ? (int) $query[$i]['pk'] : 0; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Replace statement + * + * @param string $table Table name + * @param array $keys INSERT keys + * @param array $values INSERT values + * @return string + */ + protected function _replace($table, $keys, $values) + { + return 'INSERT OR '.parent::_replace($table, $keys, $values); + } + + // -------------------------------------------------------------------- + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * + * If the database does not support the TRUNCATE statement, + * then this method maps to 'DELETE FROM table' + * + * @param string $table + * @return string + */ + protected function _truncate($table) + { + return 'DELETE FROM '.$table; + } + +} diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php b/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php new file mode 100644 index 0000000..b0edcbd --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php @@ -0,0 +1,239 @@ +db->version(), '3.3', '<')) + { + $this->_create_table_if = FALSE; + $this->_drop_table_if = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Create database + * + * @param string $db_name (ignored) + * @return bool + */ + public function create_database($db_name) + { + // In SQLite, a database is created when you connect to the database. + // We'll return TRUE so that an error isn't generated + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Drop database + * + * @param string $db_name (ignored) + * @return bool + */ + public function drop_database($db_name) + { + // In SQLite, a database is dropped when we delete a file + if (file_exists($this->db->database)) + { + // We need to close the pseudo-connection first + $this->db->close(); + if ( ! @unlink($this->db->database)) + { + return $this->db->db_debug ? $this->db->display_error('db_unable_to_drop') : FALSE; + } + elseif ( ! empty($this->db->data_cache['db_names'])) + { + $key = array_search(strtolower($this->db->database), array_map('strtolower', $this->db->data_cache['db_names']), TRUE); + if ($key !== FALSE) + { + unset($this->db->data_cache['db_names'][$key]); + } + } + + return TRUE; + } + + return $this->db->db_debug ? $this->db->display_error('db_unable_to_drop') : FALSE; + } + + // -------------------------------------------------------------------- + + /** + * ALTER TABLE + * + * @param string $alter_type ALTER type + * @param string $table Table name + * @param mixed $field Column definition + * @return string|string[] + */ + protected function _alter_table($alter_type, $table, $field) + { + if ($alter_type === 'DROP' OR $alter_type === 'CHANGE') + { + // drop_column(): + // BEGIN TRANSACTION; + // CREATE TEMPORARY TABLE t1_backup(a,b); + // INSERT INTO t1_backup SELECT a,b FROM t1; + // DROP TABLE t1; + // CREATE TABLE t1(a,b); + // INSERT INTO t1 SELECT a,b FROM t1_backup; + // DROP TABLE t1_backup; + // COMMIT; + + return FALSE; + } + + return parent::_alter_table($alter_type, $table, $field); + } + + // -------------------------------------------------------------------- + + /** + * Process column + * + * @param array $field + * @return string + */ + protected function _process_column($field) + { + return $this->db->escape_identifiers($field['name']) + .' '.$field['type'] + .$field['auto_increment'] + .$field['null'] + .$field['unique'] + .$field['default']; + } + + // -------------------------------------------------------------------- + + /** + * Field attribute TYPE + * + * Performs a data type mapping between different databases. + * + * @param array &$attributes + * @return void + */ + protected function _attr_type(&$attributes) + { + switch (strtoupper($attributes['TYPE'])) + { + case 'ENUM': + case 'SET': + $attributes['TYPE'] = 'TEXT'; + return; + default: return; + } + } + + // -------------------------------------------------------------------- + + /** + * Field attribute AUTO_INCREMENT + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_auto_increment(&$attributes, &$field) + { + if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE && stripos($field['type'], 'int') !== FALSE) + { + $field['type'] = 'INTEGER PRIMARY KEY'; + $field['default'] = ''; + $field['null'] = ''; + $field['unique'] = ''; + $field['auto_increment'] = ' AUTOINCREMENT'; + + $this->primary_keys = array(); + } + } + +} diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php new file mode 100644 index 0000000..685b61e --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php @@ -0,0 +1,370 @@ +dsn)) + { + $this->dsn = 'sqlsrv:Server='.(empty($this->hostname) ? '127.0.0.1' : $this->hostname); + + empty($this->port) OR $this->dsn .= ','.$this->port; + empty($this->database) OR $this->dsn .= ';Database='.$this->database; + + // Some custom options + + if (isset($this->QuotedId)) + { + $this->dsn .= ';QuotedId='.$this->QuotedId; + $this->_quoted_identifier = (bool) $this->QuotedId; + } + + if (isset($this->ConnectionPooling)) + { + $this->dsn .= ';ConnectionPooling='.$this->ConnectionPooling; + } + + if ($this->encrypt === TRUE) + { + $this->dsn .= ';Encrypt=1'; + } + + if (isset($this->TraceOn)) + { + $this->dsn .= ';TraceOn='.$this->TraceOn; + } + + if (isset($this->TrustServerCertificate)) + { + $this->dsn .= ';TrustServerCertificate='.$this->TrustServerCertificate; + } + + empty($this->APP) OR $this->dsn .= ';APP='.$this->APP; + empty($this->Failover_Partner) OR $this->dsn .= ';Failover_Partner='.$this->Failover_Partner; + empty($this->LoginTimeout) OR $this->dsn .= ';LoginTimeout='.$this->LoginTimeout; + empty($this->MultipleActiveResultSets) OR $this->dsn .= ';MultipleActiveResultSets='.$this->MultipleActiveResultSets; + empty($this->TraceFile) OR $this->dsn .= ';TraceFile='.$this->TraceFile; + empty($this->WSID) OR $this->dsn .= ';WSID='.$this->WSID; + } + elseif (preg_match('/QuotedId=(0|1)/', $this->dsn, $match)) + { + $this->_quoted_identifier = (bool) $match[1]; + } + } + + // -------------------------------------------------------------------- + + /** + * Database connection + * + * @param bool $persistent + * @return object + */ + public function db_connect($persistent = FALSE) + { + if ( ! empty($this->char_set) && preg_match('/utf[^8]*8/i', $this->char_set)) + { + $this->options[PDO::SQLSRV_ENCODING_UTF8] = 1; + } + + $this->conn_id = parent::db_connect($persistent); + + if ( ! is_object($this->conn_id) OR is_bool($this->_quoted_identifier)) + { + return $this->conn_id; + } + + // Determine how identifiers are escaped + $query = $this->query('SELECT CASE WHEN (@@OPTIONS | 256) = @@OPTIONS THEN 1 ELSE 0 END AS qi'); + $query = $query->row_array(); + $this->_quoted_identifier = empty($query) ? FALSE : (bool) $query['qi']; + $this->_escape_char = ($this->_quoted_identifier) ? '"' : array('[', ']'); + + return $this->conn_id; + } + + // -------------------------------------------------------------------- + + /** + * Show table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool $prefix_limit + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = 'SELECT '.$this->escape_identifiers('name') + .' FROM '.$this->escape_identifiers('sysobjects') + .' WHERE '.$this->escape_identifiers('type')." = 'U'"; + + if ($prefix_limit === TRUE && $this->dbprefix !== '') + { + $sql .= ' AND '.$this->escape_identifiers('name')." LIKE '".$this->escape_like_str($this->dbprefix)."%' " + .sprintf($this->_like_escape_str, $this->_like_escape_chr); + } + + return $sql.' ORDER BY '.$this->escape_identifiers('name'); + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @param string $table + * @return string + */ + protected function _list_columns($table = '') + { + return 'SELECT COLUMN_NAME + FROM INFORMATION_SCHEMA.Columns + WHERE UPPER(TABLE_NAME) = '.$this->escape(strtoupper($table)); + } + + // -------------------------------------------------------------------- + + /** + * Returns an object with field data + * + * @param string $table + * @return array + */ + public function field_data($table) + { + $sql = 'SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, NUMERIC_PRECISION, COLUMN_DEFAULT + FROM INFORMATION_SCHEMA.Columns + WHERE UPPER(TABLE_NAME) = '.$this->escape(strtoupper($table)); + + if (($query = $this->query($sql)) === FALSE) + { + return FALSE; + } + $query = $query->result_object(); + + $retval = array(); + for ($i = 0, $c = count($query); $i < $c; $i++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = $query[$i]->COLUMN_NAME; + $retval[$i]->type = $query[$i]->DATA_TYPE; + $retval[$i]->max_length = ($query[$i]->CHARACTER_MAXIMUM_LENGTH > 0) ? $query[$i]->CHARACTER_MAXIMUM_LENGTH : $query[$i]->NUMERIC_PRECISION; + $retval[$i]->default = $query[$i]->COLUMN_DEFAULT; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Update statement + * + * Generates a platform-specific update string from the supplied data + * + * @param string $table + * @param array $values + * @return string + */ + protected function _update($table, $values) + { + $this->qb_limit = FALSE; + $this->qb_orderby = array(); + return parent::_update($table, $values); + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @param string $table + * @return string + */ + protected function _delete($table) + { + if ($this->qb_limit) + { + return 'WITH ci_delete AS (SELECT TOP '.$this->qb_limit.' * FROM '.$table.$this->_compile_wh('qb_where').') DELETE FROM ci_delete'; + } + + return parent::_delete($table); + } + + // -------------------------------------------------------------------- + + /** + * LIMIT + * + * Generates a platform-specific LIMIT clause + * + * @param string $sql SQL Query + * @return string + */ + protected function _limit($sql) + { + // As of SQL Server 2012 (11.0.*) OFFSET is supported + if (version_compare($this->version(), '11', '>=')) + { + // SQL Server OFFSET-FETCH can be used only with the ORDER BY clause + empty($this->qb_orderby) && $sql .= ' ORDER BY 1'; + + return $sql.' OFFSET '.(int) $this->qb_offset.' ROWS FETCH NEXT '.$this->qb_limit.' ROWS ONLY'; + } + + $limit = $this->qb_offset + $this->qb_limit; + + // An ORDER BY clause is required for ROW_NUMBER() to work + if ($this->qb_offset && ! empty($this->qb_orderby)) + { + $orderby = $this->_compile_order_by(); + + // We have to strip the ORDER BY clause + $sql = trim(substr($sql, 0, strrpos($sql, $orderby))); + + // Get the fields to select from our subquery, so that we can avoid CI_rownum appearing in the actual results + if (count($this->qb_select) === 0 OR strpos(implode(',', $this->qb_select), '*') !== FALSE) + { + $select = '*'; // Inevitable + } + else + { + // Use only field names and their aliases, everything else is out of our scope. + $select = array(); + $field_regexp = ($this->_quoted_identifier) + ? '("[^\"]+")' : '(\[[^\]]+\])'; + for ($i = 0, $c = count($this->qb_select); $i < $c; $i++) + { + $select[] = preg_match('/(?:\s|\.)'.$field_regexp.'$/i', $this->qb_select[$i], $m) + ? $m[1] : $this->qb_select[$i]; + } + $select = implode(', ', $select); + } + + return 'SELECT '.$select." FROM (\n\n" + .preg_replace('/^(SELECT( DISTINCT)?)/i', '\\1 ROW_NUMBER() OVER('.trim($orderby).') AS '.$this->escape_identifiers('CI_rownum').', ', $sql) + ."\n\n) ".$this->escape_identifiers('CI_subquery') + ."\nWHERE ".$this->escape_identifiers('CI_rownum').' BETWEEN '.($this->qb_offset + 1).' AND '.$limit; + } + + return preg_replace('/(^\SELECT (DISTINCT)?)/i','\\1 TOP '.$limit.' ', $sql); + } + + // -------------------------------------------------------------------- + + /** + * Insert batch statement + * + * Generates a platform-specific insert string from the supplied data. + * + * @param string $table Table name + * @param array $keys INSERT keys + * @param array $values INSERT values + * @return string|bool + */ + protected function _insert_batch($table, $keys, $values) + { + // Multiple-value inserts are only supported as of SQL Server 2008 + if (version_compare($this->version(), '10', '>=')) + { + return parent::_insert_batch($table, $keys, $values); + } + + return ($this->db_debug) ? $this->display_error('db_unsupported_feature') : FALSE; + } + +} diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php new file mode 100644 index 0000000..07eecea --- /dev/null +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php @@ -0,0 +1,150 @@ + 'SMALLINT', + 'SMALLINT' => 'INT', + 'INT' => 'BIGINT', + 'REAL' => 'FLOAT' + ); + + // -------------------------------------------------------------------- + + /** + * ALTER TABLE + * + * @param string $alter_type ALTER type + * @param string $table Table name + * @param mixed $field Column definition + * @return string|string[] + */ + protected function _alter_table($alter_type, $table, $field) + { + if (in_array($alter_type, array('ADD', 'DROP'), TRUE)) + { + return parent::_alter_table($alter_type, $table, $field); + } + + $sql = 'ALTER TABLE '.$this->db->escape_identifiers($table).' ALTER COLUMN '; + $sqls = array(); + for ($i = 0, $c = count($field); $i < $c; $i++) + { + $sqls[] = $sql.$this->_process_column($field[$i]); + } + + return $sqls; + } + + // -------------------------------------------------------------------- + + /** + * Field attribute TYPE + * + * Performs a data type mapping between different databases. + * + * @param array &$attributes + * @return void + */ + protected function _attr_type(&$attributes) + { + if (isset($attributes['CONSTRAINT']) && strpos($attributes['TYPE'], 'INT') !== FALSE) + { + unset($attributes['CONSTRAINT']); + } + + switch (strtoupper($attributes['TYPE'])) + { + case 'MEDIUMINT': + $attributes['TYPE'] = 'INTEGER'; + $attributes['UNSIGNED'] = FALSE; + return; + case 'INTEGER': + $attributes['TYPE'] = 'INT'; + return; + default: return; + } + } + + // -------------------------------------------------------------------- + + /** + * Field attribute AUTO_INCREMENT + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_auto_increment(&$attributes, &$field) + { + if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE && stripos($field['type'], 'int') !== FALSE) + { + $field['auto_increment'] = ' IDENTITY(1,1)'; + } + } + +} diff --git a/system/database/drivers/postgre/index.html b/system/database/drivers/postgre/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/system/database/drivers/postgre/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

    Directory access is forbidden.

    + + + diff --git a/system/database/drivers/postgre/postgre_driver.php b/system/database/drivers/postgre/postgre_driver.php new file mode 100644 index 0000000..15d800b --- /dev/null +++ b/system/database/drivers/postgre/postgre_driver.php @@ -0,0 +1,611 @@ +dsn === '' OR $this->dsn = ''; + + if (strpos($this->hostname, '/') !== FALSE) + { + // If UNIX sockets are used, we shouldn't set a port + $this->port = ''; + } + + $this->hostname === '' OR $this->dsn = 'host='.$this->hostname.' '; + + if ( ! empty($this->port) && ctype_digit($this->port)) + { + $this->dsn .= 'port='.$this->port.' '; + } + + if ($this->username !== '') + { + $this->dsn .= 'user='.$this->username.' '; + + /* An empty password is valid! + * + * $db['password'] = NULL must be done in order to ignore it. + */ + $this->password === NULL OR $this->dsn .= "password='".$this->password."' "; + } + + $this->database === '' OR $this->dsn .= 'dbname='.$this->database.' '; + + /* We don't have these options as elements in our standard configuration + * array, but they might be set by parse_url() if the configuration was + * provided via string. Example: + * + * postgre://username:password@localhost:5432/database?connect_timeout=5&sslmode=1 + */ + foreach (array('connect_timeout', 'options', 'sslmode', 'service') as $key) + { + if (isset($this->$key) && is_string($this->$key) && $this->$key !== '') + { + $this->dsn .= $key."='".$this->$key."' "; + } + } + + $this->dsn = rtrim($this->dsn); + } + + // -------------------------------------------------------------------- + + /** + * Database connection + * + * @param bool $persistent + * @return resource|object + */ + public function db_connect($persistent = FALSE) + { + empty($this->dsn) && $this->_build_dsn(); + $this->conn_id = ($persistent === TRUE) + ? pg_pconnect($this->dsn) + : pg_connect($this->dsn); + + if ($this->conn_id !== FALSE) + { + if ($persistent === TRUE + && pg_connection_status($this->conn_id) === PGSQL_CONNECTION_BAD + && pg_ping($this->conn_id) === FALSE + ) + { + return FALSE; + } + + empty($this->schema) OR $this->simple_query('SET search_path TO '.$this->schema.',public'); + } + + return $this->conn_id; + } + + // -------------------------------------------------------------------- + + /** + * Reconnect + * + * Keep / reestablish the db connection if no queries have been + * sent for a length of time exceeding the server's idle timeout + * + * @return void + */ + public function reconnect() + { + if (pg_ping($this->conn_id) === FALSE) + { + $this->conn_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Set client character set + * + * @param string $charset + * @return bool + */ + protected function _db_set_charset($charset) + { + return (pg_set_client_encoding($this->conn_id, $charset) === 0); + } + + // -------------------------------------------------------------------- + + /** + * Database version number + * + * @return string + */ + public function version() + { + if (isset($this->data_cache['version'])) + { + return $this->data_cache['version']; + } + + if ( ! $this->conn_id OR ($pg_version = pg_version($this->conn_id)) === FALSE) + { + return FALSE; + } + + /* If PHP was compiled with PostgreSQL lib versions earlier + * than 7.4, pg_version() won't return the server version + * and so we'll have to fall back to running a query in + * order to get it. + */ + return (isset($pg_version['server']) && preg_match('#^(\d+\.\d+)#', $pg_version['server'], $match)) + ? $this->data_cache['version'] = $match[1] + : parent::version(); + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * @param string $sql an SQL query + * @return resource|object + */ + protected function _execute($sql) + { + return pg_query($this->conn_id, $sql); + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @return bool + */ + protected function _trans_begin() + { + return (bool) pg_query($this->conn_id, 'BEGIN'); + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @return bool + */ + protected function _trans_commit() + { + return (bool) pg_query($this->conn_id, 'COMMIT'); + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @return bool + */ + protected function _trans_rollback() + { + return (bool) pg_query($this->conn_id, 'ROLLBACK'); + } + + // -------------------------------------------------------------------- + + /** + * Determines if a query is a "write" type. + * + * @param string An SQL query string + * @return bool + */ + public function is_write_type($sql) + { + if (preg_match('#^(INSERT|UPDATE).*RETURNING\s.+(\,\s?.+)*$#is', $sql)) + { + return FALSE; + } + + return parent::is_write_type($sql); + } + + // -------------------------------------------------------------------- + + /** + * Platform-dependent string escape + * + * @param string + * @return string + */ + protected function _escape_str($str) + { + return pg_escape_string($this->conn_id, $str); + } + + // -------------------------------------------------------------------- + + /** + * "Smart" Escape String + * + * Escapes data based on type + * + * @param string $str + * @return mixed + */ + public function escape($str) + { + if (is_php('5.4.4') && (is_string($str) OR (is_object($str) && method_exists($str, '__toString')))) + { + return pg_escape_literal($this->conn_id, $str); + } + elseif (is_bool($str)) + { + return ($str) ? 'TRUE' : 'FALSE'; + } + + return parent::escape($str); + } + + // -------------------------------------------------------------------- + + /** + * Affected Rows + * + * @return int + */ + public function affected_rows() + { + return pg_affected_rows($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * @return string + */ + public function insert_id() + { + $v = $this->version(); + + $table = (func_num_args() > 0) ? func_get_arg(0) : NULL; + $column = (func_num_args() > 1) ? func_get_arg(1) : NULL; + + if ($table === NULL && $v >= '8.1') + { + $sql = 'SELECT LASTVAL() AS ins_id'; + } + elseif ($table !== NULL) + { + if ($column !== NULL && $v >= '8.0') + { + $sql = 'SELECT pg_get_serial_sequence(\''.$table."', '".$column."') AS seq"; + $query = $this->query($sql); + $query = $query->row(); + $seq = $query->seq; + } + else + { + // seq_name passed in table parameter + $seq = $table; + } + + $sql = 'SELECT CURRVAL(\''.$seq."') AS ins_id"; + } + else + { + return pg_last_oid($this->result_id); + } + + $query = $this->query($sql); + $query = $query->row(); + return (int) $query->ins_id; + } + + // -------------------------------------------------------------------- + + /** + * Show table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool $prefix_limit + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = 'SELECT "table_name" FROM "information_schema"."tables" WHERE "table_schema" = \''.$this->schema."'"; + + if ($prefix_limit !== FALSE && $this->dbprefix !== '') + { + return $sql.' AND "table_name" LIKE \'' + .$this->escape_like_str($this->dbprefix)."%' " + .sprintf($this->_like_escape_str, $this->_like_escape_chr); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * List column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @param string $table + * @return string + */ + protected function _list_columns($table = '') + { + return 'SELECT "column_name" + FROM "information_schema"."columns" + WHERE "table_schema" = \''.$this->schema.'\' AND LOWER("table_name") = '.$this->escape(strtolower($table)); + } + + // -------------------------------------------------------------------- + + /** + * Returns an object with field data + * + * @param string $table + * @return array + */ + public function field_data($table) + { + $sql = 'SELECT "column_name", "data_type", "character_maximum_length", "numeric_precision", "column_default" + FROM "information_schema"."columns" + WHERE "table_schema" = \''.$this->schema.'\' AND LOWER("table_name") = '.$this->escape(strtolower($table)); + + if (($query = $this->query($sql)) === FALSE) + { + return FALSE; + } + $query = $query->result_object(); + + $retval = array(); + for ($i = 0, $c = count($query); $i < $c; $i++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = $query[$i]->column_name; + $retval[$i]->type = $query[$i]->data_type; + $retval[$i]->max_length = ($query[$i]->character_maximum_length > 0) ? $query[$i]->character_maximum_length : $query[$i]->numeric_precision; + $retval[$i]->default = $query[$i]->column_default; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Error + * + * Returns an array containing code and message of the last + * database error that has occurred. + * + * @return array + */ + public function error() + { + return array('code' => '', 'message' => pg_last_error($this->conn_id)); + } + + // -------------------------------------------------------------------- + + /** + * ORDER BY + * + * @param string $orderby + * @param string $direction ASC, DESC or RANDOM + * @param bool $escape + * @return object + */ + public function order_by($orderby, $direction = '', $escape = NULL) + { + $direction = strtoupper(trim($direction)); + if ($direction === 'RANDOM') + { + if ( ! is_float($orderby) && ctype_digit((string) $orderby)) + { + $orderby = ($orderby > 1) + ? (float) '0.'.$orderby + : (float) $orderby; + } + + if (is_float($orderby)) + { + $this->simple_query('SET SEED '.$orderby); + } + + $orderby = $this->_random_keyword[0]; + $direction = ''; + $escape = FALSE; + } + + return parent::order_by($orderby, $direction, $escape); + } + + // -------------------------------------------------------------------- + + /** + * Update statement + * + * Generates a platform-specific update string from the supplied data + * + * @param string $table + * @param array $values + * @return string + */ + protected function _update($table, $values) + { + $this->qb_limit = FALSE; + $this->qb_orderby = array(); + return parent::_update($table, $values); + } + + // -------------------------------------------------------------------- + + /** + * Update_Batch statement + * + * Generates a platform-specific batch update string from the supplied data + * + * @param string $table Table name + * @param array $values Update data + * @param string $index WHERE key + * @return string + */ + protected function _update_batch($table, $values, $index) + { + $ids = array(); + foreach ($values as $key => $val) + { + $ids[] = $val[$index]['value']; + + foreach (array_keys($val) as $field) + { + if ($field !== $index) + { + $final[$val[$field]['field']][] = 'WHEN '.$val[$index]['value'].' THEN '.$val[$field]['value']; + } + } + } + + $cases = ''; + foreach ($final as $k => $v) + { + $cases .= $k.' = (CASE '.$val[$index]['field']."\n" + .implode("\n", $v)."\n" + .'ELSE '.$k.' END), '; + } + + $this->where($val[$index]['field'].' IN('.implode(',', $ids).')', NULL, FALSE); + + return 'UPDATE '.$table.' SET '.substr($cases, 0, -2).$this->_compile_wh('qb_where'); + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @param string $table + * @return string + */ + protected function _delete($table) + { + $this->qb_limit = FALSE; + return parent::_delete($table); + } + + // -------------------------------------------------------------------- + + /** + * LIMIT + * + * Generates a platform-specific LIMIT clause + * + * @param string $sql SQL Query + * @return string + */ + protected function _limit($sql) + { + return $sql.' LIMIT '.$this->qb_limit.($this->qb_offset ? ' OFFSET '.$this->qb_offset : ''); + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @return void + */ + protected function _close() + { + pg_close($this->conn_id); + } + +} diff --git a/system/database/drivers/postgre/postgre_forge.php b/system/database/drivers/postgre/postgre_forge.php new file mode 100644 index 0000000..2857fd5 --- /dev/null +++ b/system/database/drivers/postgre/postgre_forge.php @@ -0,0 +1,206 @@ + 'INTEGER', + 'SMALLINT' => 'INTEGER', + 'INT' => 'BIGINT', + 'INT4' => 'BIGINT', + 'INTEGER' => 'BIGINT', + 'INT8' => 'NUMERIC', + 'BIGINT' => 'NUMERIC', + 'REAL' => 'DOUBLE PRECISION', + 'FLOAT' => 'DOUBLE PRECISION' + ); + + /** + * NULL value representation in CREATE/ALTER TABLE statements + * + * @var string + */ + protected $_null = 'NULL'; + + // -------------------------------------------------------------------- + + /** + * Class constructor + * + * @param object &$db Database object + * @return void + */ + public function __construct(&$db) + { + parent::__construct($db); + + if (version_compare($this->db->version(), '9.0', '>')) + { + $this->create_table_if = 'CREATE TABLE IF NOT EXISTS'; + } + } + + // -------------------------------------------------------------------- + + /** + * ALTER TABLE + * + * @param string $alter_type ALTER type + * @param string $table Table name + * @param mixed $field Column definition + * @return string|string[] + */ + protected function _alter_table($alter_type, $table, $field) + { + if (in_array($alter_type, array('DROP', 'ADD'), TRUE)) + { + return parent::_alter_table($alter_type, $table, $field); + } + + $sql = 'ALTER TABLE '.$this->db->escape_identifiers($table); + $sqls = array(); + for ($i = 0, $c = count($field); $i < $c; $i++) + { + if ($field[$i]['_literal'] !== FALSE) + { + return FALSE; + } + + if (version_compare($this->db->version(), '8', '>=') && isset($field[$i]['type'])) + { + $sqls[] = $sql.' ALTER COLUMN '.$this->db->escape_identifiers($field[$i]['name']) + .' TYPE '.$field[$i]['type'].$field[$i]['length']; + } + + if ( ! empty($field[$i]['default'])) + { + $sqls[] = $sql.' ALTER COLUMN '.$this->db->escape_identifiers($field[$i]['name']) + .' SET '.$field[$i]['default']; + } + + if (isset($field[$i]['null'])) + { + $sqls[] = $sql.' ALTER COLUMN '.$this->db->escape_identifiers($field[$i]['name']) + .(trim($field[$i]['null']) === $this->_null ? ' DROP NOT NULL' : ' SET NOT NULL'); + } + + if ( ! empty($field[$i]['new_name'])) + { + $sqls[] = $sql.' RENAME COLUMN '.$this->db->escape_identifiers($field[$i]['name']) + .' TO '.$this->db->escape_identifiers($field[$i]['new_name']); + } + + if ( ! empty($field[$i]['comment'])) + { + $sqls[] = 'COMMENT ON COLUMN ' + .$this->db->escape_identifiers($table).'.'.$this->db->escape_identifiers($field[$i]['name']) + .' IS '.$field[$i]['comment']; + } + } + + return $sqls; + } + + // -------------------------------------------------------------------- + + /** + * Field attribute TYPE + * + * Performs a data type mapping between different databases. + * + * @param array &$attributes + * @return void + */ + protected function _attr_type(&$attributes) + { + // Reset field lengths for data types that don't support it + if (isset($attributes['CONSTRAINT']) && stripos($attributes['TYPE'], 'int') !== FALSE) + { + $attributes['CONSTRAINT'] = NULL; + } + + switch (strtoupper($attributes['TYPE'])) + { + case 'TINYINT': + $attributes['TYPE'] = 'SMALLINT'; + $attributes['UNSIGNED'] = FALSE; + return; + case 'MEDIUMINT': + $attributes['TYPE'] = 'INTEGER'; + $attributes['UNSIGNED'] = FALSE; + return; + default: return; + } + } + + // -------------------------------------------------------------------- + + /** + * Field attribute AUTO_INCREMENT + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_auto_increment(&$attributes, &$field) + { + if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE) + { + $field['type'] = ($field['type'] === 'NUMERIC') + ? 'BIGSERIAL' + : 'SERIAL'; + } + } + +} diff --git a/system/database/drivers/postgre/postgre_result.php b/system/database/drivers/postgre/postgre_result.php new file mode 100644 index 0000000..5e4145e --- /dev/null +++ b/system/database/drivers/postgre/postgre_result.php @@ -0,0 +1,183 @@ +num_rows) + ? $this->num_rows + : $this->num_rows = pg_num_rows($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Number of fields in the result set + * + * @return int + */ + public function num_fields() + { + return pg_num_fields($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @return array + */ + public function list_fields() + { + $field_names = array(); + for ($i = 0, $c = $this->num_fields(); $i < $c; $i++) + { + $field_names[] = pg_field_name($this->result_id, $i); + } + + return $field_names; + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @return array + */ + public function field_data() + { + $retval = array(); + for ($i = 0, $c = $this->num_fields(); $i < $c; $i++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = pg_field_name($this->result_id, $i); + $retval[$i]->type = pg_field_type($this->result_id, $i); + $retval[$i]->max_length = pg_field_size($this->result_id, $i); + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * @return void + */ + public function free_result() + { + if ($this->result_id !== FALSE) + { + pg_free_result($this->result_id); + $this->result_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Data Seek + * + * Moves the internal pointer to the desired offset. We call + * this internally before fetching results to make sure the + * result set starts at zero. + * + * @param int $n + * @return bool + */ + public function data_seek($n = 0) + { + return pg_result_seek($this->result_id, $n); + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @return array + */ + protected function _fetch_assoc() + { + return pg_fetch_assoc($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @param string $class_name + * @return object + */ + protected function _fetch_object($class_name = 'stdClass') + { + return pg_fetch_object($this->result_id, NULL, $class_name); + } + +} diff --git a/system/database/drivers/postgre/postgre_utility.php b/system/database/drivers/postgre/postgre_utility.php new file mode 100644 index 0000000..c8356d5 --- /dev/null +++ b/system/database/drivers/postgre/postgre_utility.php @@ -0,0 +1,79 @@ +db->display_error('db_unsupported_feature'); + } +} diff --git a/system/database/drivers/sqlite/index.html b/system/database/drivers/sqlite/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/system/database/drivers/sqlite/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

    Directory access is forbidden.

    + + + diff --git a/system/database/drivers/sqlite/sqlite_driver.php b/system/database/drivers/sqlite/sqlite_driver.php new file mode 100644 index 0000000..188f00c --- /dev/null +++ b/system/database/drivers/sqlite/sqlite_driver.php @@ -0,0 +1,331 @@ +database, 0666, $error) + : sqlite_open($this->database, 0666, $error); + + isset($error) && log_message('error', $error); + + return $conn_id; + } + + // -------------------------------------------------------------------- + + /** + * Database version number + * + * @return string + */ + public function version() + { + return isset($this->data_cache['version']) + ? $this->data_cache['version'] + : $this->data_cache['version'] = sqlite_libversion(); + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * @param string $sql an SQL query + * @return resource + */ + protected function _execute($sql) + { + return $this->is_write_type($sql) + ? sqlite_exec($this->conn_id, $sql) + : sqlite_query($this->conn_id, $sql); + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @return bool + */ + protected function _trans_begin() + { + return $this->simple_query('BEGIN TRANSACTION'); + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @return bool + */ + protected function _trans_commit() + { + return $this->simple_query('COMMIT'); + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @return bool + */ + protected function _trans_rollback() + { + return $this->simple_query('ROLLBACK'); + } + + // -------------------------------------------------------------------- + + /** + * Platform-dependant string escape + * + * @param string + * @return string + */ + protected function _escape_str($str) + { + return sqlite_escape_string($str); + } + + // -------------------------------------------------------------------- + + /** + * Affected Rows + * + * @return int + */ + public function affected_rows() + { + return sqlite_changes($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * @return int + */ + public function insert_id() + { + return sqlite_last_insert_rowid($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * List table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool $prefix_limit + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = "SELECT name FROM sqlite_master WHERE type='table'"; + + if ($prefix_limit !== FALSE && $this->dbprefix != '') + { + return $sql." AND 'name' LIKE '".$this->escape_like_str($this->dbprefix)."%' ".sprintf($this->_like_escape_str, $this->_like_escape_chr); + } + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Show column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @param string $table + * @return bool + */ + protected function _list_columns($table = '') + { + // Not supported + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Returns an object with field data + * + * @param string $table + * @return array + */ + public function field_data($table) + { + if (($query = $this->query('PRAGMA TABLE_INFO('.$this->protect_identifiers($table, TRUE, NULL, FALSE).')')) === FALSE) + { + return FALSE; + } + + $query = $query->result_array(); + if (empty($query)) + { + return FALSE; + } + + $retval = array(); + for ($i = 0, $c = count($query); $i < $c; $i++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = $query[$i]['name']; + $retval[$i]->type = $query[$i]['type']; + $retval[$i]->max_length = NULL; + $retval[$i]->default = $query[$i]['dflt_value']; + $retval[$i]->primary_key = isset($query[$i]['pk']) ? (int) $query[$i]['pk'] : 0; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Error + * + * Returns an array containing code and message of the last + * database error that has occured. + * + * @return array + */ + public function error() + { + $error = array('code' => sqlite_last_error($this->conn_id)); + $error['message'] = sqlite_error_string($error['code']); + return $error; + } + + // -------------------------------------------------------------------- + + /** + * Replace statement + * + * Generates a platform-specific replace string from the supplied data + * + * @param string $table Table name + * @param array $keys INSERT keys + * @param array $values INSERT values + * @return string + */ + protected function _replace($table, $keys, $values) + { + return 'INSERT OR '.parent::_replace($table, $keys, $values); + } + + // -------------------------------------------------------------------- + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * + * If the database does not support the TRUNCATE statement, + * then this function maps to 'DELETE FROM table' + * + * @param string $table + * @return string + */ + protected function _truncate($table) + { + return 'DELETE FROM '.$table; + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @return void + */ + protected function _close() + { + sqlite_close($this->conn_id); + } + +} diff --git a/system/database/drivers/sqlite/sqlite_forge.php b/system/database/drivers/sqlite/sqlite_forge.php new file mode 100644 index 0000000..60aaa09 --- /dev/null +++ b/system/database/drivers/sqlite/sqlite_forge.php @@ -0,0 +1,206 @@ +db->database) OR ! @unlink($this->db->database)) + { + return ($this->db->db_debug) ? $this->db->display_error('db_unable_to_drop') : FALSE; + } + elseif ( ! empty($this->db->data_cache['db_names'])) + { + $key = array_search(strtolower($this->db->database), array_map('strtolower', $this->db->data_cache['db_names']), TRUE); + if ($key !== FALSE) + { + unset($this->db->data_cache['db_names'][$key]); + } + } + + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * ALTER TABLE + * + * @todo implement drop_column(), modify_column() + * @param string $alter_type ALTER type + * @param string $table Table name + * @param mixed $field Column definition + * @return string|string[] + */ + protected function _alter_table($alter_type, $table, $field) + { + if ($alter_type === 'DROP' OR $alter_type === 'CHANGE') + { + // drop_column(): + // BEGIN TRANSACTION; + // CREATE TEMPORARY TABLE t1_backup(a,b); + // INSERT INTO t1_backup SELECT a,b FROM t1; + // DROP TABLE t1; + // CREATE TABLE t1(a,b); + // INSERT INTO t1 SELECT a,b FROM t1_backup; + // DROP TABLE t1_backup; + // COMMIT; + + return FALSE; + } + + return parent::_alter_table($alter_type, $table, $field); + } + + // -------------------------------------------------------------------- + + /** + * Process column + * + * @param array $field + * @return string + */ + protected function _process_column($field) + { + return $this->db->escape_identifiers($field['name']) + .' '.$field['type'] + .$field['auto_increment'] + .$field['null'] + .$field['unique'] + .$field['default']; + } + + // -------------------------------------------------------------------- + + /** + * Field attribute TYPE + * + * Performs a data type mapping between different databases. + * + * @param array &$attributes + * @return void + */ + protected function _attr_type(&$attributes) + { + switch (strtoupper($attributes['TYPE'])) + { + case 'ENUM': + case 'SET': + $attributes['TYPE'] = 'TEXT'; + return; + default: return; + } + } + + // -------------------------------------------------------------------- + + /** + * Field attribute AUTO_INCREMENT + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_auto_increment(&$attributes, &$field) + { + if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE && stripos($field['type'], 'int') !== FALSE) + { + $field['type'] = 'INTEGER PRIMARY KEY'; + $field['default'] = ''; + $field['null'] = ''; + $field['unique'] = ''; + $field['auto_increment'] = ' AUTOINCREMENT'; + + $this->primary_keys = array(); + } + } + +} diff --git a/system/database/drivers/sqlite/sqlite_result.php b/system/database/drivers/sqlite/sqlite_result.php new file mode 100644 index 0000000..1df9025 --- /dev/null +++ b/system/database/drivers/sqlite/sqlite_result.php @@ -0,0 +1,165 @@ +num_rows) + ? $this->num_rows + : $this->num_rows = @sqlite_num_rows($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Number of fields in the result set + * + * @return int + */ + public function num_fields() + { + return @sqlite_num_fields($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @return array + */ + public function list_fields() + { + $field_names = array(); + for ($i = 0, $c = $this->num_fields(); $i < $c; $i++) + { + $field_names[$i] = sqlite_field_name($this->result_id, $i); + } + + return $field_names; + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @return array + */ + public function field_data() + { + $retval = array(); + for ($i = 0, $c = $this->num_fields(); $i < $c; $i++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = sqlite_field_name($this->result_id, $i); + $retval[$i]->type = NULL; + $retval[$i]->max_length = NULL; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Data Seek + * + * Moves the internal pointer to the desired offset. We call + * this internally before fetching results to make sure the + * result set starts at zero. + * + * @param int $n + * @return bool + */ + public function data_seek($n = 0) + { + return sqlite_seek($this->result_id, $n); + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @return array + */ + protected function _fetch_assoc() + { + return sqlite_fetch_array($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @param string $class_name + * @return object + */ + protected function _fetch_object($class_name = 'stdClass') + { + return sqlite_fetch_object($this->result_id, $class_name); + } + +} diff --git a/system/database/drivers/sqlite/sqlite_utility.php b/system/database/drivers/sqlite/sqlite_utility.php new file mode 100644 index 0000000..5f9adf2 --- /dev/null +++ b/system/database/drivers/sqlite/sqlite_utility.php @@ -0,0 +1,62 @@ +db->display_error('db_unsupported_feature'); + } + +} diff --git a/system/database/drivers/sqlite3/index.html b/system/database/drivers/sqlite3/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/system/database/drivers/sqlite3/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

    Directory access is forbidden.

    + + + diff --git a/system/database/drivers/sqlite3/sqlite3_driver.php b/system/database/drivers/sqlite3/sqlite3_driver.php new file mode 100644 index 0000000..be79ddd --- /dev/null +++ b/system/database/drivers/sqlite3/sqlite3_driver.php @@ -0,0 +1,345 @@ +password) + ? new SQLite3($this->database) + : new SQLite3($this->database, SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, $this->password); + } + catch (Exception $e) + { + return FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Database version number + * + * @return string + */ + public function version() + { + if (isset($this->data_cache['version'])) + { + return $this->data_cache['version']; + } + + $version = SQLite3::version(); + return $this->data_cache['version'] = $version['versionString']; + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * @todo Implement use of SQLite3::querySingle(), if needed + * @param string $sql + * @return mixed SQLite3Result object or bool + */ + protected function _execute($sql) + { + return $this->is_write_type($sql) + ? $this->conn_id->exec($sql) + : $this->conn_id->query($sql); + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @return bool + */ + protected function _trans_begin() + { + return $this->conn_id->exec('BEGIN TRANSACTION'); + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @return bool + */ + protected function _trans_commit() + { + return $this->conn_id->exec('END TRANSACTION'); + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @return bool + */ + protected function _trans_rollback() + { + return $this->conn_id->exec('ROLLBACK'); + } + + // -------------------------------------------------------------------- + + /** + * Platform-dependent string escape + * + * @param string + * @return string + */ + protected function _escape_str($str) + { + return $this->conn_id->escapeString($str); + } + + // -------------------------------------------------------------------- + + /** + * Affected Rows + * + * @return int + */ + public function affected_rows() + { + return $this->conn_id->changes(); + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * @return int + */ + public function insert_id() + { + return $this->conn_id->lastInsertRowID(); + } + + // -------------------------------------------------------------------- + + /** + * Show table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool $prefix_limit + * @return string + */ + protected function _list_tables($prefix_limit = FALSE) + { + return 'SELECT "NAME" FROM "SQLITE_MASTER" WHERE "TYPE" = \'table\'' + .(($prefix_limit !== FALSE && $this->dbprefix != '') + ? ' AND "NAME" LIKE \''.$this->escape_like_str($this->dbprefix).'%\' '.sprintf($this->_like_escape_str, $this->_like_escape_chr) + : ''); + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * @param string $table Table name + * @return array + */ + public function list_fields($table) + { + if (($result = $this->query('PRAGMA TABLE_INFO('.$this->protect_identifiers($table, TRUE, NULL, FALSE).')')) === FALSE) + { + return FALSE; + } + + $fields = array(); + foreach ($result->result_array() as $row) + { + $fields[] = $row['name']; + } + + return $fields; + } + + // -------------------------------------------------------------------- + + /** + * Returns an object with field data + * + * @param string $table + * @return array + */ + public function field_data($table) + { + if (($query = $this->query('PRAGMA TABLE_INFO('.$this->protect_identifiers($table, TRUE, NULL, FALSE).')')) === FALSE) + { + return FALSE; + } + + $query = $query->result_array(); + if (empty($query)) + { + return FALSE; + } + + $retval = array(); + for ($i = 0, $c = count($query); $i < $c; $i++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = $query[$i]['name']; + $retval[$i]->type = $query[$i]['type']; + $retval[$i]->max_length = NULL; + $retval[$i]->default = $query[$i]['dflt_value']; + $retval[$i]->primary_key = isset($query[$i]['pk']) ? (int) $query[$i]['pk'] : 0; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Error + * + * Returns an array containing code and message of the last + * database error that has occurred. + * + * @return array + */ + public function error() + { + return array('code' => $this->conn_id->lastErrorCode(), 'message' => $this->conn_id->lastErrorMsg()); + } + + // -------------------------------------------------------------------- + + /** + * Replace statement + * + * Generates a platform-specific replace string from the supplied data + * + * @param string $table Table name + * @param array $keys INSERT keys + * @param array $values INSERT values + * @return string + */ + protected function _replace($table, $keys, $values) + { + return 'INSERT OR '.parent::_replace($table, $keys, $values); + } + + // -------------------------------------------------------------------- + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * + * If the database does not support the TRUNCATE statement, + * then this method maps to 'DELETE FROM table' + * + * @param string $table + * @return string + */ + protected function _truncate($table) + { + return 'DELETE FROM '.$table; + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @return void + */ + protected function _close() + { + $this->conn_id->close(); + } + +} diff --git a/system/database/drivers/sqlite3/sqlite3_forge.php b/system/database/drivers/sqlite3/sqlite3_forge.php new file mode 100644 index 0000000..5658b3e --- /dev/null +++ b/system/database/drivers/sqlite3/sqlite3_forge.php @@ -0,0 +1,226 @@ +db->version(), '3.3', '<')) + { + $this->_create_table_if = FALSE; + $this->_drop_table_if = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Create database + * + * @param string $db_name + * @return bool + */ + public function create_database($db_name) + { + // In SQLite, a database is created when you connect to the database. + // We'll return TRUE so that an error isn't generated + return TRUE; + } + + // -------------------------------------------------------------------- + + /** + * Drop database + * + * @param string $db_name (ignored) + * @return bool + */ + public function drop_database($db_name) + { + // In SQLite, a database is dropped when we delete a file + if (file_exists($this->db->database)) + { + // We need to close the pseudo-connection first + $this->db->close(); + if ( ! @unlink($this->db->database)) + { + return $this->db->db_debug ? $this->db->display_error('db_unable_to_drop') : FALSE; + } + elseif ( ! empty($this->db->data_cache['db_names'])) + { + $key = array_search(strtolower($this->db->database), array_map('strtolower', $this->db->data_cache['db_names']), TRUE); + if ($key !== FALSE) + { + unset($this->db->data_cache['db_names'][$key]); + } + } + + return TRUE; + } + + return $this->db->db_debug ? $this->db->display_error('db_unable_to_drop') : FALSE; + } + + // -------------------------------------------------------------------- + + /** + * ALTER TABLE + * + * @todo implement drop_column(), modify_column() + * @param string $alter_type ALTER type + * @param string $table Table name + * @param mixed $field Column definition + * @return string|string[] + */ + protected function _alter_table($alter_type, $table, $field) + { + if ($alter_type === 'DROP' OR $alter_type === 'CHANGE') + { + // drop_column(): + // BEGIN TRANSACTION; + // CREATE TEMPORARY TABLE t1_backup(a,b); + // INSERT INTO t1_backup SELECT a,b FROM t1; + // DROP TABLE t1; + // CREATE TABLE t1(a,b); + // INSERT INTO t1 SELECT a,b FROM t1_backup; + // DROP TABLE t1_backup; + // COMMIT; + + return FALSE; + } + + return parent::_alter_table($alter_type, $table, $field); + } + + // -------------------------------------------------------------------- + + /** + * Process column + * + * @param array $field + * @return string + */ + protected function _process_column($field) + { + return $this->db->escape_identifiers($field['name']) + .' '.$field['type'] + .$field['auto_increment'] + .$field['null'] + .$field['unique'] + .$field['default']; + } + + // -------------------------------------------------------------------- + + /** + * Field attribute TYPE + * + * Performs a data type mapping between different databases. + * + * @param array &$attributes + * @return void + */ + protected function _attr_type(&$attributes) + { + switch (strtoupper($attributes['TYPE'])) + { + case 'ENUM': + case 'SET': + $attributes['TYPE'] = 'TEXT'; + return; + default: return; + } + } + + // -------------------------------------------------------------------- + + /** + * Field attribute AUTO_INCREMENT + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_auto_increment(&$attributes, &$field) + { + if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE && stripos($field['type'], 'int') !== FALSE) + { + $field['type'] = 'INTEGER PRIMARY KEY'; + $field['default'] = ''; + $field['null'] = ''; + $field['unique'] = ''; + $field['auto_increment'] = ' AUTOINCREMENT'; + + $this->primary_keys = array(); + } + } + +} diff --git a/system/database/drivers/sqlite3/sqlite3_result.php b/system/database/drivers/sqlite3/sqlite3_result.php new file mode 100644 index 0000000..47fe9d2 --- /dev/null +++ b/system/database/drivers/sqlite3/sqlite3_result.php @@ -0,0 +1,195 @@ +result_id->numColumns(); + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @return array + */ + public function list_fields() + { + $field_names = array(); + for ($i = 0, $c = $this->num_fields(); $i < $c; $i++) + { + $field_names[] = $this->result_id->columnName($i); + } + + return $field_names; + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @return array + */ + public function field_data() + { + static $data_types = array( + SQLITE3_INTEGER => 'integer', + SQLITE3_FLOAT => 'float', + SQLITE3_TEXT => 'text', + SQLITE3_BLOB => 'blob', + SQLITE3_NULL => 'null' + ); + + $retval = array(); + for ($i = 0, $c = $this->num_fields(); $i < $c; $i++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = $this->result_id->columnName($i); + + $type = $this->result_id->columnType($i); + $retval[$i]->type = isset($data_types[$type]) ? $data_types[$type] : $type; + + $retval[$i]->max_length = NULL; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * @return void + */ + public function free_result() + { + if (is_object($this->result_id)) + { + $this->result_id->finalize(); + $this->result_id = NULL; + } + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @return array + */ + protected function _fetch_assoc() + { + return $this->result_id->fetchArray(SQLITE3_ASSOC); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @param string $class_name + * @return object + */ + protected function _fetch_object($class_name = 'stdClass') + { + // No native support for fetching rows as objects + if (($row = $this->result_id->fetchArray(SQLITE3_ASSOC)) === FALSE) + { + return FALSE; + } + elseif ($class_name === 'stdClass') + { + return (object) $row; + } + + $class_name = new $class_name(); + foreach (array_keys($row) as $key) + { + $class_name->$key = $row[$key]; + } + + return $class_name; + } + + // -------------------------------------------------------------------- + + /** + * Data Seek + * + * Moves the internal pointer to the desired offset. We call + * this internally before fetching results to make sure the + * result set starts at zero. + * + * @param int $n (ignored) + * @return array + */ + public function data_seek($n = 0) + { + // Only resetting to the start of the result set is supported + return ($n > 0) ? FALSE : $this->result_id->reset(); + } + +} diff --git a/system/database/drivers/sqlite3/sqlite3_utility.php b/system/database/drivers/sqlite3/sqlite3_utility.php new file mode 100644 index 0000000..90316bc --- /dev/null +++ b/system/database/drivers/sqlite3/sqlite3_utility.php @@ -0,0 +1,62 @@ +db->display_error('db_unsupported_feature'); + } + +} diff --git a/system/database/drivers/sqlsrv/index.html b/system/database/drivers/sqlsrv/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/system/database/drivers/sqlsrv/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

    Directory access is forbidden.

    + + + diff --git a/system/database/drivers/sqlsrv/sqlsrv_driver.php b/system/database/drivers/sqlsrv/sqlsrv_driver.php new file mode 100644 index 0000000..7877794 --- /dev/null +++ b/system/database/drivers/sqlsrv/sqlsrv_driver.php @@ -0,0 +1,544 @@ +scrollable === NULL) + { + $this->scrollable = defined('SQLSRV_CURSOR_CLIENT_BUFFERED') + ? SQLSRV_CURSOR_CLIENT_BUFFERED + : FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Database connection + * + * @param bool $pooling + * @return resource + */ + public function db_connect($pooling = FALSE) + { + $charset = in_array(strtolower($this->char_set), array('utf-8', 'utf8'), TRUE) + ? 'UTF-8' : SQLSRV_ENC_CHAR; + + $connection = array( + 'UID' => empty($this->username) ? '' : $this->username, + 'PWD' => empty($this->password) ? '' : $this->password, + 'Database' => $this->database, + 'ConnectionPooling' => ($pooling === TRUE) ? 1 : 0, + 'CharacterSet' => $charset, + 'Encrypt' => ($this->encrypt === TRUE) ? 1 : 0, + 'ReturnDatesAsStrings' => 1 + ); + + // If the username and password are both empty, assume this is a + // 'Windows Authentication Mode' connection. + if (empty($connection['UID']) && empty($connection['PWD'])) + { + unset($connection['UID'], $connection['PWD']); + } + + if (FALSE !== ($this->conn_id = sqlsrv_connect($this->hostname, $connection))) + { + // Determine how identifiers are escaped + $query = $this->query('SELECT CASE WHEN (@@OPTIONS | 256) = @@OPTIONS THEN 1 ELSE 0 END AS qi'); + $query = $query->row_array(); + $this->_quoted_identifier = empty($query) ? FALSE : (bool) $query['qi']; + $this->_escape_char = ($this->_quoted_identifier) ? '"' : array('[', ']'); + } + + return $this->conn_id; + } + + // -------------------------------------------------------------------- + + /** + * Select the database + * + * @param string $database + * @return bool + */ + public function db_select($database = '') + { + if ($database === '') + { + $database = $this->database; + } + + if ($this->_execute('USE '.$this->escape_identifiers($database))) + { + $this->database = $database; + $this->data_cache = array(); + return TRUE; + } + + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Execute the query + * + * @param string $sql an SQL query + * @return resource + */ + protected function _execute($sql) + { + return ($this->scrollable === FALSE OR $this->is_write_type($sql)) + ? sqlsrv_query($this->conn_id, $sql) + : sqlsrv_query($this->conn_id, $sql, NULL, array('Scrollable' => $this->scrollable)); + } + + // -------------------------------------------------------------------- + + /** + * Begin Transaction + * + * @return bool + */ + protected function _trans_begin() + { + return sqlsrv_begin_transaction($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Commit Transaction + * + * @return bool + */ + protected function _trans_commit() + { + return sqlsrv_commit($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Rollback Transaction + * + * @return bool + */ + protected function _trans_rollback() + { + return sqlsrv_rollback($this->conn_id); + } + + // -------------------------------------------------------------------- + + /** + * Affected Rows + * + * @return int + */ + public function affected_rows() + { + return sqlsrv_rows_affected($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Insert ID + * + * Returns the last id created in the Identity column. + * + * @return string + */ + public function insert_id() + { + return $this->query('SELECT SCOPE_IDENTITY() AS insert_id')->row()->insert_id; + } + + // -------------------------------------------------------------------- + + /** + * Database version number + * + * @return string + */ + public function version() + { + if (isset($this->data_cache['version'])) + { + return $this->data_cache['version']; + } + + if ( ! $this->conn_id OR ($info = sqlsrv_server_info($this->conn_id)) === FALSE) + { + return FALSE; + } + + return $this->data_cache['version'] = $info['SQLServerVersion']; + } + + // -------------------------------------------------------------------- + + /** + * List table query + * + * Generates a platform-specific query string so that the table names can be fetched + * + * @param bool + * @return string $prefix_limit + */ + protected function _list_tables($prefix_limit = FALSE) + { + $sql = 'SELECT '.$this->escape_identifiers('name') + .' FROM '.$this->escape_identifiers('sysobjects') + .' WHERE '.$this->escape_identifiers('type')." = 'U'"; + + if ($prefix_limit === TRUE && $this->dbprefix !== '') + { + $sql .= ' AND '.$this->escape_identifiers('name')." LIKE '".$this->escape_like_str($this->dbprefix)."%' " + .sprintf($this->_escape_like_str, $this->_escape_like_chr); + } + + return $sql.' ORDER BY '.$this->escape_identifiers('name'); + } + + // -------------------------------------------------------------------- + + /** + * List column query + * + * Generates a platform-specific query string so that the column names can be fetched + * + * @param string $table + * @return string + */ + protected function _list_columns($table = '') + { + return 'SELECT COLUMN_NAME + FROM INFORMATION_SCHEMA.Columns + WHERE UPPER(TABLE_NAME) = '.$this->escape(strtoupper($table)); + } + + // -------------------------------------------------------------------- + + /** + * Returns an object with field data + * + * @param string $table + * @return array + */ + public function field_data($table) + { + $sql = 'SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, NUMERIC_PRECISION, COLUMN_DEFAULT + FROM INFORMATION_SCHEMA.Columns + WHERE UPPER(TABLE_NAME) = '.$this->escape(strtoupper($table)); + + if (($query = $this->query($sql)) === FALSE) + { + return FALSE; + } + $query = $query->result_object(); + + $retval = array(); + for ($i = 0, $c = count($query); $i < $c; $i++) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = $query[$i]->COLUMN_NAME; + $retval[$i]->type = $query[$i]->DATA_TYPE; + $retval[$i]->max_length = ($query[$i]->CHARACTER_MAXIMUM_LENGTH > 0) ? $query[$i]->CHARACTER_MAXIMUM_LENGTH : $query[$i]->NUMERIC_PRECISION; + $retval[$i]->default = $query[$i]->COLUMN_DEFAULT; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Error + * + * Returns an array containing code and message of the last + * database error that has occurred. + * + * @return array + */ + public function error() + { + $error = array('code' => '00000', 'message' => ''); + $sqlsrv_errors = sqlsrv_errors(SQLSRV_ERR_ERRORS); + + if ( ! is_array($sqlsrv_errors)) + { + return $error; + } + + $sqlsrv_error = array_shift($sqlsrv_errors); + if (isset($sqlsrv_error['SQLSTATE'])) + { + $error['code'] = isset($sqlsrv_error['code']) ? $sqlsrv_error['SQLSTATE'].'/'.$sqlsrv_error['code'] : $sqlsrv_error['SQLSTATE']; + } + elseif (isset($sqlsrv_error['code'])) + { + $error['code'] = $sqlsrv_error['code']; + } + + if (isset($sqlsrv_error['message'])) + { + $error['message'] = $sqlsrv_error['message']; + } + + return $error; + } + + // -------------------------------------------------------------------- + + /** + * Update statement + * + * Generates a platform-specific update string from the supplied data + * + * @param string $table + * @param array $values + * @return string + */ + protected function _update($table, $values) + { + $this->qb_limit = FALSE; + $this->qb_orderby = array(); + return parent::_update($table, $values); + } + + // -------------------------------------------------------------------- + + /** + * Truncate statement + * + * Generates a platform-specific truncate string from the supplied data + * + * If the database does not support the TRUNCATE statement, + * then this method maps to 'DELETE FROM table' + * + * @param string $table + * @return string + */ + protected function _truncate($table) + { + return 'TRUNCATE TABLE '.$table; + } + + // -------------------------------------------------------------------- + + /** + * Delete statement + * + * Generates a platform-specific delete string from the supplied data + * + * @param string $table + * @return string + */ + protected function _delete($table) + { + if ($this->qb_limit) + { + return 'WITH ci_delete AS (SELECT TOP '.$this->qb_limit.' * FROM '.$table.$this->_compile_wh('qb_where').') DELETE FROM ci_delete'; + } + + return parent::_delete($table); + } + + // -------------------------------------------------------------------- + + /** + * LIMIT + * + * Generates a platform-specific LIMIT clause + * + * @param string $sql SQL Query + * @return string + */ + protected function _limit($sql) + { + // As of SQL Server 2012 (11.0.*) OFFSET is supported + if (version_compare($this->version(), '11', '>=')) + { + // SQL Server OFFSET-FETCH can be used only with the ORDER BY clause + empty($this->qb_orderby) && $sql .= ' ORDER BY 1'; + + return $sql.' OFFSET '.(int) $this->qb_offset.' ROWS FETCH NEXT '.$this->qb_limit.' ROWS ONLY'; + } + + $limit = $this->qb_offset + $this->qb_limit; + + // An ORDER BY clause is required for ROW_NUMBER() to work + if ($this->qb_offset && ! empty($this->qb_orderby)) + { + $orderby = $this->_compile_order_by(); + + // We have to strip the ORDER BY clause + $sql = trim(substr($sql, 0, strrpos($sql, $orderby))); + + // Get the fields to select from our subquery, so that we can avoid CI_rownum appearing in the actual results + if (count($this->qb_select) === 0 OR strpos(implode(',', $this->qb_select), '*') !== FALSE) + { + $select = '*'; // Inevitable + } + else + { + // Use only field names and their aliases, everything else is out of our scope. + $select = array(); + $field_regexp = ($this->_quoted_identifier) + ? '("[^\"]+")' : '(\[[^\]]+\])'; + for ($i = 0, $c = count($this->qb_select); $i < $c; $i++) + { + $select[] = preg_match('/(?:\s|\.)'.$field_regexp.'$/i', $this->qb_select[$i], $m) + ? $m[1] : $this->qb_select[$i]; + } + $select = implode(', ', $select); + } + + return 'SELECT '.$select." FROM (\n\n" + .preg_replace('/^(SELECT( DISTINCT)?)/i', '\\1 ROW_NUMBER() OVER('.trim($orderby).') AS '.$this->escape_identifiers('CI_rownum').', ', $sql) + ."\n\n) ".$this->escape_identifiers('CI_subquery') + ."\nWHERE ".$this->escape_identifiers('CI_rownum').' BETWEEN '.($this->qb_offset + 1).' AND '.$limit; + } + + return preg_replace('/(^\SELECT (DISTINCT)?)/i','\\1 TOP '.$limit.' ', $sql); + } + + // -------------------------------------------------------------------- + + /** + * Insert batch statement + * + * Generates a platform-specific insert string from the supplied data. + * + * @param string $table Table name + * @param array $keys INSERT keys + * @param array $values INSERT values + * @return string|bool + */ + protected function _insert_batch($table, $keys, $values) + { + // Multiple-value inserts are only supported as of SQL Server 2008 + if (version_compare($this->version(), '10', '>=')) + { + return parent::_insert_batch($table, $keys, $values); + } + + return ($this->db_debug) ? $this->display_error('db_unsupported_feature') : FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @return void + */ + protected function _close() + { + sqlsrv_close($this->conn_id); + } + +} diff --git a/system/database/drivers/sqlsrv/sqlsrv_forge.php b/system/database/drivers/sqlsrv/sqlsrv_forge.php new file mode 100644 index 0000000..dca7f75 --- /dev/null +++ b/system/database/drivers/sqlsrv/sqlsrv_forge.php @@ -0,0 +1,150 @@ + 'SMALLINT', + 'SMALLINT' => 'INT', + 'INT' => 'BIGINT', + 'REAL' => 'FLOAT' + ); + + // -------------------------------------------------------------------- + + /** + * ALTER TABLE + * + * @param string $alter_type ALTER type + * @param string $table Table name + * @param mixed $field Column definition + * @return string|string[] + */ + protected function _alter_table($alter_type, $table, $field) + { + if (in_array($alter_type, array('ADD', 'DROP'), TRUE)) + { + return parent::_alter_table($alter_type, $table, $field); + } + + $sql = 'ALTER TABLE '.$this->db->escape_identifiers($table).' ALTER COLUMN '; + $sqls = array(); + for ($i = 0, $c = count($field); $i < $c; $i++) + { + $sqls[] = $sql.$this->_process_column($field[$i]); + } + + return $sqls; + } + + // -------------------------------------------------------------------- + + /** + * Field attribute TYPE + * + * Performs a data type mapping between different databases. + * + * @param array &$attributes + * @return void + */ + protected function _attr_type(&$attributes) + { + if (isset($attributes['CONSTRAINT']) && strpos($attributes['TYPE'], 'INT') !== FALSE) + { + unset($attributes['CONSTRAINT']); + } + + switch (strtoupper($attributes['TYPE'])) + { + case 'MEDIUMINT': + $attributes['TYPE'] = 'INTEGER'; + $attributes['UNSIGNED'] = FALSE; + return; + case 'INTEGER': + $attributes['TYPE'] = 'INT'; + return; + default: return; + } + } + + // -------------------------------------------------------------------- + + /** + * Field attribute AUTO_INCREMENT + * + * @param array &$attributes + * @param array &$field + * @return void + */ + protected function _attr_auto_increment(&$attributes, &$field) + { + if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE && stripos($field['type'], 'int') !== FALSE) + { + $field['auto_increment'] = ' IDENTITY(1,1)'; + } + } + +} diff --git a/system/database/drivers/sqlsrv/sqlsrv_result.php b/system/database/drivers/sqlsrv/sqlsrv_result.php new file mode 100644 index 0000000..a3a582b --- /dev/null +++ b/system/database/drivers/sqlsrv/sqlsrv_result.php @@ -0,0 +1,194 @@ +scrollable = $driver_object->scrollable; + } + + // -------------------------------------------------------------------- + + /** + * Number of rows in the result set + * + * @return int + */ + public function num_rows() + { + // sqlsrv_num_rows() doesn't work with the FORWARD and DYNAMIC cursors (FALSE is the same as FORWARD) + if ( ! in_array($this->scrollable, array(FALSE, SQLSRV_CURSOR_FORWARD, SQLSRV_CURSOR_DYNAMIC), TRUE)) + { + return parent::num_rows(); + } + + return is_int($this->num_rows) + ? $this->num_rows + : $this->num_rows = sqlsrv_num_rows($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Number of fields in the result set + * + * @return int + */ + public function num_fields() + { + return @sqlsrv_num_fields($this->result_id); + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @return array + */ + public function list_fields() + { + $field_names = array(); + foreach (sqlsrv_field_metadata($this->result_id) as $offset => $field) + { + $field_names[] = $field['Name']; + } + + return $field_names; + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @return array + */ + public function field_data() + { + $retval = array(); + foreach (sqlsrv_field_metadata($this->result_id) as $i => $field) + { + $retval[$i] = new stdClass(); + $retval[$i]->name = $field['Name']; + $retval[$i]->type = $field['Type']; + $retval[$i]->max_length = $field['Size']; + } + + return $retval; + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * @return void + */ + public function free_result() + { + if (is_resource($this->result_id)) + { + sqlsrv_free_stmt($this->result_id); + $this->result_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @return array + */ + protected function _fetch_assoc() + { + return sqlsrv_fetch_array($this->result_id, SQLSRV_FETCH_ASSOC); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @param string $class_name + * @return object + */ + protected function _fetch_object($class_name = 'stdClass') + { + return sqlsrv_fetch_object($this->result_id, $class_name); + } + +} diff --git a/system/database/drivers/sqlsrv/sqlsrv_utility.php b/system/database/drivers/sqlsrv/sqlsrv_utility.php new file mode 100644 index 0000000..e51bc72 --- /dev/null +++ b/system/database/drivers/sqlsrv/sqlsrv_utility.php @@ -0,0 +1,78 @@ +db->display_error('db_unsupported_feature'); + } + +} diff --git a/system/database/index.html b/system/database/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/system/database/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

    Directory access is forbidden.

    + + + diff --git a/system/fonts/index.html b/system/fonts/index.html new file mode 100644 index 0000000..b702fbc --- /dev/null +++ b/system/fonts/index.html @@ -0,0 +1,11 @@ + + + + 403 Forbidden + + + +

    Directory access is forbidden.

    + + + diff --git a/system/fonts/texb.ttf b/system/fonts/texb.ttf new file mode 100644 index 0000000000000000000000000000000000000000..383c88b86b7c17e2e284732af48b2bfc359647ae GIT binary patch literal 143830 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 z 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 n`i '', + 'img_path' => '', + 'img_url' => '', + 'img_width' => '150', + 'img_height' => '30', + 'font_path' => '', + 'expiration' => 7200, + 'word_length' => 8, + 'font_size' => 16, + 'img_id' => '', + 'pool' => '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', + 'colors' => array( + 'background' => array(255,255,255), + 'border' => array(153,102,102), + 'text' => array(204,153,153), + 'grid' => array(255,182,182) + ) + ); + + foreach ($defaults as $key => $val) + { + if ( ! is_array($data) && empty($$key)) + { + $$key = $val; + } + else + { + $$key = isset($data[$key]) ? $data[$key] : $val; + } + } + + if ( ! extension_loaded('gd')) + { + log_message('error', 'create_captcha(): GD extension is not loaded.'); + return FALSE; + } + + if ($img_path === '' OR $img_url === '') + { + log_message('error', 'create_captcha(): $img_path and $img_url are required.'); + return FALSE; + } + + if ( ! is_dir($img_path) OR ! is_really_writable($img_path)) + { + log_message('error', "create_captcha(): '{$img_path}' is not a dir, nor is it writable."); + return FALSE; + } + + // ----------------------------------- + // Remove old images + // ----------------------------------- + + $now = microtime(TRUE); + + $current_dir = @opendir($img_path); + while ($filename = @readdir($current_dir)) + { + if (in_array(substr($filename, -4), array('.jpg', '.png')) + && (str_replace(array('.jpg', '.png'), '', $filename) + $expiration) < $now) + { + @unlink($img_path.$filename); + } + } + + @closedir($current_dir); + + // ----------------------------------- + // Do we have a "word" yet? + // ----------------------------------- + + if (empty($word)) + { + $word = ''; + $pool_length = strlen($pool); + $rand_max = $pool_length - 1; + + // PHP7 or a suitable polyfill + if (function_exists('random_int')) + { + try + { + for ($i = 0; $i < $word_length; $i++) + { + $word .= $pool[random_int(0, $rand_max)]; + } + } + catch (Exception $e) + { + // This means fallback to the next possible + // alternative to random_int() + $word = ''; + } + } + } + + if (empty($word)) + { + // Nobody will have a larger character pool than + // 256 characters, but let's handle it just in case ... + // + // No, I do not care that the fallback to mt_rand() can + // handle it; if you trigger this, you're very obviously + // trying to break it. -- Narf + if ($pool_length > 256) + { + return FALSE; + } + + // We'll try using the operating system's PRNG first, + // which we can access through CI_Security::get_random_bytes() + $security = get_instance()->security; + + // To avoid numerous get_random_bytes() calls, we'll + // just try fetching as much bytes as we need at once. + if (($bytes = $security->get_random_bytes($pool_length)) !== FALSE) + { + $byte_index = $word_index = 0; + while ($word_index < $word_length) + { + // Do we have more random data to use? + // It could be exhausted by previous iterations + // ignoring bytes higher than $rand_max. + if ($byte_index === $pool_length) + { + // No failures should be possible if the + // first get_random_bytes() call didn't + // return FALSE, but still ... + for ($i = 0; $i < 5; $i++) + { + if (($bytes = $security->get_random_bytes($pool_length)) === FALSE) + { + continue; + } + + $byte_index = 0; + break; + } + + if ($bytes === FALSE) + { + // Sadly, this means fallback to mt_rand() + $word = ''; + break; + } + } + + list(, $rand_index) = unpack('C', $bytes[$byte_index++]); + if ($rand_index > $rand_max) + { + continue; + } + + $word .= $pool[$rand_index]; + $word_index++; + } + } + } + + if (empty($word)) + { + for ($i = 0; $i < $word_length; $i++) + { + $word .= $pool[mt_rand(0, $rand_max)]; + } + } + elseif ( ! is_string($word)) + { + $word = (string) $word; + } + + // ----------------------------------- + // Determine angle and position + // ----------------------------------- + $length = strlen($word); + $angle = ($length >= 6) ? mt_rand(-($length-6), ($length-6)) : 0; + $x_axis = mt_rand(6, (360/$length)-16); + $y_axis = ($angle >= 0) ? mt_rand($img_height, $img_width) : mt_rand(6, $img_height); + + // Create image + // PHP.net recommends imagecreatetruecolor(), but it isn't always available + $im = function_exists('imagecreatetruecolor') + ? imagecreatetruecolor($img_width, $img_height) + : imagecreate($img_width, $img_height); + + // ----------------------------------- + // Assign colors + // ---------------------------------- + + is_array($colors) OR $colors = $defaults['colors']; + + foreach (array_keys($defaults['colors']) as $key) + { + // Check for a possible missing value + is_array($colors[$key]) OR $colors[$key] = $defaults['colors'][$key]; + $colors[$key] = imagecolorallocate($im, $colors[$key][0], $colors[$key][1], $colors[$key][2]); + } + + // Create the rectangle + ImageFilledRectangle($im, 0, 0, $img_width, $img_height, $colors['background']); + + // ----------------------------------- + // Create the spiral pattern + // ----------------------------------- + $theta = 1; + $thetac = 7; + $radius = 16; + $circles = 20; + $points = 32; + + for ($i = 0, $cp = ($circles * $points) - 1; $i < $cp; $i++) + { + $theta += $thetac; + $rad = $radius * ($i / $points); + $x = ($rad * cos($theta)) + $x_axis; + $y = ($rad * sin($theta)) + $y_axis; + $theta += $thetac; + $rad1 = $radius * (($i + 1) / $points); + $x1 = ($rad1 * cos($theta)) + $x_axis; + $y1 = ($rad1 * sin($theta)) + $y_axis; + imageline($im, $x, $y, $x1, $y1, $colors['grid']); + $theta -= $thetac; + } + + // ----------------------------------- + // Write the text + // ----------------------------------- + + $use_font = ($font_path !== '' && file_exists($font_path) && function_exists('imagettftext')); + if ($use_font === FALSE) + { + ($font_size > 5) && $font_size = 5; + $x = mt_rand(0, $img_width / ($length / 3)); + $y = 0; + } + else + { + ($font_size > 30) && $font_size = 30; + $x = mt_rand(0, $img_width / ($length / 1.5)); + $y = $font_size + 2; + } + + for ($i = 0; $i < $length; $i++) + { + if ($use_font === FALSE) + { + $y = mt_rand(0 , $img_height / 2); + imagestring($im, $font_size, $x, $y, $word[$i], $colors['text']); + $x += ($font_size * 2); + } + else + { + $y = mt_rand($img_height / 2, $img_height - 3); + imagettftext($im, $font_size, $angle, $x, $y, $colors['text'], $font_path, $word[$i]); + $x += $font_size; + } + } + + // Create the border + imagerectangle($im, 0, 0, $img_width - 1, $img_height - 1, $colors['border']); + + // ----------------------------------- + // Generate the image + // ----------------------------------- + $img_url = rtrim($img_url, '/').'/'; + + if (function_exists('imagejpeg')) + { + $img_filename = $now.'.jpg'; + imagejpeg($im, $img_path.$img_filename); + } + elseif (function_exists('imagepng')) + { + $img_filename = $now.'.png'; + imagepng($im, $img_path.$img_filename); + } + else + { + return FALSE; + } + + $img = ' '; + ImageDestroy($im); + + return array('word' => $word, 'time' => $now, 'image' => $img, 'filename' => $img_filename); + } +} diff --git a/system/helpers/cookie_helper.php b/system/helpers/cookie_helper.php new file mode 100644 index 0000000..abe492f --- /dev/null +++ b/system/helpers/cookie_helper.php @@ -0,0 +1,114 @@ +input->set_cookie($name, $value, $expire, $domain, $path, $prefix, $secure, $httponly); + } +} + +// -------------------------------------------------------------------- + +if ( ! function_exists('get_cookie')) +{ + /** + * Fetch an item from the COOKIE array + * + * @param string + * @param bool + * @return mixed + */ + function get_cookie($index, $xss_clean = NULL) + { + is_bool($xss_clean) OR $xss_clean = (config_item('global_xss_filtering') === TRUE); + $prefix = isset($_COOKIE[$index]) ? '' : config_item('cookie_prefix'); + return get_instance()->input->cookie($prefix.$index, $xss_clean); + } +} + +// -------------------------------------------------------------------- + +if ( ! function_exists('delete_cookie')) +{ + /** + * Delete a COOKIE + * + * @param mixed + * @param string the cookie domain. Usually: .yourdomain.com + * @param string the cookie path + * @param string the cookie prefix + * @return void + */ + function delete_cookie($name, $domain = '', $path = '/', $prefix = '') + { + set_cookie($name, '', '', $domain, $path, $prefix); + } +} diff --git a/system/helpers/date_helper.php b/system/helpers/date_helper.php new file mode 100644 index 0000000..5b2f3e0 --- /dev/null +++ b/system/helpers/date_helper.php @@ -0,0 +1,743 @@ +format('j-n-Y G:i:s'), '%d-%d-%d %d:%d:%d', $day, $month, $year, $hour, $minute, $second); + + return mktime($hour, $minute, $second, $month, $day, $year); + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('mdate')) +{ + /** + * Convert MySQL Style Datecodes + * + * This function is identical to PHPs date() function, + * except that it allows date codes to be formatted using + * the MySQL style, where each code letter is preceded + * with a percent sign: %Y %m %d etc... + * + * The benefit of doing dates this way is that you don't + * have to worry about escaping your text letters that + * match the date codes. + * + * @param string + * @param int + * @return int + */ + function mdate($datestr = '', $time = '') + { + if ($datestr === '') + { + return ''; + } + elseif (empty($time)) + { + $time = now(); + } + + $datestr = str_replace( + '%\\', + '', + preg_replace('/([a-z]+?){1}/i', '\\\\\\1', $datestr) + ); + + return date($datestr, $time); + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('standard_date')) +{ + /** + * Standard Date + * + * Returns a date formatted according to the submitted standard. + * + * As of PHP 5.2, the DateTime extension provides constants that + * serve for the exact same purpose and are used with date(). + * + * @todo Remove in version 3.1+. + * @deprecated 3.0.0 Use PHP's native date() instead. + * @link https://www.php.net/manual/en/class.datetime.php#datetime.constants.types + * + * @example date(DATE_RFC822, now()); // default + * @example date(DATE_W3C, $time); // a different format and time + * + * @param string $fmt = 'DATE_RFC822' the chosen format + * @param int $time = NULL Unix timestamp + * @return string + */ + function standard_date($fmt = 'DATE_RFC822', $time = NULL) + { + if (empty($time)) + { + $time = now(); + } + + // Procedural style pre-defined constants from the DateTime extension + if (strpos($fmt, 'DATE_') !== 0 OR defined($fmt) === FALSE) + { + return FALSE; + } + + return date(constant($fmt), $time); + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('timespan')) +{ + /** + * Timespan + * + * Returns a span of seconds in this format: + * 10 days 14 hours 36 minutes 47 seconds + * + * @param int a number of seconds + * @param int Unix timestamp + * @param int a number of display units + * @return string + */ + function timespan($seconds = 1, $time = '', $units = 7) + { + $CI =& get_instance(); + $CI->lang->load('date'); + + is_numeric($seconds) OR $seconds = 1; + is_numeric($time) OR $time = time(); + is_numeric($units) OR $units = 7; + + $seconds = ($time <= $seconds) ? 1 : $time - $seconds; + + $str = array(); + $years = floor($seconds / 31557600); + + if ($years > 0) + { + $str[] = $years.' '.$CI->lang->line($years > 1 ? 'date_years' : 'date_year'); + } + + $seconds -= $years * 31557600; + $months = floor($seconds / 2629743); + + if (count($str) < $units && ($years > 0 OR $months > 0)) + { + if ($months > 0) + { + $str[] = $months.' '.$CI->lang->line($months > 1 ? 'date_months' : 'date_month'); + } + + $seconds -= $months * 2629743; + } + + $weeks = floor($seconds / 604800); + + if (count($str) < $units && ($years > 0 OR $months > 0 OR $weeks > 0)) + { + if ($weeks > 0) + { + $str[] = $weeks.' '.$CI->lang->line($weeks > 1 ? 'date_weeks' : 'date_week'); + } + + $seconds -= $weeks * 604800; + } + + $days = floor($seconds / 86400); + + if (count($str) < $units && ($months > 0 OR $weeks > 0 OR $days > 0)) + { + if ($days > 0) + { + $str[] = $days.' '.$CI->lang->line($days > 1 ? 'date_days' : 'date_day'); + } + + $seconds -= $days * 86400; + } + + $hours = floor($seconds / 3600); + + if (count($str) < $units && ($days > 0 OR $hours > 0)) + { + if ($hours > 0) + { + $str[] = $hours.' '.$CI->lang->line($hours > 1 ? 'date_hours' : 'date_hour'); + } + + $seconds -= $hours * 3600; + } + + $minutes = floor($seconds / 60); + + if (count($str) < $units && ($days > 0 OR $hours > 0 OR $minutes > 0)) + { + if ($minutes > 0) + { + $str[] = $minutes.' '.$CI->lang->line($minutes > 1 ? 'date_minutes' : 'date_minute'); + } + + $seconds -= $minutes * 60; + } + + if (count($str) === 0) + { + $str[] = $seconds.' '.$CI->lang->line($seconds > 1 ? 'date_seconds' : 'date_second'); + } + + return implode(', ', $str); + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('days_in_month')) +{ + /** + * Number of days in a month + * + * Takes a month/year as input and returns the number of days + * for the given month/year. Takes leap years into consideration. + * + * @param int a numeric month + * @param int a numeric year + * @return int + */ + function days_in_month($month = 0, $year = '') + { + if ($month < 1 OR $month > 12) + { + return 0; + } + elseif ( ! is_numeric($year) OR strlen($year) !== 4) + { + $year = date('Y'); + } + + if (defined('CAL_GREGORIAN')) + { + return cal_days_in_month(CAL_GREGORIAN, $month, $year); + } + + if ($year >= 1970) + { + return (int) date('t', mktime(12, 0, 0, $month, 1, $year)); + } + + if ($month == 2) + { + if ($year % 400 === 0 OR ($year % 4 === 0 && $year % 100 !== 0)) + { + return 29; + } + } + + $days_in_month = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); + return $days_in_month[$month - 1]; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('local_to_gmt')) +{ + /** + * Converts a local Unix timestamp to GMT + * + * @param int Unix timestamp + * @return int + */ + function local_to_gmt($time = '') + { + if ($time === '') + { + $time = time(); + } + + return mktime( + gmdate('G', $time), + gmdate('i', $time), + gmdate('s', $time), + gmdate('n', $time), + gmdate('j', $time), + gmdate('Y', $time) + ); + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('gmt_to_local')) +{ + /** + * Converts GMT time to a localized value + * + * Takes a Unix timestamp (in GMT) as input, and returns + * at the local value based on the timezone and DST setting + * submitted + * + * @param int Unix timestamp + * @param string timezone + * @param bool whether DST is active + * @return int + */ + function gmt_to_local($time = '', $timezone = 'UTC', $dst = FALSE) + { + if ($time === '') + { + return now(); + } + + $time += timezones($timezone) * 3600; + + return ($dst === TRUE) ? $time + 3600 : $time; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('mysql_to_unix')) +{ + /** + * Converts a MySQL Timestamp to Unix + * + * @param int MySQL timestamp YYYY-MM-DD HH:MM:SS + * @return int Unix timstamp + */ + function mysql_to_unix($time = '') + { + // We'll remove certain characters for backward compatibility + // since the formatting changed with MySQL 4.1 + // YYYY-MM-DD HH:MM:SS + + $time = str_replace(array('-', ':', ' '), '', $time); + + // YYYYMMDDHHMMSS + return mktime( + substr($time, 8, 2), + substr($time, 10, 2), + substr($time, 12, 2), + substr($time, 4, 2), + substr($time, 6, 2), + substr($time, 0, 4) + ); + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('unix_to_human')) +{ + /** + * Unix to "Human" + * + * Formats Unix timestamp to the following prototype: 2006-08-21 11:35 PM + * + * @param int Unix timestamp + * @param bool whether to show seconds + * @param string format: us or euro + * @return string + */ + function unix_to_human($time = '', $seconds = FALSE, $fmt = 'us') + { + $r = date('Y', $time).'-'.date('m', $time).'-'.date('d', $time).' '; + + if ($fmt === 'us') + { + $r .= date('h', $time).':'.date('i', $time); + } + else + { + $r .= date('H', $time).':'.date('i', $time); + } + + if ($seconds) + { + $r .= ':'.date('s', $time); + } + + if ($fmt === 'us') + { + return $r.' '.date('A', $time); + } + + return $r; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('human_to_unix')) +{ + /** + * Convert "human" date to GMT + * + * Reverses the above process + * + * @param string format: us or euro + * @return int + */ + function human_to_unix($datestr = '') + { + if ($datestr === '') + { + return FALSE; + } + + $datestr = preg_replace('/\040+/', ' ', trim($datestr)); + + if ( ! preg_match('/^(\d{2}|\d{4})\-[0-9]{1,2}\-[0-9]{1,2}\s[0-9]{1,2}:[0-9]{1,2}(?::[0-9]{1,2})?(?:\s[AP]M)?$/i', $datestr)) + { + return FALSE; + } + + sscanf($datestr, '%d-%d-%d %s %s', $year, $month, $day, $time, $ampm); + sscanf($time, '%d:%d:%d', $hour, $min, $sec); + isset($sec) OR $sec = 0; + + if (isset($ampm)) + { + $ampm = strtolower($ampm); + + if ($ampm[0] === 'p' && $hour < 12) + { + $hour += 12; + } + elseif ($ampm[0] === 'a' && $hour === 12) + { + $hour = 0; + } + } + + return mktime($hour, $min, $sec, $month, $day, $year); + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('nice_date')) +{ + /** + * Turns many "reasonably-date-like" strings into something + * that is actually useful. This only works for dates after unix epoch. + * + * @deprecated 3.1.3 Use DateTime::createFromFormat($input_format, $input)->format($output_format); + * @param string The terribly formatted date-like string + * @param string Date format to return (same as php date function) + * @return string + */ + function nice_date($bad_date = '', $format = FALSE) + { + if (empty($bad_date)) + { + return 'Unknown'; + } + elseif (empty($format)) + { + $format = 'U'; + } + + // Date like: YYYYMM + if (preg_match('/^\d{6}$/i', $bad_date)) + { + if (in_array(substr($bad_date, 0, 2), array('19', '20'))) + { + $year = substr($bad_date, 0, 4); + $month = substr($bad_date, 4, 2); + } + else + { + $month = substr($bad_date, 0, 2); + $year = substr($bad_date, 2, 4); + } + + return date($format, strtotime($year.'-'.$month.'-01')); + } + + // Date Like: YYYYMMDD + if (preg_match('/^\d{8}$/i', $bad_date, $matches)) + { + return DateTime::createFromFormat('Ymd', $bad_date)->format($format); + } + + // Date Like: MM-DD-YYYY __or__ M-D-YYYY (or anything in between) + if (preg_match('/^(\d{1,2})-(\d{1,2})-(\d{4})$/i', $bad_date, $matches)) + { + return date($format, strtotime($matches[3].'-'.$matches[1].'-'.$matches[2])); + } + + // Any other kind of string, when converted into UNIX time, + // produces "0 seconds after epoc..." is probably bad... + // return "Invalid Date". + if (date('U', strtotime($bad_date)) === '0') + { + return 'Invalid Date'; + } + + // It's probably a valid-ish date format already + return date($format, strtotime($bad_date)); + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('timezone_menu')) +{ + /** + * Timezone Menu + * + * Generates a drop-down menu of timezones. + * + * @param string timezone + * @param string classname + * @param string menu name + * @param mixed attributes + * @return string + */ + function timezone_menu($default = 'UTC', $class = '', $name = 'timezones', $attributes = '') + { + $CI =& get_instance(); + $CI->lang->load('date'); + + $default = ($default === 'GMT') ? 'UTC' : $default; + + $menu = ''; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('timezones')) +{ + /** + * Timezones + * + * Returns an array of timezones. This is a helper function + * for various other ones in this library + * + * @param string timezone + * @return string + */ + function timezones($tz = '') + { + // Note: Don't change the order of these even though + // some items appear to be in the wrong order + + $zones = array( + 'UM12' => -12, + 'UM11' => -11, + 'UM10' => -10, + 'UM95' => -9.5, + 'UM9' => -9, + 'UM8' => -8, + 'UM7' => -7, + 'UM6' => -6, + 'UM5' => -5, + 'UM45' => -4.5, + 'UM4' => -4, + 'UM35' => -3.5, + 'UM3' => -3, + 'UM2' => -2, + 'UM1' => -1, + 'UTC' => 0, + 'UP1' => +1, + 'UP2' => +2, + 'UP3' => +3, + 'UP35' => +3.5, + 'UP4' => +4, + 'UP45' => +4.5, + 'UP5' => +5, + 'UP55' => +5.5, + 'UP575' => +5.75, + 'UP6' => +6, + 'UP65' => +6.5, + 'UP7' => +7, + 'UP8' => +8, + 'UP875' => +8.75, + 'UP9' => +9, + 'UP95' => +9.5, + 'UP10' => +10, + 'UP105' => +10.5, + 'UP11' => +11, + 'UP115' => +11.5, + 'UP12' => +12, + 'UP1275' => +12.75, + 'UP13' => +13, + 'UP14' => +14 + ); + + if ($tz === '') + { + return $zones; + } + + return isset($zones[$tz]) ? $zones[$tz] : 0; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('date_range')) +{ + /** + * Date range + * + * Returns a list of dates within a specified period. + * + * @param int unix_start UNIX timestamp of period start date + * @param int unix_end|days UNIX timestamp of period end date + * or interval in days. + * @param mixed is_unix Specifies whether the second parameter + * is a UNIX timestamp or a day interval + * - TRUE or 'unix' for a timestamp + * - FALSE or 'days' for an interval + * @param string date_format Output date format, same as in date() + * @return array + */ + function date_range($unix_start = '', $mixed = '', $is_unix = TRUE, $format = 'Y-m-d') + { + if ($unix_start == '' OR $mixed == '' OR $format == '') + { + return FALSE; + } + + $is_unix = ! ( ! $is_unix OR $is_unix === 'days'); + + // Validate input and try strtotime() on invalid timestamps/intervals, just in case + if ( ( ! ctype_digit((string) $unix_start) && ($unix_start = @strtotime($unix_start)) === FALSE) + OR ( ! ctype_digit((string) $mixed) && ($is_unix === FALSE OR ($mixed = @strtotime($mixed)) === FALSE)) + OR ($is_unix === TRUE && $mixed < $unix_start)) + { + return FALSE; + } + + if ($is_unix && ($unix_start == $mixed OR date($format, $unix_start) === date($format, $mixed))) + { + return array(date($format, $unix_start)); + } + + $range = array(); + + $from = new DateTime(); + $from->setTimestamp($unix_start); + + if ($is_unix) + { + $arg = new DateTime(); + $arg->setTimestamp($mixed); + } + else + { + $arg = (int) $mixed; + } + + $period = new DatePeriod($from, new DateInterval('P1D'), $arg); + foreach ($period as $date) + { + $range[] = $date->format($format); + } + + /* If a period end date was passed to the DatePeriod constructor, it might not + * be in our results. Not sure if this is a bug or it's just possible because + * the end date might actually be less than 24 hours away from the previously + * generated DateTime object, but either way - we have to append it manually. + */ + if ( ! is_int($arg) && $range[count($range) - 1] !== $arg->format($format)) + { + $range[] = $arg->format($format); + } + + return $range; + } +} diff --git a/system/helpers/directory_helper.php b/system/helpers/directory_helper.php new file mode 100644 index 0000000..d747a96 --- /dev/null +++ b/system/helpers/directory_helper.php @@ -0,0 +1,102 @@ + 0) && is_dir($source_dir.$file)) + { + $filedata[$file] = directory_map($source_dir.$file, $new_depth, $hidden); + } + else + { + $filedata[] = $file; + } + } + + closedir($fp); + return $filedata; + } + + return FALSE; + } +} diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php new file mode 100644 index 0000000..9b361c4 --- /dev/null +++ b/system/helpers/download_helper.php @@ -0,0 +1,159 @@ + 0) + ? @rmdir($path) + : TRUE; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('get_filenames')) +{ + /** + * Get Filenames + * + * Reads the specified directory and builds an array containing the filenames. + * Any sub-folders contained within the specified path are read as well. + * + * @param string path to source + * @param bool whether to include the path as part of the filename + * @param bool internal variable to determine recursion status - do not use in calls + * @return array + */ + function get_filenames($source_dir, $include_path = FALSE, $_recursion = FALSE) + { + static $_filedata = array(); + + if ($fp = @opendir($source_dir)) + { + // reset the array and make sure $source_dir has a trailing slash on the initial call + if ($_recursion === FALSE) + { + $_filedata = array(); + $source_dir = rtrim(realpath($source_dir), DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR; + } + + while (FALSE !== ($file = readdir($fp))) + { + if (is_dir($source_dir.$file) && $file[0] !== '.') + { + get_filenames($source_dir.$file.DIRECTORY_SEPARATOR, $include_path, TRUE); + } + elseif ($file[0] !== '.') + { + $_filedata[] = ($include_path === TRUE) ? $source_dir.$file : $file; + } + } + + closedir($fp); + return $_filedata; + } + + return FALSE; + } +} + +// -------------------------------------------------------------------- + +if ( ! function_exists('get_dir_file_info')) +{ + /** + * Get Directory File Information + * + * Reads the specified directory and builds an array containing the filenames, + * filesize, dates, and permissions + * + * Any sub-folders contained within the specified path are read as well. + * + * @param string path to source + * @param bool Look only at the top level directory specified? + * @param bool internal variable to determine recursion status - do not use in calls + * @return array + */ + function get_dir_file_info($source_dir, $top_level_only = TRUE, $_recursion = FALSE) + { + static $_filedata = array(); + $relative_path = $source_dir; + + if ($fp = @opendir($source_dir)) + { + // reset the array and make sure $source_dir has a trailing slash on the initial call + if ($_recursion === FALSE) + { + $_filedata = array(); + $source_dir = rtrim(realpath($source_dir), DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR; + } + + // Used to be foreach (scandir($source_dir, 1) as $file), but scandir() is simply not as fast + while (FALSE !== ($file = readdir($fp))) + { + if (is_dir($source_dir.$file) && $file[0] !== '.' && $top_level_only === FALSE) + { + get_dir_file_info($source_dir.$file.DIRECTORY_SEPARATOR, $top_level_only, TRUE); + } + elseif ($file[0] !== '.') + { + $_filedata[$file] = get_file_info($source_dir.$file); + $_filedata[$file]['relative_path'] = $relative_path; + } + } + + closedir($fp); + return $_filedata; + } + + return FALSE; + } +} + +// -------------------------------------------------------------------- + +if ( ! function_exists('get_file_info')) +{ + /** + * Get File Info + * + * Given a file and path, returns the name, path, size, date modified + * Second parameter allows you to explicitly declare what information you want returned + * Options are: name, server_path, size, date, readable, writable, executable, fileperms + * Returns FALSE if the file cannot be found. + * + * @param string path to file + * @param mixed array or comma separated string of information returned + * @return array + */ + function get_file_info($file, $returned_values = array('name', 'server_path', 'size', 'date')) + { + if ( ! file_exists($file)) + { + return FALSE; + } + + if (is_string($returned_values)) + { + $returned_values = explode(',', $returned_values); + } + + foreach ($returned_values as $key) + { + switch ($key) + { + case 'name': + $fileinfo['name'] = basename($file); + break; + case 'server_path': + $fileinfo['server_path'] = $file; + break; + case 'size': + $fileinfo['size'] = filesize($file); + break; + case 'date': + $fileinfo['date'] = filemtime($file); + break; + case 'readable': + $fileinfo['readable'] = is_readable($file); + break; + case 'writable': + $fileinfo['writable'] = is_really_writable($file); + break; + case 'executable': + $fileinfo['executable'] = is_executable($file); + break; + case 'fileperms': + $fileinfo['fileperms'] = fileperms($file); + break; + } + } + + return $fileinfo; + } +} + +// -------------------------------------------------------------------- + +if ( ! function_exists('get_mime_by_extension')) +{ + /** + * Get Mime by Extension + * + * Translates a file extension into a mime type based on config/mimes.php. + * Returns FALSE if it can't determine the type, or open the mime config file + * + * Note: this is NOT an accurate way of determining file mime types, and is here strictly as a convenience + * It should NOT be trusted, and should certainly NOT be used for security + * + * @param string $filename File name + * @return string + */ + function get_mime_by_extension($filename) + { + static $mimes; + + if ( ! is_array($mimes)) + { + $mimes = get_mimes(); + + if (empty($mimes)) + { + return FALSE; + } + } + + $extension = strtolower(substr(strrchr($filename, '.'), 1)); + + if (isset($mimes[$extension])) + { + return is_array($mimes[$extension]) + ? current($mimes[$extension]) // Multiple mime types, just give the first one + : $mimes[$extension]; + } + + return FALSE; + } +} + +// -------------------------------------------------------------------- + +if ( ! function_exists('symbolic_permissions')) +{ + /** + * Symbolic Permissions + * + * Takes a numeric value representing a file's permissions and returns + * standard symbolic notation representing that value + * + * @param int $perms Permissions + * @return string + */ + function symbolic_permissions($perms) + { + if (($perms & 0xC000) === 0xC000) + { + $symbolic = 's'; // Socket + } + elseif (($perms & 0xA000) === 0xA000) + { + $symbolic = 'l'; // Symbolic Link + } + elseif (($perms & 0x8000) === 0x8000) + { + $symbolic = '-'; // Regular + } + elseif (($perms & 0x6000) === 0x6000) + { + $symbolic = 'b'; // Block special + } + elseif (($perms & 0x4000) === 0x4000) + { + $symbolic = 'd'; // Directory + } + elseif (($perms & 0x2000) === 0x2000) + { + $symbolic = 'c'; // Character special + } + elseif (($perms & 0x1000) === 0x1000) + { + $symbolic = 'p'; // FIFO pipe + } + else + { + $symbolic = 'u'; // Unknown + } + + // Owner + $symbolic .= (($perms & 0x0100) ? 'r' : '-') + .(($perms & 0x0080) ? 'w' : '-') + .(($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x' ) : (($perms & 0x0800) ? 'S' : '-')); + + // Group + $symbolic .= (($perms & 0x0020) ? 'r' : '-') + .(($perms & 0x0010) ? 'w' : '-') + .(($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x' ) : (($perms & 0x0400) ? 'S' : '-')); + + // World + $symbolic .= (($perms & 0x0004) ? 'r' : '-') + .(($perms & 0x0002) ? 'w' : '-') + .(($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x' ) : (($perms & 0x0200) ? 'T' : '-')); + + return $symbolic; + } +} + +// -------------------------------------------------------------------- + +if ( ! function_exists('octal_permissions')) +{ + /** + * Octal Permissions + * + * Takes a numeric value representing a file's permissions and returns + * a three character string representing the file's octal permissions + * + * @param int $perms Permissions + * @return string + */ + function octal_permissions($perms) + { + return substr(sprintf('%o', $perms), -3); + } +} diff --git a/system/helpers/form_helper.php b/system/helpers/form_helper.php new file mode 100644 index 0000000..ba74ff5 --- /dev/null +++ b/system/helpers/form_helper.php @@ -0,0 +1,1056 @@ +config->site_url($CI->uri->uri_string()); + } + // If an action is not a full URL then turn it into one + elseif (strpos($action, '://') === FALSE) + { + $action = $CI->config->site_url($action); + } + + $attributes = _attributes_to_string($attributes); + + if (stripos($attributes, 'method=') === FALSE) + { + $attributes .= ' method="post"'; + } + + if (stripos($attributes, 'accept-charset=') === FALSE) + { + $attributes .= ' accept-charset="'.strtolower(config_item('charset')).'"'; + } + + $form = '
    \n"; + + if (is_array($hidden)) + { + foreach ($hidden as $name => $value) + { + $form .= ''."\n"; + } + } + + // Add CSRF field if enabled, but leave it out for GET requests and requests to external websites + if ($CI->config->item('csrf_protection') === TRUE && strpos($action, $CI->config->base_url()) !== FALSE && ! stripos($form, 'method="get"')) + { + // Prepend/append random-length "white noise" around the CSRF + // token input, as a form of protection against BREACH attacks + if (FALSE !== ($noise = $CI->security->get_random_bytes(1))) + { + list(, $noise) = unpack('c', $noise); + } + else + { + $noise = mt_rand(-128, 127); + } + + // Prepend if $noise has a negative value, append if positive, do nothing for zero + $prepend = $append = ''; + if ($noise < 0) + { + $prepend = str_repeat(" ", abs($noise)); + } + elseif ($noise > 0) + { + $append = str_repeat(" ", $noise); + } + + $form .= sprintf( + '%s%s%s', + $prepend, + $CI->security->get_csrf_token_name(), + $CI->security->get_csrf_hash(), + $append, + "\n" + ); + } + + return $form; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('form_open_multipart')) +{ + /** + * Form Declaration - Multipart type + * + * Creates the opening portion of the form, but with "multipart/form-data". + * + * @param string the URI segments of the form destination + * @param array a key/value pair of attributes + * @param array a key/value pair hidden data + * @return string + */ + function form_open_multipart($action = '', $attributes = array(), $hidden = array()) + { + if (is_string($attributes)) + { + $attributes .= ' enctype="multipart/form-data"'; + } + else + { + $attributes['enctype'] = 'multipart/form-data'; + } + + return form_open($action, $attributes, $hidden); + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('form_hidden')) +{ + /** + * Hidden Input Field + * + * Generates hidden fields. You can pass a simple key/value string or + * an associative array with multiple values. + * + * @param mixed $name Field name + * @param string $value Field value + * @param bool $recursing + * @return string + */ + function form_hidden($name, $value = '', $recursing = FALSE) + { + static $form; + + if ($recursing === FALSE) + { + $form = "\n"; + } + + if (is_array($name)) + { + foreach ($name as $key => $val) + { + form_hidden($key, $val, TRUE); + } + + return $form; + } + + if ( ! is_array($value)) + { + $form .= '\n"; + } + else + { + foreach ($value as $k => $v) + { + $k = is_int($k) ? '' : $k; + form_hidden($name.'['.$k.']', $v, TRUE); + } + } + + return $form; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('form_input')) +{ + /** + * Text Input Field + * + * @param mixed + * @param string + * @param mixed + * @return string + */ + function form_input($data = '', $value = '', $extra = '') + { + $defaults = array( + 'type' => 'text', + 'name' => is_array($data) ? '' : $data, + 'value' => $value + ); + + return '\n"; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('form_password')) +{ + /** + * Password Field + * + * Identical to the input function but adds the "password" type + * + * @param mixed + * @param string + * @param mixed + * @return string + */ + function form_password($data = '', $value = '', $extra = '') + { + is_array($data) OR $data = array('name' => $data); + $data['type'] = 'password'; + return form_input($data, $value, $extra); + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('form_upload')) +{ + /** + * Upload Field + * + * Identical to the input function but adds the "file" type + * + * @param mixed + * @param string + * @param mixed + * @return string + */ + function form_upload($data = '', $value = '', $extra = '') + { + $defaults = array('type' => 'file', 'name' => ''); + is_array($data) OR $data = array('name' => $data); + $data['type'] = 'file'; + + return '\n"; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('form_textarea')) +{ + /** + * Textarea field + * + * @param mixed $data + * @param string $value + * @param mixed $extra + * @return string + */ + function form_textarea($data = '', $value = '', $extra = '') + { + $defaults = array( + 'name' => is_array($data) ? '' : $data, + 'cols' => '40', + 'rows' => '10' + ); + + if ( ! is_array($data) OR ! isset($data['value'])) + { + $val = $value; + } + else + { + $val = $data['value']; + unset($data['value']); // textareas don't use the value attribute + } + + return '\n"; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('form_multiselect')) +{ + /** + * Multi-select menu + * + * @param string + * @param array + * @param mixed + * @param mixed + * @return string + */ + function form_multiselect($name = '', $options = array(), $selected = array(), $extra = '') + { + $extra = _attributes_to_string($extra); + if (stripos($extra, 'multiple') === FALSE) + { + $extra .= ' multiple="multiple"'; + } + + return form_dropdown($name, $options, $selected, $extra); + } +} + +// -------------------------------------------------------------------- + +if ( ! function_exists('form_dropdown')) +{ + /** + * Drop-down Menu + * + * @param mixed $data + * @param mixed $options + * @param mixed $selected + * @param mixed $extra + * @return string + */ + function form_dropdown($data = '', $options = array(), $selected = array(), $extra = '') + { + $defaults = array(); + + if (is_array($data)) + { + if (isset($data['selected'])) + { + $selected = $data['selected']; + unset($data['selected']); // select tags don't have a selected attribute + } + + if (isset($data['options'])) + { + $options = $data['options']; + unset($data['options']); // select tags don't use an options attribute + } + } + else + { + $defaults = array('name' => $data); + } + + is_array($selected) OR $selected = array($selected); + is_array($options) OR $options = array($options); + + // If no selected state was submitted we will attempt to set it automatically + if (empty($selected)) + { + if (is_array($data)) + { + if (isset($data['name'], $_POST[$data['name']])) + { + $selected = array($_POST[$data['name']]); + } + } + elseif (isset($_POST[$data])) + { + $selected = array($_POST[$data]); + } + } + + $extra = _attributes_to_string($extra); + + $multiple = (count($selected) > 1 && stripos($extra, 'multiple') === FALSE) ? ' multiple="multiple"' : ''; + + $form = '\n"; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('form_checkbox')) +{ + /** + * Checkbox Field + * + * @param mixed + * @param string + * @param bool + * @param mixed + * @return string + */ + function form_checkbox($data = '', $value = '', $checked = FALSE, $extra = '') + { + $defaults = array('type' => 'checkbox', 'name' => ( ! is_array($data) ? $data : ''), 'value' => $value); + + if (is_array($data) && array_key_exists('checked', $data)) + { + $checked = $data['checked']; + + if ($checked == FALSE) + { + unset($data['checked']); + } + else + { + $data['checked'] = 'checked'; + } + } + + if ($checked == TRUE) + { + $defaults['checked'] = 'checked'; + } + else + { + unset($defaults['checked']); + } + + return '\n"; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('form_radio')) +{ + /** + * Radio Button + * + * @param mixed + * @param string + * @param bool + * @param mixed + * @return string + */ + function form_radio($data = '', $value = '', $checked = FALSE, $extra = '') + { + is_array($data) OR $data = array('name' => $data); + $data['type'] = 'radio'; + + return form_checkbox($data, $value, $checked, $extra); + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('form_submit')) +{ + /** + * Submit Button + * + * @param mixed + * @param string + * @param mixed + * @return string + */ + function form_submit($data = '', $value = '', $extra = '') + { + $defaults = array( + 'type' => 'submit', + 'name' => is_array($data) ? '' : $data, + 'value' => $value + ); + + return '\n"; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('form_reset')) +{ + /** + * Reset Button + * + * @param mixed + * @param string + * @param mixed + * @return string + */ + function form_reset($data = '', $value = '', $extra = '') + { + $defaults = array( + 'type' => 'reset', + 'name' => is_array($data) ? '' : $data, + 'value' => $value + ); + + return '\n"; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('form_button')) +{ + /** + * Form Button + * + * @param mixed + * @param string + * @param mixed + * @return string + */ + function form_button($data = '', $content = '', $extra = '') + { + $defaults = array( + 'name' => is_array($data) ? '' : $data, + 'type' => 'button' + ); + + if (is_array($data) && isset($data['content'])) + { + $content = $data['content']; + unset($data['content']); // content is not an attribute + } + + return '\n"; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('form_label')) +{ + /** + * Form Label Tag + * + * @param string The text to appear onscreen + * @param string The id the label applies to + * @param mixed Additional attributes + * @return string + */ + function form_label($label_text = '', $id = '', $attributes = array()) + { + + $label = ''.$label_text.''; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('form_fieldset')) +{ + /** + * Fieldset Tag + * + * Used to produce
    text. To close fieldset + * use form_fieldset_close() + * + * @param string The legend text + * @param array Additional attributes + * @return string + */ + function form_fieldset($legend_text = '', $attributes = array()) + { + $fieldset = '\n"; + if ($legend_text !== '') + { + return $fieldset.''.$legend_text."\n"; + } + + return $fieldset; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('form_fieldset_close')) +{ + /** + * Fieldset Close Tag + * + * @param string + * @return string + */ + function form_fieldset_close($extra = '') + { + return '
    '.$extra; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('form_close')) +{ + /** + * Form Close Tag + * + * @param string + * @return string + */ + function form_close($extra = '') + { + return ''.$extra; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('form_prep')) +{ + /** + * Form Prep + * + * Formats text so that it can be safely placed in a form field in the event it has HTML tags. + * + * @deprecated 3.0.0 An alias for html_escape() + * @param string|string[] $str Value to escape + * @return string|string[] Escaped values + */ + function form_prep($str) + { + return html_escape($str, TRUE); + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('set_value')) +{ + /** + * Form Value + * + * Grabs a value from the POST array for the specified field so you can + * re-populate an input field or textarea. If Form Validation + * is active it retrieves the info from the validation class + * + * @param string $field Field name + * @param string $default Default value + * @param bool $html_escape Whether to escape HTML special characters or not + * @return string + */ + function set_value($field, $default = '', $html_escape = TRUE) + { + $CI =& get_instance(); + + $value = (isset($CI->form_validation) && is_object($CI->form_validation) && $CI->form_validation->has_rule($field)) + ? $CI->form_validation->set_value($field, $default) + : $CI->input->post($field, FALSE); + + isset($value) OR $value = $default; + return ($html_escape) ? html_escape($value) : $value; + } +} + +// ------------------------------------------------------------------------ + +if ( ! function_exists('set_select')) +{ + /** + * Set Select + * + * Let's you set the selected value of a

    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

    lokcNJw}N5d!fN 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 yaDDwIgHL^|O2eV`aAQv> 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ν|&P$)yi=4q%DKRuy|)bB`}8R<+Fh)P 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