time = time(); $this->startSession(); } /** * startSession - Performs all the actions necessary to * initialize this session object. Tries to determine if the * the user has logged in already, and sets the variables * accordingly. Also takes advantage of this page load to * update the active visitors tables. */ function startSession(){ global $db; //The database connection session_start(); //Tell PHP to start the session /* Determine if user is logged in */ $this->logged_in = $this->checkLogin(); /** * Set guest value to users not logged in, and update * active guests table accordingly. */ if(!$this->logged_in){ $this->username = $_SESSION['username'] = GUEST_NAME; $this->userlevel = GUEST_LEVEL; $db->addActiveGuest($_SERVER['REMOTE_ADDR'], $this->time); } /* Update users last active timestamp */ else{ // $db->addActiveUser($this->email, $this->time); $db->addActiveUser($this->username, $this->time); } /* Remove inactive visitors from database */ $db->removeInactiveUsers(); $db->removeInactiveGuests(); /* Set referrer page */ if(isset($_SESSION['url'])){ $this->referrer = $_SESSION['url']; }else{ $this->referrer = "/"; } /* Set current url */ $this->url = $_SESSION['url'] = $_SERVER['PHP_SELF']; } /** * checkLogin - Checks if the user has already previously * logged in, and a session with the user has already been * established. Also checks to see if user has been remembered. * If so, the database is queried to make sure of the user's * authenticity. Returns true if the user has logged in. */ function checkLogin(){ global $db; //The database connection /* Check if user has been remembered */ if(isset($_COOKIE['cookname']) && isset($_COOKIE['cookid'])){ $this->username = $_SESSION['username'] = $_COOKIE['cookname']; $this->userid = $_SESSION['userid'] = $_COOKIE['cookid']; $this->id = $_SESSION['id'] = $_COOKIE['id']; //jc $this->email = $_SESSION['email'] = $_COOKIE['email']; //jc } /* Username and userid have been set and not guest */ if(isset($_SESSION['username']) && isset($_SESSION['userid']) && $_SESSION['username'] != GUEST_NAME){ /* Confirm that username and userid are valid */ if($db->confirmUserID($_SESSION['username'], $_SESSION['userid']) != 0){ /* Variables are incorrect, user not logged in */ unset($_SESSION['username']); unset($_SESSION['userid']); unset($_SESSION['id']); unset($_SESSION['email']); return false; } /* User is logged in, set class variables */ $this->userinfo = $db->getUserInfo($_SESSION['username']); $this->username = $this->userinfo['username']; $this->userid = $this->userinfo['userid']; $this->userlevel = $this->userinfo['userlevel']; $this->id = $this->userinfo['id']; //jc $this->email = $this->userinfo['email'];//jc return true; } /* User not logged in */ else{ return false; } } /** * login - The user has submitted his username and password * through the login form, this function checks the authenticity * of that information in the database and creates the session. * Effectively logging in the user if all goes well. */ function login($subuser, $subpass, $subremember){ global $db, $form; //The database and form object /* Username error checking */ $field = "user"; //Use field name for username if(!$subuser || strlen($subuser = trim($subuser)) == 0){ $form->setError($field, "* Login I.D. or Email not entered"); } else{ // Check if username is not alphanumeric if(!eregi("^([0-9a-z\.@])*$", $subuser)){ $form->setError($field, "* Invalid Login I.D. or Email, try again."); } } /* $email=$subuser; // Email error checking $field = "email"; //Use field name for email if(!$email || strlen($email = trim($email)) == 0){ $form->setError($field, "* Email not entered"); } else{ // Check if valid email address $regex = "^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*"."@[a-z0-9-]+(\.[a-z0-9-]{1,})*"."\.([a-z]{2,}){1}$"; if(!eregi($regex,$email)){ $form->setError($field, "* Email invalid"); } $email = stripslashes($email); } */ // Password error checking if(!$subpass){ $form->setError("password", "* Password not entered"); } /* Return if form errors exist */ if($form->num_errors > 0){ return false; } /* Checks that username is in database and password is correct */ $subuser = stripslashes($subuser); $result = $db->confirmUserPass($subuser, md5($subpass)); /* Check error codes */ if($result == 1){ $form->setError("user", "* Login I.D. not found"); } else if($result == 2){ $form->setError("password", "* Invalid password"); } else if($result == 3){ $form->setError("confirm", "Please check your email to activate your account."); } /* Return if form errors exist */ if($form->num_errors > 0){ return false; } /* Username and password correct, register session variables */ $this->userinfo = $db->getUserInfo($subuser); $this->email = $_SESSION['email'] = $this->userinfo['email']; $this->username = $_SESSION['username'] = $this->userinfo['username']; $this->userid = $_SESSION['userid'] = $this->generateRandID(); $this->id = $_SESSION['id'] = $this->userinfo['id']; $this->userlevel = $this->userinfo['userlevel']; /* Insert userid into database and update active users table */ $db->updateUserField($this->username, "userid", $this->userid); $db->addActiveUser($this->username, $this->time); $db->removeActiveGuest($_SERVER['REMOTE_ADDR']); /** * This is the cool part: the user has requested that we remember that * he's logged in, so we set two cookies. One to hold his username, * and one to hold his random value userid. It expires by the time * specified in constants.php. Now, next time he comes to our site, we will * log him in automatically, but only if he didn't log out before he left. */ if($subremember){ setcookie("cookname", $this->username, time()+COOKIE_EXPIRE, COOKIE_PATH); setcookie("cookid", $this->userid, time()+COOKIE_EXPIRE, COOKIE_PATH); setcookie("email", $this->email, time()+COOKIE_EXPIRE, COOKIE_PATH); //setcookie("id", $this->id, time()+COOKIE_EXPIRE, COOKIE_PATH); } /* Login completed successfully */ return true; } /** * logout - Gets called when the user wants to be logged out of the * website. It deletes any cookies that were stored on the users * computer as a result of him wanting to be remembered, and also * unsets session variables and demotes his user level to guest. */ function logout(){ global $db; //The database connection /** * Delete cookies - the time must be in the past, * so just negate what you added when creating the * cookie. */ if(isset($_COOKIE['cookname']) && isset($_COOKIE['cookid'])){ setcookie("cookname", "", time()-COOKIE_EXPIRE, COOKIE_PATH); setcookie("cookid", "", time()-COOKIE_EXPIRE, COOKIE_PATH); //setcookie("dlr", "", time()-COOKIE_EXPIRE, COOKIE_PATH); setcookie("email", "", time()-COOKIE_EXPIRE, COOKIE_PATH); } /* Unset PHP session variables */ unset($_SESSION['username']); unset($_SESSION['userid']); unset($_SESSION['email']); unset($_SESSION['id']); /* Reflect fact that user has logged out */ $this->logged_in = false; /** * Remove from active users table and add to * active guests tables. */ $db->removeActiveUser($this->username); $db->addActiveGuest($_SERVER['REMOTE_ADDR'], $this->time); /* Set user level to guest */ $this->username = GUEST_NAME; $this->userlevel = GUEST_LEVEL; } /** * register - Gets called when the user has just submitted the * registration form. Determines if there were any errors with * the entry fields, if so, it records the errors and returns * 1. If no errors were found, it registers the new user and * returns 0. Returns 2 if registration failed. */ // function register($subuser, $subpass, $subemail){ function register($v){ global $db, $form, $mailer; //The database, form and mailer object $checkuser = jcSession::checkuser($v); echo $checkuser->num_errors; /* Errors exist, have user correct them */ if($form->num_errors > 0){ return 1; //Errors with form } /* No errors, add the new account to the */ else{ $confirm=$v['confirm']=$this->generateRandID(); if($db->addNewUser($v)){ if(EMAIL_WELCOME){ $email=$v['email']; $username=$v['username']; $password=$v['password']; $mailer->sendWelcome($username,$email,$password,$confirm); /* $header = "To:" . $email . "\n"; $header .= "From:" . EMAIL_FROM_NAME . " <".EMAIL_FROM_ADDR.">\n"; $header .= "Bcc: buyatv@gmail.com\n"; $header .= "Organization: mywebcoupon.com\n"; $header .= "X-Sender: ". EMAIL_FROM_ADDR . "\n"; $header .= "X-Priority: 3 \n"; $header .= "X-Mailer: MKSR-Postimies \n"; $subject = "MyWebCoupon.com - Welcome!"; $body = $username.",\n\n" ."Welcome! You've just registered at MyWebCoupon.com Site\n\n" ."with the following information:\n\n" ."to activate your account, please go to the url\n\n" .'' ."http:\\mywebcoupon.com\sayalogin\sayaregister.php?userid=".$confirm."&type=999&verify=".$confirm."\n\n" ."if you can not click the link, copy the following url to your browser's address bar:"."\n\n" ."http:\\mywebcoupon.com\sayalogin\sayaregister.php?userid=".$confirm."&type=999&verify=".$confirm."\n\n" ."Username: ".$username."\n" ."Password: ".$password."\n\n" ."If you ever lose or forget your password, a new " ."password will be generated for you and sent to this " ."email address, if you would like to change your " ."email address you can do so by going to the " ."My Account page after signing in.\n\n" ."- MyWebCoupon.com"; mail($email,$subject,$body,$header); */ } return 0; //New user added succesfully }else{ return 2; //Registration attempt failed } } } function checkuser($v) { global $db, $form, $mailer; //The database, form and mailer object $username = $v['username']; $password = $v['password']; $email = $v['email']; /* Username error checking */ $field = "username"; //Use field name for username if(!$username || strlen($username = trim($username)) == 0){ $form->setError($field, "* User name not entered"); } else{ // Spruce up username, check length $username = stripslashes($username); if(strlen($username) < 5){ $form->setError($field, "* User name is below 5 characters"); } else if(strlen($username) > 30){ $form->setError($field, "* User name is above 30 characters"); } // Check if username is not alphanumeric else if(!eregi("^([0-9a-z])+$", $username)){ $form->setError($field, "* User name is not alphanumeric"); } // Check if username is reserved else if(strcasecmp($username, GUEST_NAME) == 0){ $form->setError($field, "* User name is reserved word"); } // Check if username is already in use else if($db->usernameTaken($username)){ $form->setError($field, "* User name is already in use"); } // Check if username is banned else if($db->usernameBanned($username)){ $form->setError($field, "* User name is banned"); } } // Email error checking $field = "email"; //Use field name for email if(!$email || strlen($email = trim($email)) == 0){ $form->setError($field, "* Email not entered"); } // Check if username is already in use else if($db->usernameTaken($username)){ $form->setError($field, "* Email is already in use"); } else{ // Check if valid email address $regex = "^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*"."@[a-z0-9-]+(\.[a-z0-9-]{1,})*"."\.([a-z]{2,}){1}$"; if(!eregi($regex,$email)){ $form->setError($field, "* Email is invalid"); } } // $email = stripslashes($email); /* Password error checking */ $field = "password"; //Use field name for password if(!$password){ $form->setError($field, "* Password not entered"); } else{ /* Spruce up password and check length*/ $password = stripslashes($password); if(strlen($password) < 4){ $form->setError($field, "* Password too short"); } /* Check if password is not alphanumeric */ else if(!eregi("^([0-9a-z])+$", ($password = trim($password)))){ $form->setError($field, "* Password not alphanumeric"); } } return $form; } /** * editAccount - Attempts to edit the user's account information * including the password, which it first makes sure is correct * if entered, if so and the new password is in the right * format, the change is made. All other fields are changed * automatically. */ function editAccount($subcurpass, $subnewpass, $subemail){ global $db, $form; //The database and form object /* New password entered */ if($subnewpass){ /* Current Password error checking */ $field = "password"; //Use field name for current password if(!$subcurpass){ $form->setError($field, "* Current Password not entered"); } else{ /* Check if password too short or is not alphanumeric */ $subcurpass = stripslashes($subcurpass); if(strlen($subcurpass) < 4 || !eregi("^([0-9a-z])+$", ($subcurpass = trim($subcurpass)))){ $form->setError($field, "* Current Password incorrect"); } /* Password entered is incorrect */ if($db->confirmUserPass($this->email,md5($subcurpass)) != 0){ $form->setError($field, "* Current Password incorrect"); } } /* New Password error checking */ $field = "newpassword"; //Use field name for new password /* Spruce up password and check length*/ $subpass = stripslashes($subnewpass); if(strlen($subnewpass) < 4){ $form->setError($field, "* New Password too short"); } /* Check if password is not alphanumeric */ else if(!eregi("^([0-9a-z])+$", ($subnewpass = trim($subnewpass)))){ $form->setError($field, "* New Password not alphanumeric"); } } /* Change password attempted */ else if($subcurpass){ /* New Password error reporting */ $field = "newpassword"; //Use field name for new password $form->setError($field, "* New Password not entered"); } /* Email error checking */ $field = "email"; //Use field name for email if($subemail && strlen($subemail = trim($subemail)) > 0){ /* Check if valid email address */ $regex = "^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*"."@[a-z0-9-]+(\.[a-z0-9-]{1,})*"."\.([a-z]{2,}){1}$"; if(!eregi($regex,$subemail)){ $form->setError($field, "* Email invalid"); } $subemail = stripslashes($subemail); } /* Errors exist, have user correct them */ if($form->num_errors > 0){ return false; //Errors with form } /* Update password since there were no errors */ if($subcurpass && $subnewpass){ $db->updateUserField($this->email,"password",md5($subnewpass)); } /* Change Email */ if($subemail){ $db->updateUserField($this->email,"email",$subemail); } /* Success! */ return true; } /*------------------------------------------------------------------- * updateAccount - Attempts to edit the user's account information *------------------------------------------------------------------- */ function updateAccount($v){ global $db, $form; //The database and form object // if($subemail){ $db->addNewUser($v); // } /* Success! */ return 0; } //-------------------------------------------------------------------------------- /** * submitCouponLink - Gets called when the user has just submitted the * registration form. Determines if there were any errors with * the entry fields, if so, it records the errors and returns * 1. If no errors were found, it registers the new user and * returns 0. Returns 2 if registration failed. */ // function register($subuser, $subpass, $subemail){ function submitCouponLink($v){ global $db, $form, $mailer; //The database, form and mailer object $comp_name = $v['comp_name']; $city = $v['city']; $state = $v['state']; $zip_code = $v['zip_code']; $country = $v['country']; $state = $v['state']; /* Username error checking */ if(!$comp_name || strlen($comp_name = trim($comp_name)) == 0){ $form->setError("comp_name", "* Company name not entered"); } if(!$city || strlen($city = trim($city)) == 0){ $form->setError("city", "* city not entered"); } if(!$state || strlen($state = trim($state)) == 0){ $form->setError("state", "* state not selected"); } if(!$zip_code || strlen($zip_code = trim($zip_code)) == 0){ $form->setError("zip_code", "* zip code not entered"); } if(!$country || strlen($country = trim($country)) == 0){ $form->setError("country", "* country not entered"); } $category = $v['category']; $coupon_url = $v['coupon_url']; $description = $v['description']; $expiration = $v['expiration']; if(!$category || strlen($category = trim($category)) == 0){ $form->setError("category", "* category not selected "); } if(!$coupon_url || strlen($coupon_url = trim($coupon_url)) == 0){ $form->setError("coupon_url", "* coupon url not entered"); } if(!$description || strlen($description = trim($description)) == 0){ $form->setError("description", "* description not entered"); } if(!$expiration || strlen($expiration = trim($expiration)) == 0){ $form->setError("expiration", "* expiration date not entered"); } $agree = $v['agree']; $display = $v['display']; if(!$agree || strlen($agree = trim($agree)) == 0){ $form->setError("agree", "* Please check your decision."); } if(!$display || strlen($display = trim($display)) == 0){ $form->setError("display", "* Please check your decision."); } $checkuser = jcSession::checkuser($v); /* echo "
";
      var_dump($form);
      echo "
"; */ /* Errors exist, have user correct them */ if($form->num_errors > 0){ return 1; //Errors with form } /* No errors, add the new account to the */ else{ $confirm=$v['confirm']=$this->generateRandID(); if($db->addCouponLink($v)){ if(EMAIL_WELCOME){ // $mailer->sendWelcome($username,$email,$password); $mailer->sendRegister($username,$email,$password,$confirm); } return 0; //New user added succesfully }else{ return 2; //Registration attempt failed } } } /** * editCouponLink - Attempts to edit the user's account information * including the password, which it first makes sure is correct * if entered, if so and the new password is in the right * format, the change is made. All other fields are changed * automatically. */ function editCouponLink($subcurpass, $subnewpass, $subemail){ global $db, $form; //The database and form object /* New password entered */ if($subnewpass){ /* Current Password error checking */ $field = "password"; //Use field name for current password if(!$subcurpass){ $form->setError($field, "* Current Password not entered"); } else{ /* Check if password too short or is not alphanumeric */ $subcurpass = stripslashes($subcurpass); if(strlen($subcurpass) < 4 || !eregi("^([0-9a-z])+$", ($subcurpass = trim($subcurpass)))){ $form->setError($field, "* Current Password incorrect"); } /* Password entered is incorrect */ if($db->confirmUserPass($this->email,md5($subcurpass)) != 0){ $form->setError($field, "* Current Password incorrect"); } } /* New Password error checking */ $field = "newpassword"; //Use field name for new password /* Spruce up password and check length*/ $subpass = stripslashes($subnewpass); if(strlen($subnewpass) < 4){ $form->setError($field, "* New Password too short"); } /* Check if password is not alphanumeric */ else if(!eregi("^([0-9a-z])+$", ($subnewpass = trim($subnewpass)))){ $form->setError($field, "* New Password not alphanumeric"); } } /* Change password attempted */ else if($subcurpass){ /* New Password error reporting */ $field = "newpassword"; //Use field name for new password $form->setError($field, "* New Password not entered"); } /* Email error checking */ $field = "email"; //Use field name for email if($subemail && strlen($subemail = trim($subemail)) > 0){ /* Check if valid email address */ $regex = "^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*"."@[a-z0-9-]+(\.[a-z0-9-]{1,})*"."\.([a-z]{2,}){1}$"; if(!eregi($regex,$subemail)){ $form->setError($field, "* Email invalid"); } $subemail = stripslashes($subemail); } /* Errors exist, have user correct them */ if($form->num_errors > 0){ return false; //Errors with form } /* Update password since there were no errors */ if($subcurpass && $subnewpass){ $db->updateUserField($this->email,"password",md5($subnewpass)); } /* Change Email */ if($subemail){ $db->updateUserField($this->email,"email",$subemail); } /* Success! */ return true; } /*------------------------------------------------------------------- * updateCouponLink - update CouponLink information *------------------------------------------------------------------- */ function updateCouponLink($v){ global $db, $form; //The database and form object // if($subemail){ $db->addNewUser($v); // } /* Success! */ return 0; } //-------------------------------------------------------------------------------- /** * isAdmin - Returns true if currently logged in user is * an administrator, false otherwise. */ function isAdmin(){ return ($this->userlevel == ADMIN_LEVEL || $this->username == ADMIN_NAME); } /** * generateRandID - Generates a string made up of randomized * letters (lower and upper case) and digits and returns * the md5 hash of it to be used as a userid. */ function generateRandID(){ return md5($this->generateRandStr(16)); } /** * generateRandStr - Generates a string made up of randomized * letters (lower and upper case) and digits, the length * is a specified parameter. */ function generateRandStr($length){ $randstr = ""; for($i=0; $i<$length; $i++){ $randnum = mt_rand(0,61); if($randnum < 10){ $randstr .= chr($randnum+48); }else if($randnum < 36){ $randstr .= chr($randnum+55); }else{ $randstr .= chr($randnum+61); } } return $randstr; } }; /** * Initialize session object - This must be initialized before * the form object because the form uses session variables, * which cannot be accessed unless the session has started. */ $session = new jcSession; /* Initialize form object */ $form = new jcForm; ?> MyWebCoupon.com - The only web coupon you need.
MyWebCoupon.com   The Only Coupon Site You'll Need.

Need a new floor?
Laminate flooring?
Bamboo Flooring?
Bambusaflooring.com
MyWebCoupon.com
Check MyWebCoupon before leaving.
Business Owner,
Submit your coupon
here for free
No coupon page?
Create your own here.
User login.