จากบทความก่อนผมก็จบทิ้งท้ายไว้ด้วยประโยคว่า "เอาไว้เจอกันในบทควาามหน้าครับ วิธีการ Login แบบ OOP PHP" ทีนี้ผมก็มาคิดว่าทำ Login อย่างเดียวมันน้อยไปหรือเปล่า ก็เลยขอเพิ่มวิธีลงทะเบียนสมัครสมาชิกด้วยก็แล้วกัน เพราะว่าผมคงจะขอจบบทความ ที่เกี่ยวกับ OOP PHP ไว้เพียงแค่บทนี้ คิดว่านะครับผม.. บทความนี้เป็นเพียงวิธีการอย่างง่ายเท่านั้นนะครับ เพราะผมก็ทำอย่างยากไม่เป็นเสียด้วยซิ อิอิ... LET'S GO->
SQL สำหรับทดสอบ
CREATE TABLE `members` ( `user_id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL DEFAULT '', `password` varchar(255) NOT NULL DEFAULT '', `emailaddress` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`user_id`) );ไฟล์ที่ต้องมี database.php, MySqlConn.php, ซึ่งเป็นไฟล์ที่ยกมาจากบทความก่อนหน้านี้ที่เกี่ยวกับ OOP
ก่อนที่จะเริ่มผมก็ต้องขอ อัพเดท function where(); ก่อนถามว่าทำไม ก็เพราะว่าฟังก์ชั่นเดิมไม่สามารถใช้
Logical Operators ได้คือ and กับ or ดังนั้นผมก็จะอัพเดทเสียใหม่ดังนี้
ไฟล์ MySqlConn.php
public function where($data, $opera='') { if(!empty($data)){ $keys = array_keys($data); $where = "WHERE "; for($i = 0; $i < count($data); $i++) { if(is_string($data[$keys[$i]])){ $where .= $keys[$i]."='".$data[$keys[$i]]."'"; if($i != count($data)-1){ $where .= " $opera ";} } } $this->_where = $where; } }จากโค้ดด้านบน จะรับ parameter มาสองตัว ตัวแรกเป็นแบบ array ส่วนตัวที่สองเป็น Operators พอตอนใช้งานเราก็
เรียกแบบนี้
$data = array( 'username' => $_POST['username'], 'password' => $_POST['password'], ); $Db->where($data, 'or');ok ครับเรามาเริ่มวิธีสมัครสมาชิกแบบ OOP ได้แล้วซึ่งขอบอกว่าไม่ยากเลยครับ
เราจะสร้าง form กันก่อนแแบบนี้
<div id="signup"> <form name="form1" method="post" action="index.php"> name: <input type="text" name="username"/><br/> pass: <input type="password" name="password"/><br/> pass confirm: <input type="password" name="conpassword"/><br/> email: <input type="text" name="email"/><br/> <input type="submit" name="signup" value="Submit"/> </form> </div>หลังจากนั้นเราก็จะรับค่า username กับ email ไปเช็คกับฐานข้อมูล ว่า email หรือ username นี้มีการใช้งานไปแล้วหรือยัง
แบบนี้
เริ่มด้วยการนำเข้าไฟล์ MySqlConn.php
include_once('MySqlConn.php');ตามด้วยการสร้างอ็อบเจกต์
$Db = new MySqlConn; if (isset($_POST['signup'])) { $data = array( 'username' => $_POST['username'], 'emailaddress' => $_POST['email'], ); $Db->where($data, 'or'); $num = $Db->num_rows('members'); if ($num > 0) { echo '<font color="red">Sorry Username หรือ Email นี้ได้ถูกใช้งานไปแล้ว</font>'; } else{ $data = array( 'username' => $_POST['username'], 'password' => $_POST['password'], 'emailaddress' => $_POST['email'], ); $Db->insert('members', $data); } }จากโค้ดด้านบนเราส่ง username กับ email ไปเช็คว่ามีการใช้งานแล้วหรือยังด้วยฟังก์ชั่นสองฟังก์ชั่นคือ
$Db->where($data, 'or'); $num = $Db->num_rows('members');//นับแถวถ้า $num มากกว่า 0 ก็คือ 1 ขึ้นไปแสดงว่าถูกใช้งานแล้ว แต่ถ้าเป็น 0 ก็ให้ insert ข้อมูลที่ต้องการด้วยฟังก์ชั่น
$Db->insert('members', $data);เพียงแค่นี้เราก็ได้ระบบการสมัครสมาชิกแล้ว ที่เหลือเราก็เพิ่มเติมการ validate ในรูปแบบต่างตามต้องการ ตัวอย่าง
ไฟ register.php
<h1>Signup Here</h1> <?php include_once('MySqlConn.php'); $Db = new MySqlConn; if (isset($_POST['signup'])) { $data = array( 'username' => $_POST['username'], 'emailaddress' => $_POST['email'], ); $Db->where($data, 'or'); $num = $Db->num_rows('members'); if ($num > 0) { echo '<font color="red">Sorry Username หรือ Email นี้ได้ถูกใช้งานไปแล้ว</font>'; } else { $data = array( 'username' => $_POST['username'], 'password' => $_POST['password'], 'emailaddress' => $_POST['email'], ); if(!empty($data['username']) && !empty($data['password']) && !empty($data['emailaddress']) ){ if($_POST['password'] == $_POST['conpassword']){ $Db->insert('members', $data); echo "<font color='blue'>Success ขอบคุณที่ท่านได้สมัครสมาชิกกับเรา</font>"; } else{ echo '<font color="red">การยืนยัน Password ไม่ตรงกัน</font>'; } } else{ echo '<font color="red">กรุณากรอกข้อมูลให้ครบ</font>'; } } } ?>เสร็จแล้วสำหรับการสมัครสมาชิก ต่อไปก็ Login ต่อเลยครับ อันนี้ง่ายมากๆเลยครับ เพราะเราก็อปเอาโค้ดวิธีสมัครสมาชิก
มาใช้นั่นเอง แต่คราวนี้เราใช้ operator เป็น and แบบนี้ $Db->where($data, 'and');
สร้าง form กันก่อน
ไฟ login.php
<h1>Login Here</h1> <div id="login"> <form name="form1" method="post" action="index.php"> name: <input type="text" name="username"/><br/> pass: <input type="password" name="password"/><br/> <input type="submit" name="login" value="Submit"/> </form> </div>จากนั้นสร้างอ็อบเจ็กต์
<?php $DbLogin = new MySqlConn; if (isset($_POST['login'])) { $data = array( 'username' => $_POST['username'], 'password' => $_POST['password'], ); $DbLogin->where($data, 'and'); $num = $DbLogin->num_rows('members'); if ($num > 0) { echo '<font color="blue">ไชโย Login สำเร็จแล้ว....</font>'; } else { echo 'อ้าว!.. Username หรือ Password ไม่ถูกต้องนะ'; } } ?>เพียงเท่านี้เราก็ได้วิธีการ Signup และ Login แบบ OOP ไว้ใช้งานแล้ว ที่เหลือท่านก็ลองไปปรับปรุง พัฒนากัน
ต่อไปดูนะครับ แล้วอย่าลืมนำมา บอกเล่าเก้าสิบ เฮ้ย!... บอกเล่าสู่กันฟังบ้างนะครับ
สำหรับบทความที่เกี่ยวกับ OOP PHP Object-oriented programming ก็คงจะจบไว้ก่อนเพียงเท่านี้....
ผิดพลาดอย่างไรก็ต้องขอ อภัย ด้วยครับ......
คือว่า ไฟ MySqlConn.php ผมก็อป ไปใส่ ไว้ใน ดรีม เเร้วมันเป็นตัว สีดำหมดเลย อะครับ
ตอบลบทำไงดี
ความคิดเห็นนี้ถูกผู้เขียนลบ
ตอบลบ