version 4.1.0

ตัวอย่างระบบสมัครสมาชิก Register

  อังคารที่ 27 มกราคม พ.ศ. 2558 เวลา 08:57:32 น.      3,598 ครั้ง


ตัวอย่างระบบสมัครสมาชิก Register

ตัวอย่างคำสั่ง

 CREATE TABLE `tbl_users` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
  `password` char(40) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(120) CHARACTER SET utf8 NOT NULL,
  `email` varchar(70) COLLATE utf8_unicode_ci NOT NULL,
  `superadmin` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


แก้ไขดังต่อไปนี้

 return new \Phalcon\Config(array(
    'database' => array(
        'adapter'     => 'Mysql', // ประเภทฐานข้อมูล
        'host'        => 'localhost', // host
        'username'    => 'root', // username
        'password'    => '1234', // password
        'dbname'      => 'db_phalcon_tutorial', // database name
    ),
    'application' => array(
        'controllersDir' => __DIR__ . '/../../app/controllers/',
        'modelsDir'      => __DIR__ . '/../../app/models/',
        'viewsDir'       => __DIR__ . '/../../app/views/',
        'pluginsDir'     => __DIR__ . '/../../app/plugins/',
        'libraryDir'     => __DIR__ . '/../../app/library/',
        'cacheDir'       => __DIR__ . '/../../app/cache/',
        'baseUri'        => '/phalcon_tutorial/',
    )
));


เพิ่มเติม บทที่ 2 ดาวโหลดและติดตั้ง Phalcon DevTools V.1.3.4

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 1 | รูปภาพตัวอย่าง

1. เข้าไปที่ URL http://localhost/phalcon_tutorial/webtools.php และเลือก เมนู Models

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 2 | รูปภาพตัวอย่าง

2. คลิกแท็บเมนู "Models" ดังภาพด้านบนนี้ และเลือกตาราง "tbl_users" ดังรูปด้านล่างนี้ กดปุ่ม "Generate"

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 3 | รูปภาพตัวอย่าง

3. สร้างไฟล์ Model "TblUsers.php" สำเร็จแล้ว แต่ยังเสร็จนะครับ เราต้องทำการเปลี่ยนชื่อ Model และ ชื่อ Class ด้วย

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 4 | รูปภาพตัวอย่าง

คำสั่งในไฟล์ Model RegisterUser.php

 use Phalcon\Mvc\Model\Validator\Email as Email;
class RegisterUser extends \Phalcon\Mvc\Model
{
    public function getSource()
    {
        return 'tbl_users'; // กำหนดชื่อตาราง
    }
    
    public $id;
    public $username;
    public $password;
    public $name;
    public $email;
    public $superadmin;
    
    public function validation()
    {
        $this->validate(
            new Email(
                array(
                    'field'    => 'email',
                    'required' => true,
                )
            )
        );
        if ($this->validationHasFailed() == true) {
            return false;
        }
    }
    
}

4. เข้าไปยังไฟล์ Model "TblUsers.php" และทำการแก้ไขชื่อไฟล์ Model และ ชื่อ Class ภายในไฟล์ดังกล่าวเป็น "RegisterUser.php" และ "RegisterUser" ดังตัวอย่าง ตามลำดับ



รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 5 | รูปภาพตัวอย่าง

1. เข้าไปที่เมนู "Controlelrs" ดังภาพ และกรอกชื่อ Controller ที่ต้องการสร้าง คือ "Signup" และกดปุ่ม "Generate"

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 6 | รูปภาพตัวอย่าง

2. สร้างไฟล์ "SignupController.php" สำเร็จแล้ว

สร้าง Method ชื่อว่า registerAction() ตามคำสั่งตัวอย่างต่อไปนี้

 
class SignupController extends \Phalcon\Mvc\Controller 
{

