PHP Workshop ระบบสมาชิก แบบละเอียด ตอนที่ 3

ต่อจากบทความที่ บทความนี้เป็นการเขียนโปรแกรมต่อจาก การเข้าสู่ระบบ บทความนี้จะเขียนในส่วนของจัดการข้อมูลส่วนตัว โดยจะเขียนเป็น Code และอธิบายให้กับผู้อ่านให้เข้าใจถึงกระบวนการทำงานแต่ละไฟล์

– เปิดโปรแกรม Netbeans IDE ขึ้นมาแล้วสร้างไฟล์ mainpage.php แล้วนำ code นี้ไปใส่ในไฟล์
[php]
<?php
session_start();
if (isset($_SESSION[‘checkSign’]) == ‘itoffside’) {
?>
<html>
<head>
<meta charset=”UTF-8″>
<title></title>
</head>
<body>
<h3>หน้าแรกระบบจัดการสมาชิก</h3>
<ul>
<li><a href=”mainpage.php”>หน้าแรก</a></li>
<?php
if ($_SESSION[‘active’] == 2) {
?>
<li><a href=”manager_user.php”>จัดการผู้ใช้งาน</a></li>
<?php } ?>
<li><a href=”update_profile.php”>แก้ไขข้อมูลส่วนตัว</a></li>
<li><a href=”signout.php”>ออกจากระบบ</a></li>
</ul>
</body>
</html>
<?php
} else {
echo “<meta charset=\”UTF-8\”>”;
echo “คุณไม่ได้เข้าสู่ระบบ กรุณาเข้าสู่ระบบก่อน!”;
echo “<br/>”;
echo “<a href=’signin.php’>คลิกเพื่อเข้าสู่ระบบ</a>”;
}
?>
[/php]
อธิบาย Code ด้านบน
ไฟล์ mainpage.php มีการตรวจสอบการเข้าสู่ระบบและแสดงรายการเมนู “แก้ไขข้อมูลส่วนตัว” และ เมนู “จัดการผู้ใช้งาน” ซึ่งเมนูนี้ผู้ดูแลระบบเท่านั้นที่สามารถมองเห็นได้

 

– สร้างไฟล์ “update_profile.php” แล้วใส่ code ลงไปในไฟล์
[php]
<?php
session_start();
if (isset($_SESSION[‘checkSign’]) == ‘itoffside’) {
/*
* include file
*/
include ‘config.php’;

/*
* set var
*/
$_SESSION[‘frmAction’] = md5(‘itoffside.com’ . rand(1, 9999));

/*
* logical programming&Database
*/
$meSQL = “SELECT * FROM member WHERE id='{$_SESSION[‘id’]}’ “;
$meQuery = mysql_query($meSQL);
if ($meQuery == TRUE) {
$meResult = mysql_fetch_assoc($meQuery);
} else {
echo ‘error’;
}
?>
<html>
<head>
<meta charset=”UTF-8″>
<title>แก้ไขข้อมูล <?php echo $meResult[‘username’]; ?></title>
</head>
<body>
<h3>หน้าแรกระบบจัดการสมาชิก</h3>
<ul>
<li><a href=”mainpage.php”>หน้าแรก</a></li>
<?php
if ($_SESSION[‘active’] == 2) {
?>
<li><a href=”manager_user.php”>จัดการผู้ใช้งาน</a></li>
<?php } ?>
<li><a href=”update_profile.php”>แก้ไขข้อมูลส่วนตัว</a></li>
<li><a href=”signout.php”>ออกจากระบบ</a></li>
</ul>
<hr/>
<h4>จัดการข้อมูลส่วนตัว</h4>
<form name=”update_profile-action” action=”update_profile-action.php” method=”POST”>
<table border=”1″ cellpadding=”5″>
<tr>
<td style=”text-align: right;width: 200px; font-weight: bold”>ไอดี</td>
<td><input type=”text” name=”id” value=”<?php echo $meResult[‘id’]; ?>” size=”40″ readonly=”readonly” disabled=”disabled” /></td>
</tr>
<tr>
<td style=”text-align: right;width: 200px; font-weight: bold”>ชื่อผู้ใช้งาน</td>
<td><input type=”text” name=”username” value=”<?php echo $meResult[‘username’]; ?>” size=”40″ readonly=”readonly” disabled=”disabled” /></td>
</tr>
<tr>
<td style=”text-align: right;width: 200px; font-weight: bold”>ชื่อจริง</td>
<td><input type=”text” name=”firstname” value=”<?php echo $meResult[‘firstname’]; ?>” size=”40″ /></td>
</tr>
<tr>
<td style=”text-align: right;width: 200px; font-weight: bold”>นามสกุลจริง</td>
<td><input type=”text” name=”lastname” value=”<?php echo $meResult[‘lastname’]; ?>” size=”40″ /></td>
</tr>
<tr>
<td style=”text-align: right;width: 200px; font-weight: bold”>เพศ</td>
<td>
<input type=”radio” name=”sex” value=”1″
<?php
if ($meResult[‘sex’] == 1) {
echo ‘checked’;
}
?>
/>ชาย |
<input type=”radio” name=”sex” value=”2″
<?php
if ($meResult[‘sex’] == 2) {
echo ‘checked’;
}
?>
/>หญิง
</td>
</tr>
<tr>
<td style=”text-align: right;width: 200px; font-weight: bold”>เบอร์โทรศัพท์</td>
<td><input type=”text” name=”phone” value=”<?php echo $meResult[‘phone’]; ?>” size=”40″ /></td>
</tr>
<tr>
<td style=”text-align: right;width: 200px; font-weight: bold”>อีเมล์</td>
<td><input type=”text” name=”email” value=”<?php echo $meResult[’email’]; ?>” size=”40″ /></td>
</tr>
<tr>
<td style=”text-align: right;width: 200px; font-weight: bold”>สถานะการใช้งาน</td>
<td>
<?php
if ($meResult[‘active’] == 1 OR $meResult[‘active’] == 2) {
echo ‘เปิดการใช้งาน’;
} else {
echo ‘ปิดการใช้งาน’;
}
?>
</td>
</tr>
<tr>
<td style=”text-align: right;width: 200px; font-weight: bold”>วันที่สร้าง</td>
<td><?php echo $meResult[‘create_date’]; ?></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type=”submit” name=”submit” value=”บันทึกข้อมูล” /></td>
</tr>
</table>
<input type=”hidden” name=”frmAction” value=”<?php echo $_SESSION[‘frmAction’]; ?>” />
</form>
</body>
</html>
<?php
mysql_close();
} else {
echo “<meta charset=\”UTF-8\”>”;
echo “คุณไม่ได้เข้าสู่ระบบ กรุณาเข้าสู่ระบบก่อน!”;
echo “<br/>”;
echo “<a href=’signin.php’>คลิกเพื่อเข้าสู่ระบบ</a>”;
}
?>
[/php]
อธิบาย Code
ในไฟล์ update_profile.php เป็นการแสดงหน้าจอข้อมูลส่วนตัวของ user ที่เข้ามา Signin โดยมีการดึงข้อมูลส่วนตัวจาก mysql มาแสดงผล ที่ฟอร์มแก้ไขข้อมูล เมื่อผู้ใช้มีการเปลี่ยนแปลงข้อมูลในฟอร์มนี้แล้วกดปุ่มบันทึกข้อมูลลงไป จะทำการ action ไปที่ไฟล์ “update_profile-action.php” เมื่อเขียนโปรแกรมเสร็จแล้วคุณจะได้หน้าจอตามตัวอย่างรูปภาพด้านล่างนี้ครับ
php-workshop-member-07

 

