{"id":19901340,"url":"https://github.com/lissy93/usermonkey","last_synced_at":"2026-02-25T22:03:43.822Z","repository":{"id":9990475,"uuid":"12021293","full_name":"Lissy93/usermonkey","owner":"Lissy93","description":"🐒 A complete user system written in PHP","archived":false,"fork":false,"pushed_at":"2022-12-06T17:56:50.000Z","size":484,"stargazers_count":17,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-26T13:54:58.379Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lissy93.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-08-10T13:50:03.000Z","updated_at":"2025-12-28T17:47:18.000Z","dependencies_parsed_at":"2023-01-11T20:13:50.702Z","dependency_job_id":null,"html_url":"https://github.com/Lissy93/usermonkey","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Lissy93/usermonkey","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lissy93%2Fusermonkey","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lissy93%2Fusermonkey/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lissy93%2Fusermonkey/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lissy93%2Fusermonkey/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lissy93","download_url":"https://codeload.github.com/Lissy93/usermonkey/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lissy93%2Fusermonkey/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29842855,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T21:18:31.832Z","status":"ssl_error","status_checked_at":"2026-02-25T21:18:29.265Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T20:14:41.863Z","updated_at":"2026-02-25T22:03:43.809Z","avatar_url":"https://github.com/Lissy93.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e🍌 User Monkey\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  \u003ci\u003eA complete user-management system for PHP apps\u003c/i\u003e\u003cbr\u003e\n  \u003cimg src=\"https://github.com/Lissy93/usermonkey/raw/master/DEMO/user-monkey/img/NavLogo.png\" /\u003e\n\u003c/p\u003e\n\n\u003e **Warning** This repository is no longer maintained! \u003cbr\u003e\n\u003e For more info, see [Project Update](#project-update) and [Alternatives](#alternatives) ↓\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eContents\u003c/b\u003e\u003c/summary\u003e\n\n- [Intro](#about)\n  - [Features](#features)\n  - [Demo](#demo)\n  - [Project Update](#project-update)\n  - [Alternatives](#alternatives)\n- [Usage Guide](#getting-started)\n  - [User Registration](#register-new-user)\n  - [Authentication](#log-in-user)\n  - [Logging Out](#log-out)\n  - [Resetting Password](#reset-password)\n  - [Updating Email Address](#change-users-email-address)\n  - [Updating Password](#change-users-password)\n  - [Deleting Account](#delete-users-account)\n  - [Sending Activation Email](#send-activation-email)\n  - [Account Verification](#verify-users-account)\n- [Screenshots](#frontend)\n- [Contributing](#contributing)\n- [License](#license)\n\n\u003c/details\u003e\n\n## About\n\nUser Monkey is a plug-and-play complete user-management system written in PHP and bundled into a single file. It enables you to easily add support for features where user sign up is required, such as posts/ comments, paywalled content, saving preferences, spam reduction, etc. All the commonly required features are included as standard and there's also an optional UI.\n\n#### Features\n\n- Registration\n- Log in / Log out\n- Account Deletion\n- Password Resets\n- Account Verification\n- Editing Account Info\n- Link Social Media Accounts\n- Gravatar Picture Support\n\nThere's also an optional UI, which includes the screens for all the above opperations (registration, authentication, profile page, account settings, etc)\n\n#### Demo\n~A live demo of the running project can be viewed at: [code.as93.net/user-monkey](https://web.archive.org/web/20150809214155/http://code.as93.net/user-monkey/)~ (demo no longer available)\n\n#### Project Update\nThis app was developed in 2010-12, and used across several of my apps, and other peoples projects for almost 10 years after. It served it's purpose as a simple single-file user-management system, but times have moved on, and there are now some much better alternatives out there. I strongly recommend against using this project in any production application.\n\n#### Alternatives\nIf your looking for a PHP-based user management system, I'd recomend either [UserFrosting](https://github.com/userfrosting/UserFrosting) or [UserSpice](https://userspice.com/). Both are widley used, fully tested, clearly documented and serve their purpose well.\n\n---\n\n## Usage\n\n### Getting Started\n\n```php\n/* First start a session, if not already started */\nif(session_id() == '') { session_start(); } \n\n/* Next include the PHP classes (see demo folder for Db class)*/\ninclude_once $_SERVER['DOCUMENT_ROOT'].\"/user-monkey/php/Db.class.php\";         // Database Class\ninclude_once $_SERVER['DOCUMENT_ROOT'].\"/user-monkey/php/UserActions.class.php\";// User Actions Class\n\n/* Connect to the database */\n$db = new Db();\n$db-\u003econnect();\n\n/* Create an instance of the UserActions class */\n$ua = new UserActions();\n```\n\t\n\n### Register New User\n\n```php\n$register = new Register(); \n$success = $register-\u003eregisterUser($username,$email,$password,\"standard\"); \n```\n\n### Log In User\n\n```php\n$logIn = new Login();\n$success = $logIn-\u003estart($username, $password);\n```\n\t\n### Log Out\n```php\n$ua = new UserActions();\n$ua-\u003elogOut();\n```\t\n\t\n### Reset Password\n```php\n$settings = new UserActions();\n$success = $settings-\u003eresetPassword($userId, $password);\n```\n\t\n### Change Users Email Address\n```php\n$settings = new UserSettings();\n$success = $settings-\u003echangeEmail($userId, $password,  $email);\n```\n\t\n### Change Users Password\n```php\n$settings = new UserSettings();\n$success = $settings-\u003echangeUsername($userId, $password,  $username);\n```\t\n\t\n### Delete Users Account\n```php\n$settings = new UserSettings();\n$success = $settings-\u003edeleteAccount($userId, $password);\n```\n\t\n### Send Activation Email\n```php\n$activationObject = new VerifyAccount($userId);\n$activationObject-\u003esetUrl(\"http://example.com\");\n$activationObject-\u003esendActivationEmail();\n```\t\n\t\n### Verify Users Account\n```php\n$act = new VerifyAccount($userId);\n$success = $act-\u003eattemptActivate($code);\n```\n\nIf `$success` is false, then the `$object-\u003egetMessage();` method can be called that will return a short string informing why the action could not be completed (e.g. _\"Unable to create account - username already taken\"_). For example:\n\n```php\t\n$register = new Register(); \n$success = $register-\u003eregisterUser($username,$email,$password,\"standard\"); \nif(!$success){\n  echo $register-\u003egetMessage();\n}\n```\n\n---\t\n\t\n## Frontend\n\nThere is an optional UI included (see [source](https://github.com/Lissy93/usermonkey/tree/master/DEMO/user-monkey)). It's themable, but here's some screenshots of it running...\n\n\u003cp align=\"center\"\u003e\n\u003ci\u003eLog-in Screen\u003c/i\u003e\u003cbr\u003e\n\u003cimg width=\"600\" src=\"https://i.imgur.com/PdE94tb.png\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ci\u003eVerification Screen\u003c/i\u003e\u003cbr\u003e\n\u003cimg width=\"600\" src=\"https://i.imgur.com/YYdH6na.png\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ci\u003eAccount Settings Screen\u003c/i\u003e\u003cbr\u003e\n\u003cimg width=\"600\" src=\"https://i.imgur.com/cchxJgo.png\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ci\u003eProfile Screen\u003c/i\u003e\u003cbr\u003e\n\u003cimg width=\"600\" src=\"https://i.imgur.com/BtNW4Lc.png\" /\u003e\n\u003c/p\u003e\n\n---\n\n## Contributing\n\nContributions are welcome :)\n\nChanges can be submitted by opening a pull request - if you're new to GitHub, see the [documentation](https://docs.github.com/en/get-started/quickstart/contributing-to-projects) for a step-by-step guide on how to submit edits to projects. All submissions must abide by the [Contributor Covenant Code of Conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/).\n\n---\n\n## License\n\n\u003e _**[User Monkey](https://github.com/Lissy93/usermonkey)** is licensed under [MIT](https://github.com/Lissy93/Brewfile/blob/HEAD/LICENSE) © [Alicia Sykes](https://aliciasykes.com) 2012-22._\u003cbr\u003e\n\u003e \u003csup align=\"right\"\u003eFor information, see \u003ca href=\"https://tldrlegal.com/license/mit-license\"\u003eTLDR Legal \u003e MIT\u003c/a\u003e\u003c/sup\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eExpand MIT License\u003c/summary\u003e\n\n```\nThe MIT License (MIT)\nCopyright (c) Alicia Sykes \u003calicia@omg.com\u003e \n\nPermission is hereby granted, free of charge, to any person obtaining a copy \nof this software and associated documentation files (the \"Software\"), to deal \nin the Software without restriction, including without limitation the rights \nto use, copy, modify, merge, publish, distribute, sub-license, and/or sell \ncopies of the Software, and to permit persons to whom the Software is furnished \nto do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included install \ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\nINCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANT ABILITY, FITNESS FOR A\nPARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n```\n\n\u003c/details\u003e\n\n---\n\n\n\u003c!-- License + Copyright --\u003e\n\u003cp  align=\"center\"\u003e\n  \u003ci\u003e© \u003ca href=\"https://aliciasykes.com\"\u003eAlicia Sykes\u003c/a\u003e 2012\u003c/i\u003e\u003cbr\u003e\n  \u003ci\u003eLicensed under \u003ca href=\"https://gist.github.com/Lissy93/143d2ee01ccc5c052a17\"\u003eMIT\u003c/a\u003e\u003c/i\u003e\u003cbr\u003e\n  \u003ca href=\"https://github.com/lissy93\"\u003e\u003cimg src=\"https://i.ibb.co/4KtpYxb/octocat-clean-mini.png\" /\u003e\u003c/a\u003e\u003cbr\u003e\n  \u003csup\u003eThanks for visiting :)\u003c/sup\u003e\n\u003c/p\u003e\n\n\u003c!-- Dinosaur --\u003e\n\u003c!-- \n                        . - ~ ~ ~ - .\n      ..     _      .-~               ~-.\n     //|     \\ `..~                      `.\n    || |      }  }              /       \\  \\\n(\\   \\\\ \\~^..'                 |         }  \\\n \\`.-~  o      /       }       |        /    \\\n (__          |       /        |       /      `.\n  `- - ~ ~ -._|      /_ - ~ ~ ^|      /- _      `.\n              |     /          |     /     ~-.     ~- _\n              |_____|          |_____|         ~ - . _ _~_-_\n--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flissy93%2Fusermonkey","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flissy93%2Fusermonkey","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flissy93%2Fusermonkey/lists"}