พื้นฐานของการเขียนแผงผู้ดูแลระบบ พื้นฐานของการเขียนแผงผู้ดูแลระบบ เรารวมการเชื่อมต่อกับฐานข้อมูลไว้ในไฟล์แยกต่างหาก

จะเขียน CMS ของคุณเองโดยใช้ PHP และ MySQL ได้อย่างไร จะสร้างแผงผู้ดูแลระบบของคุณเอง (แผงผู้ดูแลระบบ) ใน php ได้อย่างไร?

หลายคนอาจถามคำถามที่คล้ายกัน แต่ความยากลำบากในการศึกษาและเนื้อหาที่หายากบนอินเทอร์เน็ตไม่น่าจะช่วยได้ในเรื่องนี้ คุณถามว่าขาดแคลนแม้จะมีการคัดลอกวางมากมายหรือไม่? ใช่ ฉันจะตอบเพราะในเว็บไซต์หลายสิบแห่งที่คัดลอกบทความจากแหล่งบุคคลที่สามอย่างโง่เขลา ข้อผิดพลาดเดียวกันนี้กำลังแพร่กระจายซึ่งกลายเป็นอุปสรรคร้ายแรงสำหรับผู้เริ่มต้นในการเรียนรู้ PHP ผู้ใช้ฟอรัมระดับสูงจำนวนมากมักไม่เข้าใจโค้ดที่ง่ายที่สุด ดังนั้นพวกเขาจึงต้องคิดออกด้วยตนเอง

ฉันพบคำยืนยันอีกครั้งเมื่อฉันตัดสินใจเริ่มเชี่ยวชาญ ภาษาพีพีพีและการทำงานกับฐานข้อมูล ข้อมูลมายเอสคิวแอลจากการสร้างแผงผู้ดูแลระบบที่เรียบง่ายและเว็บไซต์ขนาดเล็กเพื่อฝึกฝนทักษะของคุณบนเครื่องมือจริง ลองนึกภาพความประหลาดใจของฉันเมื่อไม่มีรหัสใดที่ให้ทางออนไลน์ใช้งานได้ ฉันใช้เวลาทั้งวันในการแก้ปัญหาที่ง่ายที่สุดด้วยตัวเอง ซึ่งฉันไม่เคยพบคำตอบบนอินเทอร์เน็ตเลย

ดังนั้นในบทความนี้ ฉันขอนำเสนอโค้ดการทำงานสำหรับแผงผู้ดูแลระบบและเทมเพลตแบบธรรมดาที่ให้คุณสร้างและแก้ไขบทความโดยใช้ PHP

ส่วนที่ 1: การเขียนลงในตารางฐานข้อมูล MySQL

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

ก่อนอื่นเรามาสร้างมันโดยใช้ ฐานข้อมูล phpMyAdminข้อมูลและในนั้น - หน้าตารางที่มีชื่อและเนื้อหาสองฟิลด์ หากต้องการทำสิ่งนี้ ให้ไปที่ส่วน SQL ในแผง phpMyAdmin และเรียกใช้แบบสอบถามต่อไปนี้:

สร้างตาราง "หน้า" ("ชื่อ" varchar (100) ไม่เป็นค่าเริ่มต้น "", "เนื้อหา" ข้อความไม่เป็นโมฆะ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

และ phpMyAdmin จะสร้างตารางนี้ให้กับคุณ

การพูดนอกเรื่องเล็กน้อย:

หากคุณคุ้นเคยกับฐานข้อมูลอย่างน้อยในระดับ Microsoft Access คุณจะจำได้ว่าแต่ละเขตข้อมูลตารางมีคุณสมบัติจำนวนหนึ่ง ในกรณีนี้ เราได้กำหนดคุณสมบัติข้อความให้กับช่องเนื้อหา ดูเหมือนจะสมเหตุสมผลเนื่องจากมีไว้เพื่อจัดเก็บข้อความ แต่โปรดจำไว้ว่าขนาดของฟิลด์นี้มีจำกัด ดังนั้นหากคุณต้องการเก็บข้อความ "สงครามและสันติภาพ" ไว้ในนั้น ควรกำหนดให้เป็นข้อความยาวจะดีกว่า

ในการจัดการตารางดังกล่าวจากแผงผู้ดูแลระบบ เราจะต้องมีแบบฟอร์มที่ประกอบด้วยช่องข้อความธรรมดา (input type="text") เพื่อป้อนชื่อเรื่อง พื้นที่ข้อความ (textarea) สำหรับการป้อนเนื้อหา และปุ่ม "ส่ง" (ประเภทอินพุต = "ส่ง")

เพิ่มรูปแบบหน้า

มาวางแบบฟอร์มนี้ในไฟล์ page.php

หน้า.php

CMS แรกของฉัน

ป้อนชื่อหน้า ป้อนข้อความ

มาสร้างไฟล์ config.php ที่จะเชื่อมต่อกับฐานข้อมูลกันดีกว่า

config.php

เซิร์ฟเวอร์ฐานข้อมูลไม่พร้อมใช้งานในขณะนี้ ดังนั้นจึงไม่สามารถแสดงเพจได้อย่างถูกต้อง

"); exit(); ) if (!@mysql_select_db($dbname, $dbcnx)) ( echo("

ฐานข้อมูลไม่พร้อมใช้งานในขณะนี้ ดังนั้นจึงไม่สามารถแสดงเพจได้อย่างถูกต้อง

"); ออก(); ) ?>

ตอนนี้เรามีการเชื่อมต่อกับฐานข้อมูลและสคริปต์เพื่อเข้าไปแล้ว ข้อมูลที่จำเป็นสิ่งที่เหลืออยู่คือการจัดระเบียบการส่งเนื้อหาของฟิลด์ข้อความชื่อ my_title และพื้นที่ข้อความ my_text ไปที่นั่น เพื่อจุดประสงค์นี้ เราได้กำหนดวิธีการ POST ไว้ในแบบฟอร์มเพื่อถ่ายโอนข้อมูลไปยังไฟล์ page.php -

.

เมื่อผู้ดูแลระบบกรอกแบบฟอร์มและคลิกส่ง วิธีการนี้จะตั้งค่าตัวแปร $_POST["my_title"] ให้เป็นค่าของฟิลด์ข้อความ my_title และตัวแปร $_POST["my_text"] ให้เป็นค่าของข้อความ my_text พื้นที่.

เพื่อให้แน่ใจว่าเป็นเช่นนี้ เราจะเพิ่มโค้ดเล็กๆ ที่จุดเริ่มต้นของไฟล์ page.php:

".$_POST["my_text"];?>

มารันไฟล์ page.php กันดีกว่า หากไม่มีข้อผิดพลาดในโปรแกรม คุณจะเห็นชื่อและข้อความของคุณในหน้าต่างเบราว์เซอร์

มหัศจรรย์! สิ่งที่เหลืออยู่คือการจัดระเบียบการบันทึกข้อมูลนี้ในฐานข้อมูลของเรา ในการทำเช่นนี้เราจะต้องหันไปใช้ภาษา แบบสอบถาม SQLหรือค่อนข้าง - ถึง MySQL

เพื่อเขียนข้อมูลใหม่ลงในตารางฐานข้อมูลซึ่งต้องขอบคุณฟังก์ชัน

$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);