– สร้างไฟล์ “update_profile.php” แล้วใส่ code ลงไปในไฟล์
[php]
<?php

session_start();
if (isset($_SESSION[‘checkSign’]) == ‘itoffside’) {
if (isset($_SESSION[‘frmAction’]) == isset($_POST[‘frmAction’])) {

/*
* include file
*/
include ‘config.php’;

/*
* set var
*/
$firstname = mysql_real_escape_string(trim($_POST[‘firstname’]));
$lastname = mysql_real_escape_string(trim($_POST[‘lastname’]));
$sex = mysql_real_escape_string(trim($_POST[‘sex’]));
$phone = mysql_real_escape_string(trim($_POST[‘phone’]));
$email = mysql_real_escape_string(trim($_POST[’email’]));
$modified_date = date(‘Y-m-d H:i:s’);

/*
* unset var
*/
unset($_SESSION[‘frmAction’]);

/*
* logical programming&Database
*/
$meSQL = “UPDATE member “;
$meSQL .= “SET firstname='{$firstname}’, “;
$meSQL .= “lastname='{$lastname}’, “;
$meSQL .= “sex='{$sex}’, “;
$meSQL .= “phone='{$phone}’, “;
$meSQL .= “email='{$email}’, “;
$meSQL .= “modified_date='{$modified_date}’ “;
$meSQL .= “WHERE id='{$_SESSION[‘id’]}’ “;
$meQuery = mysql_query($meSQL);
if ($meQuery == TRUE) {
echo “<meta charset=\”UTF-8\”>”;
echo “บันทึกข้อมูลสำเร็จ”;
echo “<br/>”;
echo “<a href=’mainpage.php’>ไปหน้าจัดการข้อมูล</a>”;
} else {
echo “<meta charset=\”UTF-8\”>”;
echo “มีปัญหาการบันทึกข้อมูล กรุณากลับไปบันทึกใหม่”;
echo “<br/>”;
echo “<a href=’update_profile.php’>กลับไปหน้าเดิม</a>”;
}
mysql_close();
} else {
echo “<meta charset=\”UTF-8\”>”;
echo “มีข้อผิดพลาดระหว่าง Session!”;
echo “<br/>”;
echo “<a href=’update_profile.php’>กลับไปหน้าเดิม</a>”;
}
} else {
echo “<meta charset=\”UTF-8\”>”;
echo “คุณไม่ได้เข้าสู่ระบบ กรุณาเข้าสู่ระบบก่อน!”;
echo “<br/>”;
echo “<a href=’signin.php’>คลิกเพื่อเข้าสู่ระบบ</a>”;
}
?>
[/php]
อธิบาย Code
หลังจากมีการกดปุ่ม บันทึกข้อมูล ค่าฟอร์มจาก update_ profile.php จะส่งมาที่ไฟล์ “update_profile-action.php” ซึ่งในไฟล์นี้เองจะนำค่าฟอร์มไปบันทึกลงฐานข้อมูลด้วยการเขียนโปรแกรมเชื่อมต่อและ update ข้อมูล

อ่านต่อ บทความต่อไปของ PHP Workshop ระบบสมาชิก แบบละเอียด ตอนที่ 4

You May Also Like

About the Author: benext

โปรแกรมเมอร์ ติดต่อ : itoffside@hotmail.com

3 Comments

  1. พอรันแล้วมันขึ้นแบบนี้อะครับ

    Notice: Use of undefined constant ‘password’ – assumed ‘‘password’’ in C:\xampp\htdocs\Member\signin-action.php on line 16

    Notice: Undefined index: ‘password’ in C:\xampp\htdocs\Member\signin-action.php on line 16

    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\Member\signin-action.php on line 28
    ไม่สามารถเข้าสู่ระบบได้เนื่องจากรหัสผิดพลาด
    กลับไปหน้าเดิม

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.