    public function registerAction()
    {
        if ($this->request->isPost())
        {
            if ($this->security->checkToken()) 
            {
            
                $user = new RegisterUser(); // Model
                $name = $this->request->getPost('name','striptags');
                $username = $this->request->getPost('username','alphanum');
                $password = $this->request->getPost('password');
                $email = $this->request->getPost('email','email');
                $repeatPassword = $this->request->getPost('repeatPassword');
                
                if ($password != $repeatPassword) 
                {
                    $this->flash->error('ยืนยัน..รหัสผ่านไม่ถูกต้อง..');
                    return FALSE;
                }
                
                $user->name = $name;
                $user->username = $username;
                $user->password = sha1(md5($password));
                $user->email = $email;
                $user->superadmin = 0;
                $success = $user->save();
                
                if ($success) {
                    $this->flash->success("สมัครสมาชิก สำเร็จแล้ว...");
                    return $this->dispatcher->forward(array(
                        'controller' => 'signup',
                        'action' => 'index'
                    ));
                }else{
                    $this->flash->error('ข้อมูลไม่ถูกต้อง : ระบบไม่สามารถบันทึกข้อมูลสมาชิกได้');
                    return $this->dispatcher->forward(array(
                        'controller' => 'signup',
                        'action' => 'index'
                    ));
                }
            }else{
                $this->flash->error('พบข้อผิดพลาด : ระบบไม่สามารถบันทึกข้อมูลสมาชิก..ได้. กรุณาตรวจสอบข้อมูลใหม่ ครับ');
                return $this->dispatcher->forward(array(
                    'controller' => 'signup',
                    'action' => 'index'
                ));
            }
        }else{
            $this->response->redirect('signup');
        }
    }
}

3. เข้าไปแก้ไขไฟล์ "SignupController.php" ในไดเรคทอรี่ \controllers\SignupController.php และเพิ่ม Method registerAction() ลงไป



รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 7 | รูปภาพตัวอย่าง

1. สร้างโฟล์เดอร์ใหม่ชื่อว่า "signup" ไว้ในไดเรคทอรี่ [skeleton]\app\views\

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 8 | รูปภาพตัวอย่าง

2. สร้างไฟล์ชื่อว่า "index.volt" ไว้ในไดเรคทอรี่ [skeleton]\app\views\signup\

ตัวอย่างคำสั่ง

 {{ content() }}
<div style="width:200px;">
    <h2>สมัครสมาชิก</h2>
    {{ form('signup/register') }}
        <label>ชื่อ-นามสกุล</label>
        {{ text_field('name', 'size': "30") }}
        <label>ชื่อผู้ใช้</label>
            {{ text_field('username', 'size': "30") }}
        <label>รหัสผ่าน</label>
            {{ password_field('password', 'size': "30") }}
        <label>ยืนยันรหัสผ่าน</label>
            {{ password_field('repeatPassword', 'size': "30") }}
        <label>อีเมล์</label>
            {{ text_field('email', 'size': "30") }}
        <input type="hidden" name="<?php echo $this->security->getTokenKey() ?>" 
            value="<?php echo $this->security->getToken(); ?>"/>
        <div>
            {{ submit_button('สมัครสมาชิก') }}
        </div>
    </form>
</div>

3. เขียนคำสั่งต่อไปนี้ลงในไฟล์ "index.volt" ในไดเรคทอรี่ [skeleton]\app\views\signup\index.volt

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 9 | รูปภาพตัวอย่าง

4. เข้าไปที่ URL http://localhost/phalcon_tutorial/signup/ เพื่อทดสอบการสมัครสมาชิกกันได้เลย

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 10 | รูปภาพตัวอย่าง

5. กรอก "ข้อมูลสมาชิก" ลงไป เพื่อใช้ในการทดสอบ และกดปุ่ม "สมัครสมาชิก"

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 11 | รูปภาพตัวอย่าง

6. สมัครสมาชิก สำเร็จแล้ว..

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 12 | รูปภาพตัวอย่าง

7. ตรวจสอบข้อมูลในตาราง "tbl_users" โดยใช้ phpmyadmin จะพบข้อมูลดังรูปภาพด้านบนนี้




นักแปล / นักเขียน / เรียบเรียง

author

เอกบิณ ใจแก้วมา (แม็ก)

"โปรแกรมเมอร์ตัวเล็ก ๆ" สะสมประสบการณ์ด้านการพัฒนาซอฟแวร์มามากกว่า 11 ปี
# ติดตามผลงานได้ที่ | พบกับเราที่ Google+ | Facebook






Comment