نمایش نتایج 1 تا 5 از 5

نام تاپیک: نظر در مورد کلاس ثبت کاربر

  1. #1

    نظر در مورد کلاس ثبت کاربر

    با سلام.

    دوستان این اولین کلاس من هستش.
    این کلاس برای ثبت اطلاعات یک کاربر در دیتابیس هستش.
    فرض کنید که قبل از ساختن یک شی از این کلاس، به دیتابیس وصل شده ایم.
    ممکنه که یک نظر روش بدید تا من ببینم که دارم کار رو درست انجام میدم یا نه و ادامه بدم کار رو؟
    در واقع میخوام بدونم که آیا دارم مفاهیم شی گرایی رو درست پیاده میکنم یا نه؟


    <?php

    class Register
    {

    private $uName;
    private $pass;
    private $cpass;
    private $mpass;
    private $email;
    private $regTime;
    private $membersTable;

    public function GetUserData($uName, $pass, $cpass, $email, $regTime)
    {
    $this->uName = $uName;
    $this->pass = $pass;
    $this->cpass = $cpass;
    $this->email = $email;
    $this->regTime = $regTime;
    }

    public function CheckEntries()
    {
    if(empty($this->uName))
    {
    return(false);
    }

    if(empty($this->pass))
    {
    return((false));
    }

    if(empty($this->email))
    {
    return((false));
    }

    return(true);
    }

    public function CheckPassword()
    {
    if($this->pass != $this->cpass)
    {
    return(false);
    }

    return(true);
    }

    public function GetMembersTable($membersTable)
    {
    $this->membersTable = $membersTable;
    }

    public function CheckUserExists()
    {
    $sql = "SELECT uname FROM ". $this->membersTable ." where uname ='$this->uName'";
    $result = mysql_query($sql);

    if (mysql_numrows($result) > 0) {
    return(true);
    }

    return(false);
    }

    private function HashPassword()
    {
    $this->mpass = md5($this->pass);
    }

    private function SetRegTime()
    {
    $this->regTime = time();
    }

    public function AddMember()
    {
    $sql = "INSERT INTO ". $this->membersTable ." (uname, pass, email, regtime) VALUES ('$this->uName', '$this->mpass', '$this->email', '$this->regTime')";
    $result = mysql_query($sql);

    if(!$result)
    {
    return(false);
    }

    return(true);
    }
    }

    ?>


    بسیار ممنونم از کمکتون.

  2. #2
    کاربر دائمی آواتار Yousha
    تاریخ عضویت
    مهر 1387
    محل زندگی
    ایران - تهران
    پست
    515

    نقل قول: نظر در مورد کلاس ثبت کاربر

    سلام،
    برای استفاده از همچین توابعی نیاز به ساخت شی نیست. میتونید از خود کلاس(کپسوله سازی) استفاده کنید.
    توابع را static کنید و بجای $this-> از self/parent استفاده کنید.
    :)

  3. #3

    نقل قول: نظر در مورد کلاس ثبت کاربر

    با سلام.
    خیلی ممنونم.

    فقط با عرض شرمندگی، متوجه نشدم این رو:
    برای استفاده از همچین توابعی نیاز به ساخت شی نیست. میتونید از خود کلاس(کپسوله سازی) استفاده کنید.
    و دیگری اینکه چرا باید از توابع static استفاده کنم؟ به دلیل سرعت بیشتر؟ و اینکه آیا استفاده از توابع static، برنامه نویسی شی گرا رو شبیه برنامه نویسی رویه ای نمیکنه؟

    ممنون.
    آخرین ویرایش به وسیله S.Malekzadeh : شنبه 31 مرداد 1388 در 21:38 عصر

  4. #4
    کاربر دائمی آواتار Yousha
    تاریخ عضویت
    مهر 1387
    محل زندگی
    ایران - تهران
    پست
    515

    نقل قول: نظر در مورد کلاس ثبت کاربر

    و دیگری اینکه چرا باید از توابع static استفاده کنم؟ به دلیل سرعت بیشتر؟ و اینکه آیا استفاده از توابع static، برنامه نویسی شی گرا رو شبیه برنامه نویسی رویه ای نمیکنه
    بله، و اینکه بدون نیاز به ساخت شی کلاس هم قابل دسترسی هستند.

    من کلاستون رو کمی بهینه سازی کردم. از این استفاده کنید:

    <?php
    final class Register
    {
    private $uName, $pass, $cpass, $mpass, $email;
    private $regTime, $membersTable;

    final public function Register($uName, $pass, $cpass, $email, $regTime)
    {
    $this->uName= &$uName;
    $this->pass= &$pass;
    $this->cpass= &$cpass;
    $this->email= &$email;
    $this->regTime= &$regTime;
    unset($uName, $pass, $cpass, $email, $regTime);
    }

    final public function CheckEntries()
    {
    return((empty($this->uName) || empty($this->pass) || empty($this->email)) ? false : true);
    }

    final public function CheckPassword()
    {
    return(($this->pass != $this->cpass) ? false : true);
    }

    final public function GetMembersTable($membersTable)
    {
    $this->membersTable= &$membersTable;
    unset($membersTable);
    }

    final public function CheckUserExists()
    {
    $result= &mysql_query("SELECT uname FROM " . $this->membersTable . " where uname= '$this->uName';");
    return((mysql_numrows($result) > 0) ? true : false);
    }

    final public function AddMember()
    {
    $result= mysql_query("INSERT INTO " . $this->membersTable . " (uname, pass, email, regtime) VALUES('$this->uName', '$this->mpass', '$this->email', '$this->regTime');");
    return(!$result ? false : true);
    }

    final private function _HashPassword()
    {
    $this->mpass= &md5(&$this->pass);
    }

    final private function _SetRegTime()
    {
    $this->regTime= &time();
    }

    final public function __destruct()
    {
    unset($this->uName, $this->pass, $this->cpass, $this->mpass, $this->email, $this->regTime, $this->membersTable);
    }
    };
    ?>

    $objRegister= new Register('usrnme', 'paswd', 'paswd', 'eml', '22.22.22');

  5. #5

    نقل قول: نظر در مورد کلاس ثبت کاربر



    آقا شدیدا دست شما درد نکنه.
    خیلی لطف کردید.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •