ต่อจากบทความที่ บทความนี้เป็นการเขียนโปรแกรมต่อจาก การเข้าสู่ระบบ บทความนี้จะเขียนในส่วนของจัดการข้อมูลส่วนตัว โดยจะเขียนเป็น Code และอธิบายให้กับผู้อ่านให้เข้าใจถึงกระบวนการทำงานแต่ละไฟล์
– เปิดโปรแกรม Netbeans IDE ขึ้นมาแล้วสร้างไฟล์ mainpage.php แล้วนำ code นี้ไปใส่ในไฟล์
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?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>"; } ?> |
อธิบาย Code ด้านบน
ไฟล์ mainpage.php มีการตรวจสอบการเข้าสู่ระบบและแสดงรายการเมนู “แก้ไขข้อมูลส่วนตัว” และ เมนู “จัดการผู้ใช้งาน” ซึ่งเมนูนี้ผู้ดูแลระบบเท่านั้นที่สามารถมองเห็นได้
– สร้างไฟล์ “update_profile.php” แล้วใส่ code ลงไปในไฟล์
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
<?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> </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>"; } ?> |
อธิบาย Code
ในไฟล์ update_profile.php เป็นการแสดงหน้าจอข้อมูลส่วนตัวของ user ที่เข้ามา Signin โดยมีการดึงข้อมูลส่วนตัวจาก mysql มาแสดงผล ที่ฟอร์มแก้ไขข้อมูล เมื่อผู้ใช้มีการเปลี่ยนแปลงข้อมูลในฟอร์มนี้แล้วกดปุ่มบันทึกข้อมูลลงไป จะทำการ action ไปที่ไฟล์ “update_profile-action.php” เมื่อเขียนโปรแกรมเสร็จแล้วคุณจะได้หน้าจอตามตัวอย่างรูปภาพด้านล่างนี้ครับ
– สร้างไฟล์ “update_profile.php” แล้วใส่ code ลงไปในไฟล์
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
<?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>"; } ?> |
อธิบาย Code
หลังจากมีการกดปุ่ม บันทึกข้อมูล ค่าฟอร์มจาก update_ profile.php จะส่งมาที่ไฟล์ “update_profile-action.php” ซึ่งในไฟล์นี้เองจะนำค่าฟอร์มไปบันทึกลงฐานข้อมูลด้วยการเขียนโปรแกรมเชื่อมต่อและ update ข้อมูล
อ่านต่อ บทความต่อไปของ PHP Workshop ระบบสมาชิก แบบละเอียด ตอนที่ 4
พอรันแล้วมันขึ้นแบบนี้อะครับ
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
ไม่สามารถเข้าสู่ระบบได้เนื่องจากรหัสผิดพลาด
กลับไปหน้าเดิม
น่าจะเกี่ยวกับ mysql ต้องใช้ mysqli
frmAction มันคือตัวแปรอะไรคะ