เมื่อเชื่อมต่อกับงานแล้ว เราควรใช้คำสั่ง INSERT ของภาษา MySQL วางตัวอย่างนี้ลงในไฟล์ page.php ของคุณแทนรหัสการพิมพ์:

ถ้า ($send) $sql = mysql_query("INSERT into Pages (title, content) ค่า ("".$_POST["my_title"]."", "".$_POST["my_text"]."" ); ");

นั่นคือหากโอน $send จากปุ่ม "ส่ง" โดยใช้วิธี POST (ดูชื่อของปุ่มนี้!) ก็ควรจะดำเนินการ คำขอนี้(ฟังก์ชัน mysql_query) และเนื้อหาของฟิลด์แบบฟอร์มจะถูกเขียนลงในตารางฐานข้อมูล

รายการนี้ดูเหมือนอ่านยากในตอนแรก และคุณอาจสับสนด้วยคำศัพท์ง่ายๆ มากมาย และ เครื่องหมายคำพูดคู่- ดังนั้นเรามาพิจารณากันใน "รูปแบบบริสุทธิ์"

พารามิเตอร์ฟังก์ชัน mysql_query(); คือแบบสอบถาม SQL ซึ่งสามารถแสดงเป็น:

แทรกลงในค่าหน้า (ชื่อ, เนื้อหา) ("variable_value_1", "variable_value_2");

มันเลยดูชัดเจนขึ้น...

ตอนนี้เปิด phpMyAdmin และตรวจสอบให้แน่ใจว่าได้ป้อนรายการลงในช่องตารางแล้ว แต่นั่นเป็นเพียงครึ่งหนึ่งของการต่อสู้ เราจำเป็นต้องเรียนรู้วิธี "ดึง" ข้อมูลที่จำเป็นออกจากตารางเพื่อทำงานร่วมกับข้อมูลเหล่านั้นในแผงการดูแลระบบ และที่สำคัญที่สุดคือแสดงข้อมูลเหล่านั้นบนเว็บไซต์

ไฟล์ page.php สุดท้ายควรมีลักษณะดังนี้:

CMS แรกของฉัน

ป้อนชื่อหน้า ป้อนข้อความ

ข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ในส่วนถัดไป

ส่วนที่ 2: การอ่านจากตารางฐานข้อมูล MySQL

มาสร้างรายการชื่อหน้าทั้งหมดที่จัดเก็บไว้ในตารางหน้าในแผงผู้ดูแลระบบของเรา และเราจัดระเบียบงานของรายการนี้เพื่อให้ผู้ใช้สามารถเข้าถึงเนื้อหาของเพจได้ด้วยการคลิกเมาส์

หากต้องการอ่านบันทึกจากตาราง เราจะใช้โครงสร้างต่อไปนี้:

$sql = mysql_query("SELECT*FROM หน้า");

ในขณะที่($record = mysql_fetch_array($sql)) ( $title = $record["title"]; ) หากมีบันทึกหลายรายการในตารางอยู่แล้วในรูปแบบ "บริสุทธิ์" โครงสร้างจะให้เฉพาะรายการสุดท้ายแก่เราเนื่องจากค่าของตัวแปร $title ได้รับการอัปเดตอย่างต่อเนื่องในขณะที่วนซ้ำ

- แต่เราจะใช้เคล็ดลับเล็กน้อย ในวงเดียวกัน เราจะแสดงรายการทั้งหมดบนหน้าจอทีละรายการ

"; } ?>
เมื่อต้องการทำเช่นนี้ ให้วาดตารางและวางส่วนหนึ่งของตารางไว้ในลูป:

".$record["title"]"

ตอนนี้แต่ละบันทึกการอ่านจะถูกป้อนลงในเซลล์ และแถวของตารางจะ "คูณ" เมื่ออ่านบันทึกถัดไป

ถัดจากเซลล์ที่เราวางชื่อหน้าจะมีอีกเซลล์หนึ่ง ฉันเพิ่งเขียนคำว่า แก้ไข ลงไป แต่ฉันสามารถใส่ไอคอนสวยๆ ลงไปได้ ไม่สำคัญหรอก สิ่งสำคัญอีกประการหนึ่ง: รายการนี้ (หรือรูปภาพ) ควรนำผู้ดูแลระบบไปยังส่วนผู้ดูแลระบบซึ่งมีโปรแกรมแก้ไขข้อความอยู่

ตอนนี้ได้เวลาใช้ "ตัวแก้ไข" ดั้งเดิมที่สุดแล้ว - พื้นที่ข้อความของแบบฟอร์ม

เมื่อต้องการทำเช่นนี้ ให้สร้างไฟล์ editor.php ด้วยโค้ดต่อไปนี้

"; } ?>
เมื่อต้องการทำเช่นนี้ ให้วาดตารางและวางส่วนหนึ่งของตารางไว้ในลูป: editor.php ".$บันทึก["เนื้อหา"]"

บันทึก

ในแต่ละแถวของตารางบนสุด ชื่อหน้าที่อ่านจากฐานข้อมูลจะปรากฏขึ้น ทางด้านขวามือในเซลล์ถัดไปจะมีคำว่า แก้ไข มันเชื่อมโยงไปยังหน้า editor.php เดียวกันและส่งผ่านค่าของตัวแปร $page_title ซึ่งเท่ากับชื่อของหน้าในแถวนี้ (ฉันได้เน้นส่วนของโค้ดนี้เป็นสีแดง):

พิมพ์" เมื่อต้องการทำเช่นนี้ ให้วาดตารางและวางส่วนหนึ่งของตารางไว้ในลูป:";

