Source for file Register.class.php
Documentation is available at Register.class.php
* R.E. Login 2.0 - Regisztráció - class/Register.class.php
* Regisztráció és aktiváció.<br />
* <b>Dátum:</b> 2010.04.02.
* <b>Szerző weboldala:</b> {@link http://rimelek.hu/}<br />
* <b>Login weblapja:</b> {@link http://rimelek.hu/meghivos-loginrendszer-r-e-login-v2-0 R.E. Login v2.0}
* @author Takács Ákos (Rimelek), programmer [at] rimelek [dot] hu
* @copyright Copyright (C) 2010, Takács Ákos
* @license http://www.gnu.org/licenses/gpl.html
require_once System::getIncLoginDir().
'classes/Login.class.php';
require_once System::getIncLoginDir().
'classes/UserList.class.php';
* Regisztráció, és aktiváció
* Csak egy kérelmet kell indítani. A többi automatikus.
* A kérelem visszaadja sikeres volt-e vagy sem.
* <b>Szerző weboldala:</b> {@link http://rimelek.hu/}<br />
* <b>Login weblapja:</b> {@link http://rimelek.hu/meghivos-loginrendszer-r-e-login-v2-0 R.E. Login v2.0}
* @author Takács Ákos (Rimelek), programmer [at] rimelek [dot] hu
* @copyright Copyright (C) 2010, Takács Ákos
* @license http://www.gnu.org/licenses/gpl.html
private static $errors =
array();
* Űrlapmezők neveit kulcsként tartalmazó asszociatív tömb
private static $values =
array(
'username'=>
'','userpass'=>
'','reuserpass'=>
'','useremail'=>
'','reuseremail'=>
'',
'bdyear'=>
'','bdmonth'=>
'','bdday'=>
'','sex'=>
'','public_mail'=>
''
* @return array Lekérdezendő táblák+mezők
Config::DBPREF.
'users as users' =>
array(
'username','userpass','rank','invitations','useremail','regtime','newsreadtime'
Config::DBPREF.
'profiles as profiles' =>
array(
'birthdate','sex','useremail','public_mail',
* Űrlapmezők neveit kulcsként tartalmazó tömb visszaadása
* Megvizsgálja, érvényesek-e a megadott adatok
* @param User $user Példányosított User objektum
* @return boolean True, ha nincs hiba. És false, ha hibásak az adatok
if (($len =
strlen($user->username)) < (int)
Config::MINLENGTH_USERNAME
or $len > (int)
Config::MAXLENGTH_USERNAME)
self::$errors[] =
"A név ".
Config::MINLENGTH_USERNAME.
"-".
Config::MAXLENGTH_USERNAME.
" karakter hosszú lehet!";
else if (!preg_match('/'.
Config::USERNAME_PATTERN.
'/i',$user->username)
self::$errors[] =
"A felhasználónév nem megfelelő formátumú!<br />
(0-9: max 2db, a-z karakterek és 1 darab '_' karakter)";
else if (UserList::exists('username',$user->username,false))
self::$errors[] =
"Foglalt felhasználó név!";
if (!PHPMailer::ValidateAddress($user->T_profiles_useremail))
self::$errors[] =
"Az e-mail cím érvénytelen!";
else if (UserList::exists('useremail', $user->T_profiles_useremail))
self::$errors[] =
"Van már ilyen e-mail cím az adatbázisban! ";
else if (trim($user->T_profiles_useremail) !=
trim($_POST['register']['reuseremail']))
self::$errors[] =
"A két e-mail cím nem egyezik!";
if (mb_strlen($user->userpass,Config::DBCHARSET) <
($min =
Config::MINLENGTH_PASSWORD)) {
self::$errors[] =
"A jelszó minimum $min karakter lehet!";
} else if ($user->userpass !=
Login::getPasswordHash($_POST['register']['reuserpass'])){
self::$errors[] =
"A két jelszó nem egyezik!";
foreach(self::$values as $key =>
$rec)
$tmp =
(!isset
($_POST['register'][$key])) ?
'' :
trim($_POST['register'][$key]);
self::$errors[] =
"Minden mező kitöltése kötelező!";
if (!isset
($_POST['code']) or !isset
($_SESSION['captcha_code']) or
strtolower($_POST['code']) !=
strtolower($_SESSION['captcha_code']))
self::$errors[] =
"Érvénytelen ellenőrzőkód!";
if (count(self::$errors) )
* Aktivációs link létrehozása
* @param int $id User id-je
* @param string $email User email címe
* @param string $file Fájlnév, ahova az aktivációs link mutat
* @return string Aktivációs link
public static function createLink($id,$email,$file=
null)
if (isset
($url['query']))
$get['code'] =
self::createHash($id, $email);
* Az aktivációs linkhez a code hash létrehozása
* @param int $id User id-je
* @param string $email User email címe
* @return string Code hash Base64 formában
* @return mixed False, ha nem sikerült a regisztráció. Egyébként az új
* felhasználó azonosítója.
if (!self::isValidInput(($user =
self::createUser()))) {
$userid =
self::addUser($user);
//Ha az email aktiválás ki van kapcsolva, nem küldi ki az aktiváló emailt
//de akkor sem, ha admin regisztrált
if (!Config::EMAIL_ACTIVATION)
$link =
self::createLink($userid,$user->T_profiles_useremail);
"Kedves ".
$user->username.
"!<br /><br />".
PHP_EOL.
"Valaki regisztrált a nevedben az oldalunkra. ".
"Amennyiben nem te voltál, nyugodtan hagyd figyelmen kívül a levelet.<br /><br />".
PHP_EOL.
"A következő linkre kattintva aktiválhatod a hozzáférésedet:<br />".
PHP_EOL.
"<a href='$link'>$link</a>";
* User felvétele adatbázisba
* Az {@link IsMySQLListClass} osztály gondoskodik az objektumként kapott user adatbázisba viteléről
* @param User $user Példányosított User objektum
public static function addUser($user)
$user->keyName =
'userid';
* Egy új User létrehozása
* @return User Már az elészült User objektum
$user =
new User(self::getRecord());
foreach (self::getRecord() as $_record)
foreach ($_record as $key =>
$field)
if ($field ==
'useremail') continue;
$user->$field =
(isset
($_POST['register'][$field])) ?
$_POST['register'][$field] :
'';
$email =
$_POST['register']['useremail'];
if (Config::EMAIL_ACTIVATION)
$user->T_profiles_useremail =
$email;
$user->useremail =
$email;
mysql_real_Escape_string($_POST['register']['bdday']);
$user->public_mail =
($_POST['register']['public_mail'] ==
'yes') ?
1 :
0;
$user->newsreadtime =
$ts;
* @param int $id User id-je
* @param string $code code Hash ($_GET['code'])
* @return boolean True, ha sikeres volt, false, ha sikertelen
public static function activate($id,$code)
$pref.
'users as users'=>
array("userid",'useremail'),
$pref.
'profiles as profiles'=>
array("useremail")
$user->keyName =
"userid";
if (empty($user->userid) or
self::createHash($user->userid, $user->T_profiles_useremail) !=
$code or
"select count(useremail) from ".
$pref.
"users where useremail = '".
$user->T_profiles_useremail.
"'"))) >
0
if ($user->T_users_useremail !=
$user->T_profiles_useremail)
$user->T_users_useremail =
$user->T_profiles_useremail;
public static function errors()
Documentation generated on Sun, 04 Apr 2010 22:43:50 +0200 by phpDocumentor 1.4.1