function forgot() { $dis = array(); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $user = Users_Model::find_by_email($_POST['email']); if (sizeof($user) > 0) { $user->user_key = md5($_POST['email']); $subject = 'Please reset your password'; $to = $_POST['email']; $body = "<p>We heard that you lost your password. Sorry about that!</p>\n\n\n\n<p>But don't worry! You can use the following link within the next day to reset your password:</p>\n\n\n\n<p>" . base_url() . "change-password/" . md5($to) . "</p>\n\n\n\n<p>If you don't use this link within 24 hours, it will expire. To get a new password reset link, visit " . base_url() . "forgot</p>\n\n\n\n<p>Thanks,<br />\n\nYour friends</p>"; mail($to, $subject, $body); $dis['message'] = '<p class="success">We\'ve sent you an email containing a link that will allow you to reset your password for the next 24 hours.<br ><br > Please check your spam folder if the email doesn\'t appear within a few minutes.</p>'; } else { $dis['message'] = '<p class="error">Can\'t find that email, sorry.</p>'; } } $dis['view'] = 'users/forgot'; $this->view_front($dis); }
static function create_twitter_account($redirect_url) { $response = array('status' => false); if (isset($_SESSION['login'])) { unset($_SESSION['login']); } require_once ABSPATH . "/includes/plugins/twitter/twitteroauth.php"; $tokens = $_SESSION['tokens']; $twitter_config = get_config('twitter'); if ($tokens === null) { $connection = new TwitterOAuth($twitter_config['key'], $twitter_config['secret']); $request_token = $connection->getRequestToken($redirect_url); $_SESSION['tokens'] = array('oauth_token' => $request_token['oauth_token'], 'oauth_token_secret' => $request_token['oauth_token_secret']); switch ($connection->http_code) { case 200: $url = $connection->getAuthorizeURL($request_token['oauth_token']); $response = array('status' => 'redirect', 'url' => $url); return $response; break; default: $response = array('status' => 'error', 'message' => 'Could not connect to Twitter. Refresh the page or try again later.'); return $response; break; } } else { $connection = new TwitterOAuth($twitter_config['key'], $twitter_config['secret'], $tokens['oauth_token'], $tokens['oauth_token_secret']); $oauth_verifier = $connection->getAccessToken($_REQUEST['oauth_verifier']); // Let's get the user's info $user_info = $connection->get('account/verify_credentials'); $followers = $user_info->followers_count; // Print user's info if (isset($user_info->error) || isset($user_info->errors)) { // Something's wrong, go back to square 1 $response = array('status' => 'redirect_error', 'url' => base_url('login'), 'message' => $user_info->error); return $response; } else { $user = Users_Model::find_by_email($user_info->id); if (sizeof($user) <= 0) { $user = new Users_Model(); } $user->first_name = $user_info->screen_name; $user->last_name = $user_info->screen_name; $user->email = $user_info->id; $user->type = self::USER_TYPE_TWITTER; $user->twitter_oauth_token = $oauth_verifier['oauth_token']; $user->twitter_oauth_token_secret = $oauth_verifier['oauth_token_secret']; $user->registration_date = date("Y-m-d H:i:s"); $user->save(); /** * Update social meta key */ $UserMeta = Usermetum::find_by_user_id_and_meta_key_and_meta_value($user->user_id, 'social_type', 'twitter'); if (sizeof($UserMeta) <= 0) { $UserMeta = new Usermetum(); } $UserMeta->user_id = $user->user_id; $UserMeta->meta_key = 'social_type'; $UserMeta->meta_value = 'twitter'; $UserMeta->save(); /** * Update social meta value */ $UserMeta = Usermetum::find_by_user_id_and_meta_key_and_meta_value($user->user_id, 'social_id', $user_info->id); if (sizeof($UserMeta) <= 0) { $UserMeta = new Usermetum(); } $UserMeta->user_id = $user->user_id; $UserMeta->meta_key = 'social_id'; $UserMeta->meta_value = $user_info->id; $UserMeta->save(); /** * Save twitter user meta */ $UserMeta = Usermetum::find('first', array('user_id' => $user->user_id, 'meta_key' => 'twitter_meta')); if (sizeof($UserMeta) <= 0) { $UserMeta = new Usermetum(); } $UserMeta->user_id = $user->user_id; $UserMeta->meta_key = 'twitter_meta'; $UserMeta->meta_value = serialize($user_info); $UserMeta->save(); /** * Update graph table content */ $graph = Graph::find_by_user_id_and_date($user->user_id, date("Y-m-d")); if (sizeof($graph) <= 0) { $graph = new Graph(); $graph->user_id = $user->user_id; $graph->followers = $followers; $graph->social = 10; $graph->webclicks = 10; $graph->coupon = 10; $graph->date = date("Y-m-d"); $graph->save(); } else { $graph->followers = $followers; $graph->save(); } // see if we have a session $_SESSION['login'] = array('user_id' => $user->user_id, 'email' => $user_info->id, 'user_level' => 1, 'first_name' => $user_info->screen_name, 'last_name' => $user_info->screen_name, 'social_type' => 'twitter', 'oauth_verifier' => $oauth_verifier); $response = array('status' => 'success', 'url' => base_url('Twitter')); } } return $response; }