เมื่อผู้ใช้คลิกลิงก์ดังกล่าว เขาจะถูกส่งกลับไปยังหน้าเดิม แต่มีค่าเฉพาะสำหรับตัวแปร $page_title

ส่วนของโค้ดต่อไปนี้ค้นหาฐานข้อมูลสำหรับตารางเพจ และในนั้นค้นหาค่าของฟิลด์เนื้อหาที่ฟิลด์หัวเรื่องตรงกับค่าของตัวแปร $page_title

เมื่อพบฟิลด์ดังกล่าวแล้ว ฟิลด์ดังกล่าวจะส่งเนื้อหาไปยังตัวแปร $content ซึ่งจะพิมพ์ฟิลด์ดังกล่าวในพื้นที่ข้อความ

ตอนนี้เรามีโอกาสที่จะแก้ไขข้อความนี้ แต่จะคืนข้อความเวอร์ชันที่แก้ไขแล้วไปยังฐานข้อมูลได้อย่างไร - ข้อมูลเพิ่มเติมในส่วนถัดไป

ส่วนที่ 3 การแก้ไขบันทึกจากตารางฐานข้อมูล MySQL

มาเพิ่มส่วนของโค้ดต่อไปนี้ที่จุดเริ่มต้นของไฟล์ editor.php:

และที่ส่วนท้ายสุดของไฟล์นี้เราจะเพิ่ม:

เทคนิคนี้เรียกว่าเซสชัน จำเป็นต้องมีเซสชันเพื่อจดจำหน้าที่เรากำลังแก้ไขในตัวแปร แม้ว่าเราจะคลิกปุ่มแก้ไขและได้รับค่าของตัวแปร $page_title (ชื่อของเพจที่กำลังแก้ไข) หลังจากที่เราทำการเปลี่ยนแปลงและคลิกปุ่มบันทึก หน้า editor.php จะโหลดซ้ำและค่า $page_title จะหายไป . นั่นเป็นเหตุผลที่เราจะเก็บไว้ใน $_SESSION["id"]

และเมื่อแบบฟอร์มส่งค่าของตัวแปร $text_edit (นั่นคือชื่อที่เราตั้งให้กับพื้นที่ข้อความ) โดยใช้วิธี POST ไปยังหน้า editor.php ที่รีโหลด เราจะสามารถเรียกใช้โค้ดต่อไปนี้:

ถ้า (isset($_POST["save"])) $my_text = strval($_POST["text_edit"]);

$sql =mysql_query("อัปเดตหน้า SET content = "".$my_text."" WHERE title="".$_SESSION["id"]"";");

ฉันหวังว่าคุณจะเข้าใจว่าทำไมเราถึงต้องการตัวแปร $_SESSION["id"]

"; } ?>
เมื่อต้องการทำเช่นนี้ ให้วาดตารางและวางส่วนหนึ่งของตารางไว้ในลูป: editor.php

สคริปต์ไฟล์ editor.php ที่สมบูรณ์จะมีลักษณะดังนี้:

ส่วนที่ 4: การลบบันทึกออกจากตารางฐานข้อมูล MySQL

".$บันทึก["เนื้อหา"]" ";

มาเพิ่มเซลล์อื่นลงในตารางของไฟล์ editor.php:

ไม่สำคัญเลยว่าเราจะส่งผ่านค่าใดไปยังตัวแปร $delete คุณสามารถเขียน &delete=1 หรือ &delete=abcd ได้ แต่สิ่งสำคัญคือ ตอนนี้คุณสามารถเขียนเงื่อนไขที่เราจะลบรายการที่เลือก:

If($delete) $sql =mysql_query("ลบออกจากหน้า WHERE title="".$_SESSION["id"]"";");ความสนใจ! editor.php:

  1. ฉันลบโครงสร้างต่อไปนี้: ".$บันทึก["เนื้อหา"]"

    เพื่อไม่ให้ลบหน้าที่ต้องการโดยไม่ตั้งใจ

  2. เพิ่มฟังก์ชันในการลบเพจหากกดปุ่ม "ลบ"

ถ้า (isset($_POST["ลบ"]))

ในรูปแบบสุดท้าย ไฟล์ editor.php ของเราจะมีหน้าตาดังนี้:

header("ประเภทเนื้อหา: text/html; charset=utf-8");
session_start();
รวม("config.php");
?>



ถ้า(isset($_GET["page_title"]))
$page_title=$_GET["page_title"];
$sql = mysql_query("SELECT*FROM หน้า");

{
พิมพ์ "


";
}
?>
เมื่อต้องการทำเช่นนี้ ให้วาดตารางและวางส่วนหนึ่งของตารางไว้ในลูป: editor.php

$sql = mysql_query("select * จากเพจโดยที่ title="".$page_title"";");
ในขณะที่($บันทึก = mysql_fetch_array($sql))
{
$content=$record["เนื้อหา"];
}
ถ้า (isset($_POST["บันทึก"]))
$my_text = strval($_POST["text_edit"]);
$sql =mysql_query("อัปเดตหน้า SET content = "".$my_text."" WHERE title="".$_SESSION["id"]"";");
ถ้า (isset($_POST["ลบ"]))
$title = strval($_SESSION["id"]);
$sql =mysql_query("ลบออกจากหน้า WHERE title="".$title"";");
?>













$_SESSION["id"]= $page_title;
?>

นั่นคือทั้งหมดที่ฉันอยากจะบอกคุณเกี่ยวกับหลักการของแผงผู้ดูแลระบบ แน่นอนว่าใน CMS จริง แต่ละโมดูลทั้งหมด (และขณะนี้เรามีสามโมดูล ได้แก่ page.php, editor.php และไฟล์บริการ config.php) ทำงานภายใต้การควบคุมของไฟล์ index.php หลัก ซึ่งหนึ่ง- time จะเชื่อมต่อโมดูลทั้งหมดเข้ากับฐานข้อมูล และหากผู้ใช้ต้องการ ก็สามารถแนบโมดูลการสร้างเพจ โมดูลการแก้ไข รวมถึงโฮสต์ของโมดูลอื่นๆ ได้ (โมดูลเมนูไซต์ โมดูลการจัดการสมุดเยี่ยม แบนเนอร์ ฯลฯ) สิ่งสำคัญคือต้องเข้าใจว่าโมดูลใดๆ การดำเนินการใดๆ ในแผงผู้ดูแลระบบจะขึ้นอยู่กับตัวดำเนินการ SQL หลักสี่ตัว:

  • แทรก- แทรกบันทึกลงในฐานข้อมูล
  • เลือก- เลือกบันทึกจากฐานข้อมูล
  • อัปเดต- เปลี่ยนรายการ;
  • ลบ- ลบรายการ

