Source for file ChangeProfile.class.php

Documentation is available at ChangeProfile.class.php

  1. <?php
  2. /**
  3.  * R.E. Login 2.0 - Profil módosítás - class/ChangeProfile.class.php
  4.  *
  5.  * Profil módosítás megvalósítása<br />
  6.  * <br />
  7.  * <b>Dátum:</b> 2010.04.02.
  8.  *
  9.  * <b>Szerző weboldala:</b> {@link http://rimelek.hu/}<br />
  10.  * <b>Login weblapja:</b> {@link http://rimelek.hu/meghivos-loginrendszer-r-e-login-v2-0 R.E. Login v2.0}
  11.  *
  12.  * @author Takács Ákos (Rimelek), programmer [at] rimelek [dot] hu
  13.  * @copyright Copyright (C) 2010, Takács Ákos
  14.  * @license http://www.gnu.org/licenses/gpl.html
  15.  * @package RELogin
  16.  * @version 2.0
  17.  */
  18.  
  19. /**
  20.  * Profil módosítás
  21.  *
  22.  * <b>Szerző weboldala:</b> {@link http://rimelek.hu/}<br />
  23.  * <b>Login weblapja:</b> {@link http://rimelek.hu/meghivos-loginrendszer-r-e-login-v2-0 R.E. Login v2.0}
  24.  *
  25.  * @author Takács Ákos (Rimelek), programmer [at] rimelek [dot] hu
  26.  * @copyright Copyright (C) 2010, Takács Ákos
  27.  * @license http://www.gnu.org/licenses/gpl.html
  28.  * @package RELogin
  29.  */
  30. {
  31.     /**
  32.      * Módosítandó user példánya.
  33.      *
  34.      * @var User 
  35.      */
  36.     private static $user;
  37.  
  38.     /**
  39.      * Hibaüzenetek tömbje
  40.      *
  41.      * @var array 
  42.      */
  43.     private static $errors array();
  44.  
  45.     /**
  46.      * Űrlapon megjelenítendő inputok értékei
  47.      *
  48.      * @var array 
  49.      */
  50.     private static $data array(
  51.         'lastname'=>'','firstname'=>'','bdyear'=>'','avatar'=>'',
  52.         'bdmonth'=>'','bdday'=>'','sex'=>'','country'=>'',
  53.         'city'=>'','useremail'=>'','public_mail'=>'','website'=>'',
  54.         'msn'=>'','skype'=>'','other'=>''
  55.     );
  56.  
  57.     /**
  58.      * Hibaüzenetek tömbje
  59.      *
  60.      * @return array 
  61.      */
  62.     public static function errors()
  63.     {
  64.         return self::$errors;
  65.     }
  66.  
  67.     /**
  68.      * Űrlapon megjelenítendő inputok értékeinek kezelése
  69.      *
  70.      * Paraméter nélkül hívva az összes értéket visszaadja.
  71.      * Egy paraméterrel az $index-nek megfelelő értéket visszaadja.
  72.      * Két paraméterrel hívva az $index-nek megfelelő értéket $value-ra állítja.
  73.      * Utóbbi esetben nem tér vissza semmivel.
  74.      *
  75.      * @param string $index 
  76.      * @param mixed $value 
  77.      * @return mixed 
  78.      */
  79.     public static function data($index=null$value=null)
  80.     {
  81.         $num func_num_args();
  82.         if ($num == 0return self::$data;
  83.         if ($num == 1return isset(self::$data[$index]self::$data[$indexnull;
  84.         self::$data[$index$value;
  85.     }
  86.  
  87.     /**
  88.      * Elküldött adatok ellenőrzése.
  89.      *
  90.      * @param array $post Posztolt adatok tömbjének referenciája.
  91.      * @return bool Érvényes adatokat adott-e meg a user.
  92.      */
  93.     private static function isValidInput(&$post)
  94.     {
  95.         require_once System::getIncLoginDir().'libs/PHPMailer/class.phpmailer.php';
  96.         if (!isset($post['userpass']or Login::getPasswordHash($post['userpass']!= System::$user->userpass)
  97.         {
  98.             self::$errors['Hibás jelszó!';
  99.         
  100.         else if (!empty($post['newuserpass']))
  101.         {
  102.             if ($post['newuserpass'!= $post['renewuserpass'])
  103.             {
  104.                 self::$errors['A két új jelszó nem egyezik!';
  105.             }
  106.             if (strlen($post['userpass']($min Config::MINLENGTH_PASSWORD))
  107.             {
  108.                 self::$errors[=  "A jelszó minimum $min karakter lehet!";
  109.             }
  110.         }
  111.         if (isset($post['useremail']and !PHPMailer::ValidateAddress($post['useremail']))
  112.         {
  113.             self::$errors['Az e-mail cím érvénytelen formátumú!';
  114.         }
  115.         else if (array_shift(mysql_fetch_row(mysql_query("select count(userid) from ".Config::DBPREF.
  116.                 "users where useremail = '".mysql_real_escape_string($post['useremail']).
  117.                 "' and userid != ".self::$user->T_users_userid))))
  118.         {
  119.             self::$errors['Már létezik ilyen e-mail cím!';
  120.         }
  121.  
  122.         $y date('Y');
  123.         if (isset($post['bdyear']and max(1900min((int)$y(int)$post['bdyear'])) != $post['bdyear'])
  124.         {
  125.             self::$errors['Az évszám 1900 és '.$y.' között lehet! - ';
  126.         }
  127.         if (isset($post['bdmonth']and max(1min((int)$post['bdmonth']12)) != $post['bdmonth'])
  128.         {
  129.             self::$errors['A hónap 1 és 12 között lehet!';
  130.         }
  131.         if (isset($post['bdday']and max(1min((int)$post['bdday']31)) != $post['bdday'])
  132.         {
  133.             self::$errors['A nap 1 és 31 között lehet!';
  134.         }
  135.  
  136.  
  137.         return count(self::errors()) == 0;
  138.     }
  139.  
  140.     /**
  141.      *
  142.      * @param array $post Elküldött adatok tömbjének referenciája.
  143.      * @param User $user Módosítandó felhasználó példánya.
  144.      * @return bool Sikeres volt-e a módosítás.
  145.      */
  146.     public static function request(&$post,User $user)
  147.     {
  148.         self::$user $user;
  149.         if (!self::isValidInput($post))
  150.         {
  151.             return false;
  152.         }
  153.         
  154.         $email strtolower(trim($post['useremail']));
  155.         if ($email != strtolower(self::$user->T_users_useremail))
  156.         {
  157.             if (Config::EMAIL_ACTIVATION)
  158.             {
  159.                 self::$user->T_profiles_useremail $email;
  160.                 require_once System::getIncLoginDir().'classes/Register.class.php';
  161.                 $link  Register::createLink(self::$user->T_users_userid$email,Config::FILE_REGISTER);
  162.                 $body =
  163.                     "Az e-mail címed sikeresen megváltoztattad.".PHP_EOL.
  164.                     "Kattints az alábbi linkre az aktiválásához: <br />".PHP_EOL.
  165.                     "<a href='".$link."'>".$link."</a>";
  166.                 System::sendEmail($email"E-mail cím aktiválás"$body);
  167.             }
  168.             else
  169.             {
  170.                 self::$user->useremail $email;
  171.             }
  172.         }
  173.  
  174.         if ($post['newuserpass'])
  175.         {
  176.             $userpass Login::getPasswordHash($post['newuserpass']);
  177.             self::$user->userpass $userpass;
  178.             Login::changePassword($userpass);
  179.  
  180.         }
  181.  
  182.  
  183.         self::$user->birthdate $post['bdyear']."-".$post['bdmonth']."-".$post['bdday'];
  184.         self::$user->public_mail $post['public_mail'== 'yes' true false;
  185.         
  186.         self::$user->sex $post['sex'== 'f' 'f' 'm';
  187.         self::$user->lastname $post['lastname'];
  188.         self::$user->firstname $post['firstname'];
  189.         self::$user->country $post['country'];
  190.         self::$user->city $post['city'];
  191.         self::$user->website $post['website'];
  192.         self::$user->msn $post['msn'];
  193.         self::$user->skype $post['skype'];
  194.         self::$user->other $post['other'];
  195.         self::$user->avatar $post['avatar'];
  196.  
  197.     
  198.         if (count(self::errors()))
  199.         {
  200.             return false;
  201.         }
  202.  
  203.         self::$user->update();
  204.         return true;
  205.     }
  206. }
  207. ?>

Documentation generated on Sun, 04 Apr 2010 22:43:31 +0200 by phpDocumentor 1.4.1