Diff Revisions 1 vs 464 for /branches/0.9/functions/register.php
| 1 | 464 | <- Revisions | |
|
Diff lines for: Rev 1 : Lines 2 -> 87 Rev 464 : Lines 2 -> 87 |
|||
| 2 | 2 | /* eoCMS is a content management system written in php | |
| 3 | 3 | Copyright (C) 2007 - 2009 James Mortemore, Ryan Matthews | |
| 4 | 4 | http://www.eocms.com | |
| 5 | - | This work is licensed under the Creative Commons Attribution-Share Alike 3.0 United States License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/us/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. | |
| 5 | + | This work is licensed under the Creative Commons | |
| 6 | + | Attribution-Share Alike 3.0 United States License. | |
| 7 | + | To view a copy of this license, visit | |
| 8 | + | http://creativecommons.org/licenses/by-sa/3.0/us/ | |
| 9 | + | or send a letter to Creative Commons, 171 Second Street, | |
| 10 | + | Suite 300, San Francisco, California, 94105, USA. | |
| 6 | 11 | Additional license terms at http://eocms.com/license.html | |
| 7 | 12 | */ | |
| 8 | - | function register($username, $password, $vpassword, $email, $token, $captcha) | |
| 9 | - | { | |
| 10 | - | global $settings; | |
| 11 | - | call('checktoken', $token); | |
| 12 | - | if($settings['register_captcha'] =='on') { | |
| 13 | - | $captcha = call('captchacheck', $captcha); | |
| 13 | + | function register($username, $password, $vpassword, $email, $token, $captcha) { | |
| 14 | + | global $settings; | |
| 15 | + | call('checktoken', $token); | |
| 16 | + | if($settings['register_captcha'] =='on') | |
| 17 | + | $captcha = call('captchacheck', $captcha); | |
| 18 | + | if($settings['register_captcha'] =='on' && $captcha == false) | |
| 19 | + | return false; | |
| 20 | + | $sql = call('sql_query', "SELECT * FROM users WHERE user = '$username'"); | |
| 21 | + | $fetch = call('sql_fetch_array',$sql); | |
| 22 | + | if ($fetch['user'] == $username) { | |
| 23 | + | $_SESSION['error'] = 'Username is already taken!'; | |
| 24 | + | return false; | |
| 25 | + | } | |
| 26 | + | if (empty($username)) { | |
| 27 | + | $_SESSION['error'] = 'You did not enter a username'; //idiot how on earth are people meant to know who u are! | |
| 28 | + | return false; | |
| 29 | + | } | |
| 30 | + | if (strlen($password) < 6) { | |
| 31 | + | $_SESSION['error'] = 'password must be 6 characters or longer!'; | |
| 32 | + | return false; | |
| 33 | + | } | |
| 34 | + | $decodedusername = str_replace('<', '<', $username); | |
| 35 | + | $decodedusername = str_replace('>', '>', $decodedusername); | |
| 36 | + | if (strlen($decodedusername) > 16) { | |
| 37 | + | $_SESSION['error'] = 'Your username is too long, it must be below 16 characters'; | |
| 38 | + | return false; | |
| 39 | + | } | |
| 40 | + | if ($password != $vpassword) { | |
| 41 | + | $_SESSION['error'] = 'The passwords entered to do not match'; | |
| 42 | + | return false; | |
| 43 | + | } | |
| 44 | + | if (!preg_match("/^([a-z0-9._-](\+[a-z0-9])*)+@[a-z0-9.-]+\.[a-z]{2,6}$/i", $email)) { | |
| 45 | + | $_SESSION['error'] = 'The email address entered is not valid'; | |
| 46 | + | return false; | |
| 47 | + | } | |
| 48 | + | if ($settings['register_approval'] == 'none') | |
| 49 | + | $group = '2'; | |
| 50 | + | else | |
| 51 | + | $group = '1'; | |
| 52 | + | if (!isset($_SESSION['error']) && !isset($_SESSION['error_die'])) { | |
| 53 | + | $sql = call('sql_query', "INSERT INTO users (user,pass,email,ip,regdate,lastlogin, membergroup, theme) VALUES('$username', '$password', '$email', '" . call('visitor_ip') . "', '" . time() . "', 'Never', '$group', '".$settings['site_theme']."')"); | |
| 54 | + | if($sql) | |
| 55 | + | return true; | |
| 56 | + | if ($settings['register_approval'] == 'email') { | |
| 57 | + | $mail = new PHPMailer(); | |
| 58 | + | //last inserted ID | |
| 59 | + | $id = call('sql_insert_id'); | |
| 60 | + | //Generate MD5 hash key | |
| 61 | + | $key = call('generate_key', 6); | |
| 62 | + | //Put together the key string | |
| 63 | + | $key_string = "key=$key&id=$id"; | |
| 64 | + | //Insert into database | |
| 65 | + | $query = call('sql_query', "INSERT INTO activation_keys (user_id , key_number) VALUES ('$id', '$key')"); | |
| 66 | + | if ($settings['mail'] == 'sendmail') | |
| 67 | + | $mail->IsMail(); | |
| 68 | + | elseif ($settings['mail'] == 'smtp') { | |
| 69 | + | $mail->IsSMTP(); | |
| 70 | + | $mail->Host = $settings['smtp_host']; | |
| 71 | + | $mail->SMTPAuth = true; | |
| 72 | + | $mail->Username = $settings['smtp_username']; | |
| 73 | + | $mail->Password = $settings['smtp_password']; | |
| 74 | + | } | |
| 75 | + | $mail->FromName = $settings['site_name']; | |
| 76 | + | $mail->From = $settings['email']; | |
| 77 | + | $mail->AddAddress("$email"); | |
| 78 | + | $mail->Subject = 'Account Activation at' . $settings['site_name'] . ''; | |
| 79 | + | $mail->Body = "Please click the following link to activate your account:\n--------\n" . $settings['site_url'] . "/index.php?act=activate&$key_string"; | |
| 80 | + | if (!$mail->Send()) { | |
| 81 | + | $_SESSION['error'] = "Error sending: " . $mail->ErrorInfo; | |
| 82 | + | return false; | |
| 83 | + | } | |
| 84 | + | } | |
| 85 | + | } | |
| 14 | 86 | } | |
| 15 | - | if($settings['register_captcha'] =='on' && $captcha == false) { | |
| 16 | - | return false; | |
| 17 | - | } | |
| 18 | - | $sql = call('sql_query', "SELECT * FROM users WHERE user = '$username'"); | |
| 19 | - | $fetch = call('sql_fetch_array',$sql); | |
| 20 | - | if ($fetch['user'] == $username) { | |
| 21 | - | $_SESSION['error'] = 'Username is already taken!'; | |
| 22 | - | return false; | |
| 23 | - | } | |
| 24 | - | if (empty($username)) { | |
| 25 | - | $_SESSION['error'] = 'You did not enter a username'; //idiot how on earth are people meant to know who u are! | |
| 26 | - | return false; | |
| 27 | - | } | |
| 28 | - | if (strlen($password) < 6) { | |
| 29 | - | $_SESSION['error'] = 'password must be 6 characters or longer!'; | |
| 30 | - | return false; | |
| 31 | - | } | |
| 32 | - | $decodedusername = str_replace('<', '<', $username); | |
| 33 | - | $decodedusername = str_replace('>', '>', $decodedusername); | |
| 34 | - | if (strlen($decodedusername) > 16) { | |
| 35 | - | $_SESSION['error'] = 'Your username is too long, it must be below 16 characters'; | |
| 36 | - | return false; | |
| 37 | - | } | |
| 38 | - | if ($password != $vpassword) { | |
| 39 | - | $_SESSION['error'] = 'The passwords entered to do not match'; | |
| 40 | - | return false; | |
| 41 | - | } | |
| 42 | - | if (!preg_match("/^([a-z0-9._-](\+[a-z0-9])*)+@[a-z0-9.-]+\.[a-z]{2,6}$/i", $email)) { | |
| 43 | - | $_SESSION['error'] = 'The email address entered is not valid'; | |
| 44 | - | return false; | |
| 45 | - | } | |
| 46 | - | if ($settings['register_approval'] == 'none') { | |
| 47 | - | $group = '2'; | |
| 48 | - | } else { | |
| 49 | - | $group = '1'; | |
| 50 | - | } | |
| 51 | - | if (!isset($_SESSION['error']) && !isset($_SESSION['error_die'])) { | |
| 52 | - | $sql = call('sql_query', "INSERT INTO users (user,pass,email,ip,regdate,lastlogin, membergroup, theme) VALUES('$username', '$password', '$email', '" . call('visitor_ip') . "', '" . time() . "', 'Never', '$group', '".$settings['site_theme']."')"); | |
| 53 | - | if($sql) { | |
| 54 | - | return true; | |
| 55 | - | } | |
| 56 | - | if ($settings['register_approval'] == 'email') { | |
| 57 | - | $mail = new PHPMailer(); | |
| 58 | - | //last inserted ID | |
| 59 | - | $id = call('sql_insert_id'); | |
| 60 | - | //Generate MD5 hash key | |
| 61 | - | $key = call('generate_key', 6); | |
| 62 | - | //Put together the key string | |
| 63 | - | $key_string = "key=$key&id=$id"; | |
| 64 | - | //Insert into database | |
| 65 | - | $query = call('sql_query', "INSERT INTO activation_keys (user_id , key_number) VALUES ('$id', '$key')"); | |
| 66 | - | if ($settings['mail'] == 'sendmail') { | |
| 67 | - | $mail->IsMail(); | |
| 68 | - | } elseif ($settings['mail'] == 'smtp') { | |
| 69 | - | $mail->IsSMTP(); | |
| 70 | - | $mail->Host = $settings['smtp_host']; | |
| 71 | - | $mail->SMTPAuth = true; | |
| 72 | - | $mail->Username = $settings['smtp_username']; | |
| 73 | - | $mail->Password = $settings['smtp_password']; | |
| 74 | - | } | |
| 75 | - | $mail->FromName = $settings['site_name']; | |
| 76 | - | $mail->From = $settings['email']; | |
| 77 | - | $mail->AddAddress("$email"); | |
| 78 | - | $mail->Subject = 'Account Activation at' . $settings['site_name'] . ''; | |
| 79 | - | $mail->Body = "Please click the following link to activate your account:\n--------\n" . $settings['site_url'] . "/index.php?act=activate&$key_string"; | |
| 80 | - | if (!$mail->Send()) { | |
| 81 | - | $_SESSION['error'] = "Error sending: " . $mail->ErrorInfo; | |
| 82 | - | return false; | |
| 83 | - | } | |
| 84 | - | } | |
| 85 | - | } | |
| 86 | - | } | |
| 87 | 87 | ?> | |
View this file contents
View the full history
Commits for banancanard-eoCMS:/branches/0.9/functions/register.php