ดังนั้นจึงไม่มีอะไรซับซ้อนมากในการเขียนแผงผู้ดูแลระบบของคุณเอง CMS ใดๆ แม้แต่ยักษ์ใหญ่อย่าง Joomla ก็ยังทำงานบนหลักการเดียวกัน

และการเชื่อมต่อไซต์เข้ากับแผงผู้ดูแลระบบโดยทั่วไปนั้นง่ายพอ ๆ กับการปลอกลูกแพร์ หลังจากที่คุณเขียนสคริปต์สำหรับแผงผู้ดูแลระบบแล้ว

ขอให้โชคดี!

อ้างอิงจากเนื้อหาจากแหล่งต่างๆพร้อมการแก้ไขของผมเอง

แผงผู้ดูแลระบบของไซต์เป็นส่วนหนึ่งของกลไกที่ออกแบบมาเพื่อเพิ่มเนื้อหาลงในไซต์โดยอัตโนมัติ มีช่องสำหรับเขียนข้อความของบทความ แผงผู้ดูแลระบบประกอบด้วยสคริปต์ที่สร้างหน้าเว็บไซต์ใหม่หรือเพิ่มบทความลงในฐานข้อมูล ขึ้นอยู่กับโครงสร้างของเว็บไซต์ มีการเพิ่มลิงก์ไปยังบทความลงในเมนู โดยทั่วไป แผงผู้ดูแลระบบอนุญาตให้คุณเพิ่มไม่เพียงแต่ข้อความ แต่ยังรวมถึงเนื้อหาอื่นๆ ด้วย เมื่อสร้างกลไกเว็บไซต์ คุณเป็นผู้ตัดสินใจว่าจะสร้างแผงผู้ดูแลระบบหรือเพิ่มบทความด้วยตนเอง

แผงผู้ดูแลระบบอยู่ในหน้าแยกต่างหากซึ่งมีที่อยู่ต่อไปนี้โดยประมาณ:

http://mysite.ru/adminpanel.php

ไซต์ไม่ได้เชื่อมโยงไปยังหน้านี้ คุณเพียงแค่ต้องทราบ URL ของไซต์เท่านั้น การเข้าสู่ระบบแผงผู้ดูแลระบบทำได้ผ่านแบบฟอร์มการอนุญาต มันแตกต่างจากการอนุญาตปกติตรงที่คุณเข้าสู่ระบบไม่ใช่ในฐานะผู้ใช้ทั่วไป แต่ในฐานะผู้ดูแลระบบ และจะต้องบันทึกข้อมูลเกี่ยวกับสิ่งนี้ในเซสชัน มีเพียงผู้ดูแลระบบเท่านั้นที่ควรมีสิทธิ์เข้าถึงแผงผู้ดูแลระบบ

การอนุญาตของผู้ดูแลระบบ

การอนุญาตของผู้ดูแลระบบสามารถทำได้สองวิธี หากมีผู้ดูแลระบบหลายคน คุณสามารถเพิ่มฟิลด์ลงในตารางพร้อมกับผู้ใช้เพื่อระบุว่าผู้ใช้เป็นผู้ดูแลระบบได้ หรือคุณสามารถโอนสิทธิ์ของผู้ดูแลระบบให้กับผู้ใช้ที่ระบุในสคริปต์การอนุญาต เราใช้ตัวเลือกที่สอง ลองเรียกหน้าเข้าสู่ระบบ avtadministrator.html นี่คือรหัส:

avtadministrator.html:

แบบฟอร์มจะส่งข้อมูลไปยังไฟล์ adminavt.php นี่คือสคริปต์การอนุญาต รหัสของมันมีลักษณะดังนี้:

adminavt.php:

3
4
5
6
7
8
9
10
11
12
13

$เข้าสู่ระบบ = $_POST["เข้าสู่ระบบ"]; $pas = $_POST["รหัสผ่าน"]; ถ้า ($login == "Viktor" && $pas == 1122) ( session_start(); $_SESSION["admin"] = true; $script = "adminpanel.php"; ) else $script = "avtadministrator.html" ; header("ตำแหน่ง: $script");

ความคิดเห็น:

3, 4 - รับข้อมูลเข้าสู่ระบบและรหัสผ่านจากแบบฟอร์ม

5 - ถ้าถูกต้อง

8 - บันทึกในเซสชันว่านี่คือผู้ดูแลระบบ

9 - หน้าที่ต้องไป - adminpanel.php

11 - หากการเข้าสู่ระบบหรือรหัสผ่านไม่ถูกต้อง

13 - ไปที่หน้าที่ต้องการ

การสร้างแผงผู้ดูแลระบบ

แผงผู้ดูแลระบบมีลักษณะเช่นนี้

adminpanel.php:

ในตอนต้นจะมีสคริปต์ PHP ที่จะตรวจสอบว่ามีตัวแปรผู้ดูแลระบบในเซสชันหรือไม่ ถ้าไม่เช่นนั้น ผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบจะเข้าสู่ระบบแผงผู้ดูแลระบบ จากนั้นคุณไปที่หน้าการอนุญาต แผงผู้ดูแลระบบเป็นรูปแบบที่ผู้ดูแลระบบเข้าสู่บทความใหม่ ชื่อเรื่องของบทความอาจยาวและลิงก์ไปยังบทความในเมนูของเว็บไซต์อาจแตกต่างจากชื่อเรื่อง นั่นเป็นสาเหตุที่แบบฟอร์มมีช่องสำหรับข้อความลิงก์

ก่อนที่จะเพิ่มบทความลงในฐานข้อมูล คุณต้องวางข้อความของบทความในแท็ก

มาทำสิ่งนี้ในฝั่งไคลเอ็นต์เพื่อไม่ให้เปลืองทรัพยากรเซิร์ฟเวอร์ มาเพิ่มสคริปต์ในหน้าที่เราวางแท็กไว้หน้าข้อความของบทความ

และหลังจากข้อความ

- หากต้องการบันทึกย่อหน้าทั้งหมด คุณต้องปิดแท็กแทนการขึ้นบรรทัดใหม่

และเปิดอันใหม่ นี่คือรหัสสคริปต์:

จาวาสคริปต์:

24
25
26
27
28
29
30

แบบฟอร์ม var = document.querySelector("แบบฟอร์ม"); form.onsubmit = function () ( var text = form.text; text.value = "

" + text.value + "!}

