phpUserAuth Released!
It's finally done! The package is up for grabs, with a quick starter guide.
Please go through the project page for more details!
The Readme.txt file inside folder "readme" contains instructions for installation and usage
Leave your comments/questions/suggestions on the project page.
Out.
Introducing phpUserAuth
Update: Please visit the project page for more details
After weeks of fighting with myself, I finally got down to work on something that has been on my mind for sometime now. Yes, it is yet another user authentication/management system in PHP. There are already some great ones out there, and some not so good ones. I wanted a system that was secure, flexible, and easy to work with. What took me an entire week of effort is presented below. Without further delay, presenting phpUserAuth
Features
- Secure with support for sessions based and/or cookie based authentication
- Tons of configuration option for those who know what they are doing. For others, its easy as a cake!
- Passwords are *always* hashed before they are sent over the network, with fallback to plain text if JavaScript is not supported in the browser
- Only salted, hashed passwords are saved in the database. Even if the DB is stolen, it is almost impossible to get the original password
- Support for multiple simultaneous sessions or a single active session
- Administrator can choose how users are activated after they signup. It can be automatic activation, manual activation by the admin, or an activation mail can be sent to the user
- Password is NEVER sent over the email. If the user forgets his password, he can request a password reset mail.
- User defined access control levels
- Flexible. If the administrator wants to add another field, simply updated the configuration file, and put the field in the signup form! The rest is taken care of by the script!
- Prevention from XSS attacks - all data sent to the server is cleaned using the excellent InputFilter class
- Support for template based HTML email notifications with changeable templates
- Emailing done through the excellent PHPMailer with support for SMTP+SSL
- Custom redirection after login/logout
- Pre-designed forms
- Snap in install - Simply drop the folder into your existing application, configure a few site options and database settings, and you are done!
Requirements
- PHP 5+ as the core classes are OO
- MySQLi support
- MySQL 5+ database server
Is that too much to ask? That being said, if you run a fairly recent server, all these should be there by default. For testing, you can check out XAMPP which is available for Windows, Mac and Linux!
License
I'm planning to release it under some open source license. If that doesn't work out, it will still be FREE
Download
It is not completely done yet. The admin area needs some work. So it will be released, when its done
Notes
1) As always, it isn't perfect! If you find any bugs, errors, or know a way where things can be done better, please leave a comment!
2) The application hasn't been profiled yet. There WILL be places where I might have complicated things. Will be taken care of after its been released
Announcing jGridTable
After my post about developing a new jQuery plugin, I've managed to shake off my apprehensions, and get it hosted on googlecode. The project is titled jGridTable, and hopefully isn't already taken. I will dedicate a page to it in this blog, where I can keep track of day to day developments, invite comments and suggestions from people, and more importantly, ask for guidance. And if at all I get it to work, I intend to publish it with the liberal MIT license, so that others can keep improving it. My overall aim for the project is to make it as flexible as possible, without bloating up.
So here is to jGridTable. Lets see how far it goes.
Developing a new jQuery Grid plugin
After weeks of searching for the perfect grid based data editor for my project, I've aspired to build one myself. Sure there are hundreds of existing plugins and more which are well established, and developed by well knowledgeable folks, I find a few shortcomings. Drawing inspiration from the existing plugins, here are my goals:
Goals:
- Uses jQuery library
- Small and light. Size should be less than 30 KB for minified version
- Dynamic data source for easy table population (JSON or plain HTML)
- Create, Read, Update and Delete (CRUD) operation
- Sorting based on columns (using tablesorter plugin)
- Searching based on filters for multiple columns
- Follows KISS Principal - Keep it simple stupid. No unnecessary insertion of DOM elements
- Insertion of checkbox for each row and defining custom button to perform an action
What seems like a huge list of features add to my very basic problem : I'm still a noob at jQuery and javascript. So, as a personal goal this project is a way for me to learn jQuery right from scratch, and to put it to good use.
Methodology:
- Study the existing plugins to understand how they work
- Use code snippets that are already available. Reduces work, and will be much better than reinventing the wheel the wrong way
- Less attention to appearance (CSS) till the code really works, partly because I'm still learning CSS, and would be tough to combine both jQuery and css code when I'm new to both.
As you'd have guessed, its an ambitious project for someone who is new to javascript/jQuery. Nevertheless, I hope I can pull it off with guidance from knowledgeable people who know their jQuery. I plan to host it on either github or google code and put up a dedicated page on this blog to keep track of the development. As the first step, I'll start with defining the various functions that are required, thus creating a skeleton jQuery plugin, which simply displays a one line output when called in order (yea, I'm pathetic).
So anyone who reads this, please leave your thoughts, advice, comments here. Thank You.