One step closer to world domination
PHP Login Class
Here is an example of a PHP 4.2 Login class that you can use when writing your own CMS.
<?php /**************************************************** * * File: class.login.php * Author: Matt West, 2007 * Purpose: Login class * *****************************************************/ class Login { // Public variables var $username; var $cookie; function Login() { } /** * login(): Authenticate the user's username & password * @param string $username User's username in the DB * @param string $password User's password in the DB * @param object $DB MySQL database class object * @param string $table Table to query from * @returns bool True if login successful, false if not */ function login ($username, $password, $DB, $table = 'users') { $this->username = $username; $DB->query("SELECT `username`, `salt`, `password` FROM `$table` WHERE `username` = '$username' LIMIT 1"); return ( $DB->result['password'] == sha1($DB->result['salt'] . $password) ) ? true : false ; } /** * login_admin(): Authenticate the an admin's username & password * @param string $username User's username in the DB * @param string $password User's password in the DB * @param object $DB MySQL database class object * @param string $table Table to query from * @returns bool True if login successful, false if not */ function login_admin ($username, $password, $DB, $table = 'users') { $this->username = $username; $DB->query("SELECT `username`, `salt`, `password`, `user_level` FROM `$table` WHERE `username` = '$username' LIMIT 1"); if ( ( $DB->result['password'] == sha1($DB->result['salt'] . $password) ) && ( $DB->result['user_level'] ) == '3') { return true; } else { return false; } } /** * set_cookie(): Set the user's cookie * @param string $cookie_name Name of the cookie * @param object $DB MySQL database class object * @param bool $remember Whether to set for 30 days or just this session * @param string $table Table to query from * @returns bool True if cookie was sent, false if not */ function set_cookie ($cookie_name, $DB, $remember = true, $table = 'users') { $expiration = ( $remember ) ? ( time() + (60 * 60 * 24 * 30) ) : null ; $DB->query("SELECT * FROM `$table` WHERE `username` = '" . $this->username . "' LIMIT 1"); return ( setcookie($cookie_name, base64_encode( $DB->result['username'] . ":" . $DB->result['id'] . ":" . $DB->result['user_level'] . ":" . $DB->result['first_name'] . ":" . $DB->result['last_name'] ), $expiration) ) ? true : false ; } /** * is_logged_in(): Check if user is currently logged in * @param string $cookie_name Name of the cookie * @returns bool True if cookie was sent, false if not */ function is_logged_in ($cookie_name) { $this->cookie = explode(':', base64_decode($_COOKIE[$cookie_name]) ); } /** * is_admin_logged_in(): Check if user is currently logged in * @param string $cookie_name Name of the cookie * @returns bool True if cookie was sent, false if not */ function is_admin_logged_in ($cookie_name) { if ( isset($_COOKIE[$cookie_name]) ) { $this->cookie = explode(':', base64_decode($_COOKIE[$cookie_name]) ); if ( $this->cookie[2] == 3 ) { return true; } else { return false; } } else { return false; } } /** * logout(): Clear the user's cookie * @param string $cookie_name Name of the cookie */ function logout ($cookie_name) { setcookie($cookie_name, ''); } } ?>
| Print article | This entry was posted by Matt Danger on January 15, 2007 at 1:23 pm, and is filed under PHP. Follow any responses to this post through RSS 2.0. Both comments and pings are currently closed. |
Comments are closed.