"; text.value = text.value.replace(/\n/g, "

"); };

สำหรับฉันดูเหมือนว่าเราจำเป็นต้องป้องกันด้วยรหัสผ่านเพียงไฟล์เดียวเท่านั้น กล่าวคือ ดัชนี.phpเนื่องจากมีการเชื่อมต่อกับฐานข้อมูลเท่านั้น ถ้าเราเรียกส่วนต่างๆ ของโค้ดที่เราเชื่อมต่อจากโฟลเดอร์ moduls แยกกัน จะไม่มีอะไรเกิดขึ้น เนื่องจากพวกมันทั้งหมดจำเป็นต้องเชื่อมต่อกับฐานข้อมูล ดังนั้นการใช้ชิ้นส่วนเหล่านี้ คุณไม่สามารถทำร้ายบล็อกของคุณได้! ซึ่งหมายความว่าไม่จำเป็นต้องใส่รหัสผ่านเลย

เป้า

  • เรามาใส่สคริปต์สำหรับเชื่อมต่อกับฐานข้อมูลกันดีกว่า แยกไฟล์และเชื่อมต่อกับ index.php โดยใช้ include
  • มาสร้างตารางใหม่ในฐานข้อมูลที่เราจะเก็บข้อมูลล็อกอินและรหัสผ่านของผู้ดูแลระบบ
  • เราจำเป็นต้องเขียนสคริปต์ที่จะป้องกันไม่ให้เราเข้าสู่ระบบ หน้าแรกแผงผู้ดูแลระบบโดยไม่ได้รับอนุญาต และจะนำเราไปยังแบบฟอร์มที่ผู้ดูแลระบบจำเป็นต้องป้อนข้อมูลเข้าสู่ระบบและรหัสผ่าน
  • คุณต้องสร้างไฟล์ php ใหม่และวางแบบฟอร์มและรหัสอนุญาตลงไป
  • มาสร้างเทมเพลตฟอร์มกัน
  • มาเขียนสคริปต์เพื่อให้ผู้ดูแลระบบออกจากแผงผู้ดูแลระบบ และวางลิงก์ไปยังสคริปต์นี้ในหน้าหลักของแผงผู้ดูแลระบบ

เราใส่การเชื่อมต่อกับฐานข้อมูลไว้ในไฟล์แยกต่างหาก

