จากบทความก่อนผมก็จบทิ้งท้ายไว้ด้วยประโยคว่า "เอาไว้เจอกันในบทควาามหน้าครับ วิธีการ 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 ผมก็อป ไปใส่ ไว้ใน ดรีม เเร้วมันเป็นตัว สีดำหมดเลย อะครับ
ตอบลบทำไงดี
ความคิดเห็นนี้ถูกผู้เขียนลบ
ตอบลบ