เนื่องจากเราจะใช้การเชื่อมต่อนี้กับฐานข้อมูลในสองไฟล์ (ใน index.php และ login.php) จึงเหมาะสมกว่าที่จะวางสคริปต์การเชื่อมต่อไว้ในไฟล์แยกต่างหาก ตอนนี้เราจะสร้างตัวแปรในสคริปต์นี้ซึ่งเราจะจัดเก็บที่อยู่ของบล็อกของเรา (ในรูปแบบ http://address_blog.ru) ก่อนอื่น เรามาเริ่มใช้สคริปต์กันก่อน จากนั้นฉันจะอธิบายว่าทำไมเราถึงต้องการตัวแปรพร้อมที่อยู่

$nameDB = "blog";//ชื่อฐานข้อมูล
$nameSERVER = "localhost";//เซิร์ฟเวอร์
$nameUSER = "root";//ชื่อผู้ใช้ฐานข้อมูล
$passUSER = "";//รหัสผ่านผู้ใช้ DB
mysql_select_db($nameDB, mysql_connect($nameSERVER,$nameUSER,$passUSER));

$server_root = "http://yoururl.ru/";
?>

บันทึกโค้ดชิ้นนี้ในไฟล์แยกต่างหาก (ฉันเรียกว่าไฟล์นี้ db.phpและวางไว้ในโฟลเดอร์ modules) จากนั้นลบสคริปต์นี้ออกจากไฟล์ ดัชนี.phpและวางโค้ดต่อไปนี้แทน


รวม("โมดูล/db.php");
//เชื่อมต่อกับฐานข้อมูล (DB)

ตอนนี้ฉันจะอธิบายบรรทัดใหม่สามบรรทัดในไฟล์ db.php- เย็บแผล

if(isset($_GET["server_root"]))($server_root = $_GET["server_root"];unset($server_root);)
if(isset($_POST["server_root"]))($server_root = $_POST["server_root"];unset($server_root);)

จะอนุญาตให้เราลบตัวแปรได้หากมีคนพยายามสร้างตัวแปรด้วยคำขอ GET หรือ POST เราต้องการตัวแปรพร้อมที่อยู่เพื่อตรวจสอบว่าการอนุญาตนั้นมาจากบล็อกของเรา ไม่ใช่จากเซิร์ฟเวอร์บุคคลที่สาม การป้องกันดังกล่าวสามารถป้องกันบล็อกของเราจากการแฮ็กได้ กล่าวคือ ช่วยให้เรา ผู้ดูแลระบบ และโปรแกรมเมอร์เชื่อมั่นในบล็อกของเรามากขึ้น

มาสร้างตารางใหม่ในฐานข้อมูลกันดีกว่า

เริ่มต้นด้วยฉันต้องการพูดสิ่งต่อไปนี้: ในฐานข้อมูลเราจะจัดเก็บรหัสผ่านที่เข้ารหัสโดยใช้ ฟังก์ชั่น PHP md5() เราจะป้อนชื่อผู้ใช้และรหัสผ่านของผู้ดูแลระบบด้วยตนเอง ฉันจะให้ข้อมูลต่อไปนี้:

เข้าสู่ระบบ: ผู้ดูแลระบบ

รหัสผ่าน: 123456

รหัสผ่านที่เข้ารหัสจะมีลักษณะดังนี้:

นั่นคือหากรหัสผ่าน 123456 ถูกส่งผ่านฟังก์ชัน md5 คุณจะได้สิ่งนี้ รหัสผ่านที่เข้ารหัส.

มาเริ่มกันเลย ไปที่ phpMyAdmin และสร้างตารางใหม่:

และแทรกหนึ่งบรรทัดลงในตารางด้วยตนเอง

สคริปต์ตรวจสอบการอนุญาต

การอนุญาตนั้นคือการสร้างตัวแปรโกลบอล $_SESSION นั่นคือ หากมีตัวแปรส่วนกลางนี้ ผู้ใช้จะได้รับอนุญาต ดังนั้นสคริปต์จะต้องตรวจสอบว่า (ตัวแปรส่วนกลาง) ถูกสร้างขึ้นหรือไม่ ถ้าใช่ ไม่ต้องทำอะไร ถ้าไม่ใช่ ให้โอนไปที่ไฟล์ login.php

ก่อนที่จะเรียกตัวแปรโกลบอล $_SESSION คุณต้องเริ่มเซสชันก่อน กล่าวคือ เขียน session_start(); หากยังไม่เสร็จสิ้น ตัวแปรโกลบอล $_SESSION ก็จะไม่ทำงาน!

โดยทั่วไป นี่คือสคริปต์ที่ต้องแทรกทันทีหลังจากเชื่อมต่อกับฐานข้อมูลใน index.php

Session_start();
$logSESS = $_SESSION["$logSESS"];
ถ้า(!isset($logSESS))
{
ส่วนหัว ("ตำแหน่ง: login.php");
ออก;
}
//สคริปต์ตรวจสอบการอนุญาต

เนื่องจากค่าของตัวแปรโกลบอล $_SESSION ถูกถ่ายโอนไปยังตัวแปร $logSESS เราจึงต้องหยุดความพยายามในการสร้างตัวแปรนี้ ($logSESS) ด้วยวิธีอื่น (ฉันหมายถึงป้องกันการสร้างตัวแปรนี้โดยใช้ GET และ คำขอโพสต์- นี่คือฟังก์ชันที่สคริปต์สองบรรทัดแรกดำเนินการ

เทมเพลตฟอร์ม

เรามาสร้างเทมเพลตกันก่อน เทมเพลตเป็นรูปแบบปกติที่มีช่องข้อความสองช่อง














ไม่มีอะไรซับซ้อนที่นี่ เราได้สร้างเทมเพลตที่คล้ายกันมากกว่าหนึ่งครั้ง มาเรียกเทมเพลตนี้กันดีกว่า เข้าสู่ระบบ.htmlและใส่ลงในแพ็คเกจพร้อมเทมเพลต

ไฟล์การอนุญาต

ก่อนอื่นมาสร้างฟังก์ชั่นที่จะให้แบบฟอร์มการอนุญาตแก่เรา เราสร้าง ไฟล์ใหม่เรียกมันว่า login.php และวางไว้ในโฟลเดอร์ผู้ดูแลระบบ

//เชื่อมต่อกับฐานข้อมูล (DB)
รวม("โมดูล/db.php");
//เชื่อมต่อกับฐานข้อมูล (DB)

ฟังก์ชัน form_author()//ฟังก์ชันการเชื่อมต่อแบบฟอร์ม
{
$sm_read = file("templates/login.html");//...เชื่อมต่อเทมเพลต
$sm_read = implode("",$sm_read);//file() ฟังก์ชันส่งคืนอาร์เรย์ ดังนั้นเราจึงรวมมันเข้าด้วยกัน

กลับ $sm_read;//แสดงผล
}

$txt = form_author();//เรียกใช้ฟังก์ชันการเชื่อมต่อแบบฟอร์ม

include("templates/index.html");//main template
?>

ในไฟล์นี้เราเชื่อมต่อกับฐานข้อมูล (ที่ด้านบนสุด) ต่อไป ฉันเว้นที่ว่างสำหรับสคริปต์การอนุญาต (เพื่อให้ง่ายต่อการอธิบายว่าจะแทรกสคริปต์ที่ไหน ซึ่งฉันจะโพสต์ด้านล่าง) หลังจากนั้น เราจะประกาศเมตาแท็กและสร้างฟังก์ชันของเรา

ฟังก์ชั่นนี้ไม่ซับซ้อนมากนัก มันเกี่ยวข้องกับการเชื่อมต่อเทมเพลตและไม่มีอะไรเพิ่มเติม บรรทัดสุดท้ายจะบันทึกผลลัพธ์ของฟังก์ชันลงในตัวแปร $txt บรรทัดสุดท้ายเชื่อมต่อกับเทมเพลตหลัก

ตอนนี้ถ้าคุณพยายามเข้าไปในแผงผู้ดูแลระบบของบล็อก แต่คุณจะถูกเปลี่ยนเส้นทางไปที่หน้านี้

//การอนุญาต
// ทำลายตัวแปรด้วยการเข้าสู่ระบบและรหัสผ่านที่สร้างขึ้นโดยการป้อนลงในบรรทัด
ถ้า (isset ($_GET["loginDB"])) ($loginDB = $_GET["loginDB"];unset($loginDB);)
ถ้า (isset ($_GET["passDB"])) ($passDB = $_GET["passDB"];unset($passDB);)

//ป้อนข้อมูลเข้าสู่ระบบและรหัสผ่านที่ส่งผ่านการร้องขอโพสต์ลงในตัวแปรแยกกัน
ถ้า (isset ($_POST["loginDB"])) ($loginDB = $_POST["loginDB"];)
ถ้า (isset ($_POST["passDB"])) ($passDB = $_POST["passDB"];)

if(isset($loginDB) AND isset($passDB))//หากมีการเข้าสู่ระบบและรหัสผ่านอยู่
{
if(preg_match("/^+$/s",$loginDB) AND preg_match("/^+$/s",$passDB))//ตรวจสอบความถูกต้องของอินพุตโดยใช้ การแสดงออกปกติ
{
$prov = getenv("HTTP_REFERER");//เรากำหนดหน้าที่ที่มาของคำขอ
$prov = str_replace("www.","",$prov);//ลบ www ถ้ามี
preg_match("/(http\:\/\/[-a-z0-9_.]+\/)/",$prov,$prov_pm);//เราล้างที่อยู่จากสิ่งที่ไม่จำเป็น เราจำเป็นต้องได้รับ ลิงค์แบบนี้ http://xxxx.ru
$prov = $prov_pm;//ใส่ clean address ลงในตัวแปรแยกต่างหาก
$server_root = str_replace("www.","",$server_root);//ลบ www ถ้ามี

If($server_root == $prov)//ถ้าที่อยู่ของบล็อกของเราและที่อยู่ของหน้าที่ส่งโพสต์นั้นเท่ากัน
{
$passDB = md5($passDB);//เข้ารหัสรหัสผ่านที่ป้อน

$resultlp = mysql_query("SELECT login,pass FROM user WHERE login="$loginDB"");//เราแสดงข้อมูลล็อกอินและรหัสผ่านจากฐานข้อมูล
$log_and_pass = mysql_fetch_array($resultlp);

If($log_and_pass != "")//ถ้าผลลัพธ์ถูกส่งออกจากฐานข้อมูล
{
if($loginDB == $log_and_pass AND $passDB == $log_and_pass)//หากข้อมูลที่กรอกตรงกับข้อมูลจากฐานข้อมูล
{
$_SESSION["$logSESS"] = $log_and_pass;//สร้างตัวแปรโกลบอล
header("location: index.php");//โอนผู้ใช้ไปที่หน้าหลัก
ออก;
}
else//หากข้อมูลที่ป้อนไม่ตรงกับข้อมูลจากฐานข้อมูล
{
ออก;
}
}
else//หากไม่พบผู้ใช้ดังกล่าวในฐานข้อมูล
{
header("location: login.php");//โอนไปยังแบบฟอร์มการอนุญาต
ออก;
}
}
else //หากคำขอถูกส่งจากที่อยู่อื่น
{
header("location: login.php");//โอนไปยังแบบฟอร์มการอนุญาต
ออก;
}
}
else//หากเข้าสู่ระบบและรหัสผ่านไม่ถูกต้อง
{
header("location: login.php");//โอนไปยังแบบฟอร์มการอนุญาต
ออก;
}
}
//การอนุญาต

โค้ดส่วนนี้ถูกแทรกลงในไฟล์ login.php แทนที่จะเป็นบรรทัดเหล่านี้

สคริปต์ทำงานอย่างไร? เริ่มต้นด้วยการทำลายตัวแปรด้วยการเข้าสู่ระบบและรหัสผ่านที่สร้างโดยวิธี GET (ถ้ามี) จากนั้นเข้าสู่ระบบและรหัสผ่านจะถูกตรวจสอบความถูกต้องโดยใช้นิพจน์ทั่วไป

ที่อยู่ที่ผู้ใช้มาก็ถูกสร้างขึ้นเช่นกัน นั่นคือที่อยู่ที่ผู้ใช้มาควรเป็นดังนี้:

http://yoururl.ru/login.php

และภายหลังการจัดขบวนแล้ว ดังนี้

http://yoururl.ru/

ที่อยู่นี้ถูกเปรียบเทียบกับที่อยู่จากตัวแปร $server_root ที่เราประกาศในการเชื่อมต่อฐานข้อมูล (ไฟล์ db.php)

หากเงื่อนไขอย่างน้อยหนึ่งข้อไม่ทำงาน ผู้ใช้จะถูกเปลี่ยนเส้นทางกลับไปยังแบบฟอร์ม

ตอนนี้ถ้าคุณเข้าสู่หน้าต่างแบบฟอร์ม

เข้าสู่ระบบ - ผู้ดูแลระบบ

รหัสผ่าน - 123456

นี่จะนำคุณไปที่แผงผู้ดูแลระบบ หากคุณป้อนชื่อผู้ใช้หรือรหัสผ่านผิด คุณจะถูกเปลี่ยนเส้นทางกลับไปยังแบบฟอร์ม

ปุ่มออก

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

นี่คือโค้ดชิ้นใหม่ที่ฉันแทรก แทนที่จะเป็นโค้ดเก่า ลงในเทมเพลต ดัชนี.html



ตอนนี้เรามาสร้างไฟล์ใหม่เรียกมันว่า exit.phpและวางไว้ในโฟลเดอร์ ผู้ดูแลระบบ- นี่คือรหัสไฟล์

session_start();//เริ่มเซสชัน
unset ($_SESSION["$logSESS"]);//ลบตัวแปรโกลบอลที่ลงทะเบียนไว้
session_destroy();//ทำลายเซสชัน
header("location: ../");//เปลี่ยนเส้นทางไปยังหน้าหลักของส่วนผู้ใช้ของบล็อก
ออก;
?>

ที่นี่แต่ละบรรทัดมีความคิดเห็น ดังนั้นคุณจึงสามารถเข้าใจได้

บทสรุป

นี่คือจุดที่ฉันต้องพัฒนา CMS ที่ง่ายที่สุดใน PHP ให้เสร็จสิ้น หากนี่คือโพสต์แรกที่คุณกำลังอ่านในบล็อกนี้ ต่อไปนี้คือรายการบทความทั้งหมดที่เกี่ยวกับการพัฒนาบล็อกตั้งแต่เริ่มต้น ในไม่ช้าฉันจะเปิดส่วน "การปรับปรุง" และทรมานโครงการของเราต่อไป ดังนั้นสมัครรับข่าวสารและรอโพสต์ใหม่!

หากคุณมีคำถามใดๆ อย่าลังเลที่จะถามพวกเขา เรายินดีที่จะตอบ (แน่นอนว่า หากฉันสามารถตอบคำถามของคุณได้)

ขอให้โชคดี นั่นคือทั้งหมดสำหรับวันนี้!

ในบทความล่าสุดเราได้พูดคุยกับคุณ อย่างไรก็ตาม บ่อยครั้งที่คุณต้องจัดการไซต์: เพิ่มเนื้อหาใหม่ จัดการผู้ใช้ โหวต แน่นอนว่าสามารถทำได้โดยผ่าน PHPMyAdminแต่นี่ไม่สะดวกมากดังนั้น การตัดสินใจที่ดีจะ - สร้างแผงผู้ดูแลระบบสำหรับไซต์- และคุณจะได้เรียนรู้วิธีการทำเช่นนี้ในบทความนี้

เรามาอธิบายลำดับของการกระทำที่ต้องดำเนินการอีกครั้ง:

  1. จัดวางหน้าเว็บไซต์ทั้งหมด- โดยหลักการแล้วคุณสามารถทำได้โดยไม่ต้องออกแบบเลย แต่ต้องมีโครงสร้างเบื้องต้น นั่นคือข้อมูลแบบตารางควรอยู่ในตาราง และไม่ใช่ข้อความต่อเนื่องกัน
  2. ตัดสินใจว่าคุณต้องการดูข้อมูลใดในแผงผู้ดูแลระบบ- ตัวอย่างเช่น คุณอาจต้องดูผู้ใช้ไซต์ของคุณ บทความของคุณ หรือแบบสำรวจบางส่วน
  3. สร้างชั้นเรียนเพื่อจัดการแผงผู้ดูแลระบบ- ควรสร้างวิธีการที่นี่เพื่อให้คุณสามารถเลือกจากตารางที่หลากหลาย รวมถึงเพิ่มและแก้ไขบันทึกในตารางเหล่านั้น และคุณจำเป็นต้องสร้างวิธีการที่คล้ายกันสำหรับตารางทั้งหมดที่คุณต้องการใช้งาน แผงผู้ดูแลระบบ(คุณควรเลือกสิ่งนี้แล้วในย่อหน้าก่อนหน้า) ตัวอย่างเช่นตัวอย่างที่ง่ายที่สุดกับผู้ใช้ ชุดวิธีการขั้นต่ำที่จำเป็น: การเลือกผู้ใช้ทั้งหมด, เพิ่มผู้ใช้ใหม่, เปลี่ยนผู้ใช้- แน่นอนว่างานทั้งหมดเหล่านี้ควรถูกนำไปใช้โดยคุณแล้วเมื่อสร้างเอ็นจิ้นสำหรับไซต์ ดังนั้นที่นี่คุณจะต้องหันไปใช้คลาสเก่าเท่านั้น และอาจเปลี่ยนแปลงข้อมูลเฉพาะสำหรับ แผงผู้ดูแลระบบ.
  4. แบ่งเทมเพลตเว็บไซต์ของคุณออกเป็นส่วนๆและคัดลอกเป็นไฟล์แยกกันที่มีนามสกุล ทีพีแอล- ใส่องค์ประกอบเทมเพลตด้วย เช่น: " ผู้ใช้ (ชื่อผู้ใช้) ที่ลงทะเบียน (regdate)" นี่เป็นเพียงตัวอย่าง และโดยทั่วไปแล้ว ข้อมูลจะสะดวกกว่าในการแสดงในตาราง
  5. สร้างคลาสที่จะทำการทดแทนแทนที่จะเป็นองค์ประกอบเทมเพลต ข้อมูลที่เกี่ยวข้อง
  6. รวบรวมหน้าทั้งหมดของแผงผู้ดูแลระบบทีละหน้าเว็บไซต์ของคุณใช้คลาสที่สร้างขึ้นในย่อหน้าก่อนหน้า
  7. หากต้องการคุณสามารถออกแบบได้แม้ว่าแน่นอนว่าสิ่งนี้มีไว้สำหรับคุณและผู้ดูแลระบบคนอื่นๆ เท่านั้น

อย่างที่คุณเห็นล่าสุด 4 คะแนนจะเหมือนกับคะแนนที่คุณทำเมื่อสร้างเครื่องยนต์ ที่นี่ปริมาณงานจะลดลงอย่างมาก ดังนั้นฉันคิดว่าคุณสามารถจัดการได้โดยไม่มีปัญหาใดๆ

ฉันนั่งอยู่บนเว็บไซต์ของฉันประมาณสามเดือนโดยไม่มี แผงผู้ดูแลระบบการเพิ่มวัสดุใหม่โดยตรงผ่านฐานข้อมูล พูดตามตรงฉันใช้เวลาเพิ่มมาก แต่เมื่อไร สร้างแผงผู้ดูแลระบบบนเว็บไซต์ของฉันจากนั้นกระบวนการจัดการไซต์ก็ง่ายขึ้นอย่างมาก ดังนั้นฉันขอแนะนำให้คุณทำเช่นเดียวกัน

ตัวอย่างการสร้าง แผงผู้ดูแลระบบคุณจะพบกับหลักสูตรการฝึกอบรมนี้:

งานสร้างระบบจัดการเนื้อหา (CMS) อาจทำให้มือใหม่สับสนได้ นักพัฒนา PHP- แต่มารไม่น่ากลัวเท่าทาสี! ในชุดบทเรียนนี้ เราจะสร้างระบบที่เรียบง่ายแต่มีฟังก์ชันการทำงานครบถ้วนตั้งแต่เริ่มต้น

ในระหว่างกระบวนการ คุณจะได้เรียนรู้วิธีสร้างฐานข้อมูลและตาราง MySQL การทำงานกับออบเจ็กต์ ค่าคงที่ รวม เซสชัน และเครื่องมือ PHP อื่นๆ นอกจากนี้ เราจะแสดงวิธีแยกตรรกะของแอปพลิเคชันออกจากการนำเสนอ และทำให้โค้ด PHP ปลอดภัยยิ่งขึ้น และคุณยังจะค้นพบสิ่งอื่น ๆ อีกมากมายที่จะเป็นประโยชน์ในการสร้างระบบความฝันของคุณเอง

คุณสามารถดูแอปพลิเคชันที่เสร็จสมบูรณ์แล้วได้ในหน้าสาธิต (เพื่อความปลอดภัย โหมดอ่านอย่างเดียวจะถูกเปิดใช้งาน ดังนั้นคุณจะไม่สามารถเพิ่ม แก้ไข หรือลบบทความได้) คุณยังสามารถดาวน์โหลดได้ รหัสเต็ม PHP ของ CMS เล็กๆ ของเราพร้อมความคิดเห็นที่แปลแล้ว

บันทึก:หากต้องการศึกษาเนื้อหาบทเรียน คุณจะต้องมีเว็บเซิร์ฟเวอร์ Apache ด้วย โมดูล PHPและเซิร์ฟเวอร์ MySQL ในการทำงานต่อไป คอมพิวเตอร์ท้องถิ่นคุณสามารถใช้หนึ่งในเครื่องมือสำหรับนักพัฒนาเว็บ: XAMPP (on ภาษาอังกฤษ), Denwer, เปิดเซิร์ฟเวอร์ หรืออื่นๆ

หมายเหตุด้านความปลอดภัย

ในโครงการจริง ควรวาง config.php ไว้ที่ใดที่หนึ่งนอกไดเรกทอรีรากของเว็บไซต์ เนื่องจากไฟล์มีชื่อผู้ใช้และรหัสผ่าน โดยปกติแล้วโค้ด PHP จะไม่สามารถดูได้ในเบราว์เซอร์ แต่บางครั้งเนื่องจากการกำหนดค่าเว็บเซิร์ฟเวอร์ไม่ถูกต้อง โค้ดจึงสามารถเข้าถึงได้ คุณสามารถใช้ฟังก์ชัน hash() เพื่อแฮชรหัสผ่านและจัดเก็บแฮชใน config.php แทนรหัสผ่านแบบข้อความธรรมดา จากนั้น เมื่อลงทะเบียนผู้ใช้ คุณสามารถใช้ฟังก์ชัน hash() ได้อีกครั้งเพื่อเข้ารหัสรหัสผ่านที่ป้อน และเปรียบเทียบผลลัพธ์กับแฮชที่บันทึกไว้ใน config.php

ในบทช่วยสอนถัดไป เราจะสร้างคลาสหลักของแอปพลิเคชันของเรา - บทความ