เราลบโปรแกรมแก้ไขภาพ การเลือกโทนสี และรายละเอียดอื่นๆ ในพื้นที่ผู้ดูแลระบบ WordPress เราลบโปรแกรมแก้ไขภาพ ตัวเลือกชุดสี และรายละเอียดอื่นๆ ในแผงผู้ดูแลระบบ WordPress เราจะแทนที่ด้วยโค้ด

คำถามทั่วไป

ถาม:ตัวสร้างโปรไฟล์แสดงกิจกรรมของเซิร์ฟเวอร์ แต่ไม่แสดงคำขอและเซสชันทั้งหมด

ตอบ:อย่าลืมคลิกปุ่มเริ่มเพื่อเริ่มบันทึกเซสชัน

ถาม:ฉันจัดการเพื่อเชื่อมต่อกับ MySQL แต่เซสชันไม่แสดง

ตอบ: Neor Profile SQL ทำงานเป็นพร็อกซีเซิร์ฟเวอร์ ซึ่งหมายความว่าสามารถแสดงเฉพาะเซสชันที่ผ่านตัวสร้างโปรไฟล์เท่านั้น แอปพลิเคชันของคุณ (หรือเว็บไซต์) จะต้องเชื่อมต่อกับตัวสร้างโปรไฟล์เสมือนว่าเป็นเซิร์ฟเวอร์ MySQL ทั่วไป ตัวสร้างโปรไฟล์ใช้การเชื่อมต่อขาเข้า TCP เท่านั้น จากนั้นคุณจะเห็นผลลัพธ์ในแท็บเซสชัน

ถาม:เหตุใดบางเซสชันจึงมีคำขอโดยมีเวลาเป็นศูนย์

ตอบ:การสืบค้นแบบ Zero-time จะดำเนินการอย่างรวดเร็วมากโดยไม่มีเวลาแฝง การสืบค้นดังกล่าวอาจแคชไว้โดย DBMS หรือดำเนินการอย่างรวดเร็ว เช่น หากคุณมีเซิร์ฟเวอร์ที่มีประสิทธิภาพและตารางที่ได้รับการปรับปรุงอย่างเหมาะสม

ถาม:% หมายถึงอะไรในเวลาและระยะเวลาในเซสชั่น?

ตอบ:"เวลา %" คือเปอร์เซ็นต์ของเวลาดำเนินการเซสชันทั้งหมด "ระยะเวลา %" คือเปอร์เซ็นต์ของคำขอที่ยาวที่สุดในเซสชัน (อัตราส่วนต่อคำขอที่ยาวที่สุด)

ถาม:ฉันใช้ JetProfiler และตั้งค่าได้ง่ายกว่า

ตอบ: JetProfiler รับข้อมูลจาก เซิร์ฟเวอร์ MySQLผ่านคำสั่ง "แสดงสถานะ" และไม่สามารถรับข้อมูลทั้งหมดบนเซิร์ฟเวอร์ได้เนื่องจากทำงานแยกกัน Neor Profile SQL แสดงคำสั่งทั้งหมดไปยังฐานข้อมูลอย่างแน่นอน และสิ่งนี้จำเป็นต้องกำหนดค่าแอปพลิเคชันของคุณเพื่อกำหนดเส้นทางโฟลว์คำขอผ่านตัวสร้างโปรไฟล์

ถาม:ปุ่มโปรไฟล์ในแท็บ SQL ไม่แสดงผลลัพธ์

ตอบ:คุณลักษณะการทำโปรไฟล์ในโปรแกรมแก้ไข SQL ทำงานผ่านคำสั่ง SHOW PROFILES ซึ่งเพิ่มลงใน MySQL Community Server โดยเริ่มจากเวอร์ชัน 5.0.37 ตรวจสอบเวอร์ชันเซิร์ฟเวอร์ MySQL ของคุณ

ถาม:เป็นไปได้ไหมที่จะสร้างคอนโซลแบบสร้างโปรไฟล์?

ตอบ:สำหรับคอนโซล ให้ใช้บันทึก DBMS และส่วนท้ายรวมกัน หรือเครื่องมือคอนโซลพิเศษซึ่งมีอยู่ไม่มากนัก Neor Profile SQL เป็นแอปพลิเคชันระบบปฏิบัติการแบบหน้าต่างที่ออกแบบมาเพื่อวางบนระบบของผู้พัฒนา

ถาม: Profiler ใช้งานได้ แต่ด้วยเหตุผลบางอย่างจึงไม่แสดงกราฟสถิติหลัก

ตอบ:กราฟหลักใช้คำสั่ง SHOW STATUS สำหรับเซิร์ฟเวอร์หลัก คุณอาจไม่ได้รับอนุญาตให้เรียกใช้คำสั่งนี้บนเซิร์ฟเวอร์ ตรวจสอบให้แน่ใจว่าคุณมีสิทธิ์สำหรับคำสั่งนี้

ถาม:จะรันตัวติดตั้งในโหมดเงียบได้อย่างไร?

ตอบ: sqlprofiler-4.1.1.exe /S /D:C:ไฟล์โปรแกรม (x86)Neor Profile SQL

หน้าต่าง

ถาม:จะตรวจสอบการเชื่อมต่อ Profiler ได้อย่างไร?

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

ลินุกซ์

ถาม:ฉันไม่สามารถเชื่อมต่อผ่าน localhost ได้

ตอบ: Linux พยายามเชื่อมโยง localhost กับการเชื่อมต่อซ็อกเก็ต แต่ Neor Profile SQL ใช้งานได้กับการเชื่อมต่อ TCP เท่านั้น ตั้งค่าที่อยู่เซิร์ฟเวอร์ในตัวสร้างโปรไฟล์เป็น 127.0.0.1 แทนที่จะเป็น localhost คุณสามารถทำเช่นเดียวกันได้ในการตั้งค่าแอปพลิเคชันของคุณ
ตัวอย่างเช่น:
mysql --host=127.0.0.1 --user=เข้าสู่ระบบ --password=PASSWORD --port=4040

ถาม:ฉันไม่สามารถเชื่อมต่อกับ 127.0.0.1 ได้

ตอบ:ตรวจสอบประเภทการเชื่อมต่อในแอปพลิเคชันของคุณ คุณยังสามารถใช้ประเภทการเชื่อมต่อซ็อกเก็ตท้องถิ่น ซึ่งไม่จำเป็นต้องป้อนค่าพอร์ต

ถาม:จะติดตั้ง Neor Profile SQL ภายใต้ OpenSUSE ได้อย่างไร

ตอบ:ขณะนี้เรารองรับเฉพาะแพ็คเกจ DEB ซึ่งทำงานบน Ubuntu, Debian และรุ่นที่เข้ากันได้ การแจกแจงลินุกซ์- คุณสามารถสร้างไฟล์ RPM ด้วยตัวเองและช่วยได้

ถาม:เหตุใดฉันจึงไม่สามารถสกัดกั้นคำขอของ Sysbench ได้

ตอบ:ตัวสร้างโปรไฟล์ใช้การเชื่อมต่อขาเข้า TCP เท่านั้น รัน Sysbench ด้วยพารามิเตอร์โฮสต์และพอร์ต:
sysbench --test=oltp --mysql-โฮสต์=127.0.0.1 --mysql-พอร์ต=4040--mysql-user=root --mysql-password=รหัสผ่าน เตรียม

แมค โอเอส เอ็กซ์

ถาม:ตัวสร้างโปรไฟล์ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ MAMP MySQL

ตอบ:ปัญหา การเชื่อมต่อเครือข่ายในการกำหนดค่า MySQL:

  1. แมมร์
    รุ่นฟรี– คัดลอกการกำหนดค่า MySQL มาตรฐานไปยังโฟลเดอร์
    /Applications/MAMP/conf/my.cnf
    รุ่นโปร – เปิดเมนู ไฟล์ – แก้ไข – เทมเพลต MySQL
  2. ในการกำหนดค่า my.cnf ให้ลบบรรทัดข้ามเครือข่ายออก
  3. ในการตั้งค่า Profiler ให้เปลี่ยนที่อยู่โฮสต์ฐานข้อมูลจาก localhost เป็น 127.0.0.1

การเปลี่ยนพอร์ต MySQL ในสคริปต์ของคุณ

ใน Neor Profile SQL พอร์ตเริ่มต้นคือ 4040 หากต้องการรวบรวมคำสั่ง SQL คุณต้องเปลี่ยนค่าเริ่มต้นสำหรับการเชื่อมต่อกับโฮสต์ MySQL และพอร์ต 3306 ในสคริปต์ของคุณ ด้านล่างนี้เป็นตัวอย่างวิธีดำเนินการ

สตริง connStr = " เซิร์ฟเวอร์=127.0.0.1;พอร์ต=4040;ฐานข้อมูล=ฐานข้อมูลของคุณ;ผู้ใช้=ของคุณ_USER;รหัสผ่าน=ของคุณ_รหัสผ่าน;";
http://dev.mysql.com/doc/refman/5.1/en/connector-net-tutorials-intro.html


การเปลี่ยนพอร์ตใน CMS ยอดนิยม

เวิร์ดเพรส

ไฟล์: wp-config.php
รหัส: กำหนด ("DB_HOST", "localhost :4040 ");

เพรสต้าช็อป

ไฟล์: config/settings.inc.php
รหัส: กำหนด("_DB_SERVER_", "localhost :4040 ");

OpenCart

ไฟล์: config.php
รหัส: กำหนด ("DB_HOSTNAME", "localhost :4040 ");

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

โพสต์นี้เกิดขึ้นเอง คุณสามารถขอบคุณแขกรับเชิญได้ สาระสำคัญของคำถามของเขาคือสิ่งนี้ (เหมือนกับคำถามชุดหนึ่ง):

1. วิธีซ่อน "การเลือก" โทนสี» สำหรับผู้ใช้?

2. วิธีซ่อน “ปุ่มลัด” และ “ โปรแกรมแก้ไขภาพ» ในแผง WordPress?

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

สำหรับ “โปรไฟล์” นี่คือไฟล์ ผู้ใช้-edit.phpซึ่งอยู่ในโฟลเดอร์ wp-ผู้ดูแลระบบคุณต้องแก้ไขอย่างระมัดระวัง ไม่เช่นนั้นคุณจะ "จ่าย" ได้ดีสำหรับการทดสอบของคุณ

โซลูชัน (แบบครบวงจร):

1. ดาวน์โหลดไฟล์ลงในพีซีของคุณและทำสำเนา (ปลอดภัย....)

2. เรากำลังมองหาโค้ด HTML ที่ทำหน้าที่แสดงข้อมูลที่เราต้องการ

3. แสดงความคิดเห็นอย่างระมัดระวังและ "เติม" กลับมาพร้อมกับสิ่งทดแทน

ตอนนี้ฝึกฝน (แก้ไข User-edit.php):

จริงๆ แล้วฉันจำไม่ได้ว่าฉันมี WP เวอร์ชันใดในเว็บไซต์ทดสอบ แต่ก็ไม่ต่ำกว่า 2.8.2 แน่นอน

ขั้นแรก ฉันดาวน์โหลดไฟล์ลงในพีซีและดูโค้ดโดยใช้ Chrome Code Viewer และพบโค้ดที่ต้องการใน Notepad++

(มีขีดสองขีดในแต่ละด้าน “-”)

1. ซ่อน “โปรแกรมแก้ไขภาพ”

เปลี่ยนเป็นรหัส:

—>

ปล.อย่าคัดลอกนะครับ รหัสนี้แต่ต้องเปลี่ยนเอง - มีโอกาสผิดพลาดสูง!!!

2. ซ่อน “เลือกโทนสี”

ฉันหวังว่าคุณจะสังเกตเห็นความแตกต่างระหว่างรหัส - มีการเพิ่มอักขระทั้งหมด 7 ตัว เพื่อซ่อนรายการนี้ที่เรากำลังมองหา ถ้า (นับ($_wp_admin_css_colors) > 1)และแสดงความคิดเห็นใต้บรรทัดโค้ดทั้งหมดระหว่าง ถึง

3. ซ่อน “ปุ่มลัด”

ในบทที่สอง เราจะเขียนอีกสองคลาสและจบส่วนภายในของสคริปต์ให้สมบูรณ์

วางแผน

เป้าหมายของชุดบทช่วยสอนนี้คือการสร้างแอปพลิเคชันง่ายๆ ที่ให้ผู้ใช้สามารถลงทะเบียน เข้าสู่ระบบ ออกจากระบบ และเปลี่ยนการตั้งค่าได้ คลาสที่จะมีข้อมูลทั้งหมดเกี่ยวกับผู้ใช้จะถูกเรียกว่า User และจะถูกกำหนดไว้ในไฟล์ User.class.php คลาสที่จะรับผิดชอบอินพุต/เอาท์พุตจะเรียกว่า UserTools (UserTools.class.php)

เล็กน้อยเกี่ยวกับการตั้งชื่อชั้นเรียน

มารยาทที่เหมาะสมคือการตั้งชื่อไฟล์ที่อธิบายคลาสด้วยชื่อเดียวกับคลาสนั้นเอง ทำให้ง่ายต่อการระบุวัตถุประสงค์ของแต่ละไฟล์ในโฟลเดอร์คลาส

เป็นเรื่องปกติที่จะเพิ่ม .class หรือ .inc ต่อท้ายชื่อไฟล์คลาส วิธีนี้ทำให้เรากำหนดวัตถุประสงค์ของไฟล์ได้อย่างชัดเจน และสามารถใช้ .htaccess เพื่อจำกัดการเข้าถึงไฟล์เหล่านี้ได้

คลาสผู้ใช้ (User.class.php)

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

ตัวสร้าง

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

need_once "DB.class.php"; ผู้ใช้คลาส ( public $id; public $username; public $hashedPassword; public $email;
สาธารณะ $joinDate;
//ตัวสร้างจะถูกเรียกเมื่อมีการสร้างวัตถุใหม่//รับอาร์เรย์ที่เชื่อมโยงกับแถว DB เป็นอาร์กิวเมนต์ ฟังก์ชั่น __construct($data) ( $this->id = (isset($data["id"])) ? $data["id"] : ""; $this->username = (isset($data[" ชื่อผู้ใช้"])) ? $data["ชื่อผู้ใช้"] : ""; $this->hashedPassword = (isset($data["password"])) ? $data["password"] : ""; $this- >อีเมล = (isset($data["อีเมล"])) ? $data["email"] : ""; $this->joinDate = (isset($data["join_date"])) $data[" join_date "] : ""; )
ฟังก์ชั่นสาธารณะบันทึก($isNewUser = false) ( //สร้างวัตถุฐานข้อมูลใหม่ $db = new DB(); //หากผู้ใช้ได้ลงทะเบียนแล้วและเราจะ"//เพียงอัปเดตข้อมูลของพวกเขา if(!$isNewUser ) ( //ตั้งค่าอาร์เรย์ข้อมูล $data = array("username" => ""$this->username"", "password" => ""$this->hashedPassword"",
"อีเมล" => ""$this->อีเมล"");
//อัพเดตแถวในฐานข้อมูล $db->update($data, "users", "id = ".$this->id); )else ( //หากผู้ใช้ลงทะเบียนเป็นครั้งแรก $data = array("username" => ""$this->username"", "password" => ""$this->hashedPassword"" , "email" => ""$this->email"", "join_date" => """.date("Y-m-d H:i:s",time())."""); id = $db ->insert($data, "users"); $this->joinDate = time(); -

คำอธิบาย

ส่วนแรกของโค้ดที่อยู่นอกโซนคลาส ทำให้แน่ใจว่าคลาสเชื่อมต่อกับฐานข้อมูล (เนื่องจากคลาส User มีฟังก์ชันที่ต้องใช้คลาสนี้)

แทนที่จะเป็นตัวแปรของคลาส "protected" (ใช้ในบทเรียนที่ 1) เรากำหนดให้ตัวแปรเหล่านี้เป็น "public" ซึ่งหมายความว่าโค้ดใดๆ ที่อยู่นอกคลาสจะสามารถเข้าถึงตัวแปรเหล่านี้ได้เมื่อทำงานกับออบเจ็กต์ User

ตัวสร้างรับอาร์เรย์ที่คอลัมน์ในตารางเป็นคีย์ เรากำหนดตัวแปรคลาสโดยใช้ $this->variablename ในตัวอย่างของคลาสนี้ เราจะตรวจสอบก่อนว่าค่าของคีย์บางตัวนั้นมีอยู่หรือไม่ ถ้าใช่ เราจะตั้งค่าตัวแปรคลาสให้เป็นค่านั้น มิฉะนั้นจะเป็นสตริงว่าง รหัสจะใช้รูปแบบย่อของสัญกรณ์หาก:

$มูลค่า = (3 == 4) ? "ก" : "ข";

ในตัวอย่างนี้ เรากำลังตรวจสอบว่า 3 เท่ากับ 4 หรือไม่! ถ้าใช่ - ดังนั้น $value = “A”, ไม่ใช่ - $value = “B” ในตัวอย่างของเรา ผลลัพธ์คือ $value = “B”

เราบันทึกข้อมูลเกี่ยวกับผู้ใช้ในฐานข้อมูล

ฟังก์ชั่นบันทึกใช้เพื่อทำการเปลี่ยนแปลงตารางฐานข้อมูลด้วยค่าปัจจุบันในวัตถุผู้ใช้ ฟังก์ชั่นนี้ใช้คลาส DB ที่เราสร้างขึ้นในบทเรียนแรก การใช้ตัวแปรคลาส $data อาร์เรย์จะถูกตั้งค่า หากข้อมูลผู้ใช้ถูกบันทึกเป็นครั้งแรก $isNewUser จะถูกส่งเป็น $true (เท็จตามค่าเริ่มต้น) ถ้า $isNewUser = $true ฟังก์ชัน insert() ของคลาส DB จะถูกเรียก มิฉะนั้นจะเรียกฟังก์ชัน update() ในทั้งสองกรณี ข้อมูลจากออบเจ็กต์ผู้ใช้จะถูกจัดเก็บไว้ในฐานข้อมูล

คลาส UserTools.class.php

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

//UserTools.class.php need_once "User.class.php"; need_once "DB.class.php";
คลาส UserTools(
//เข้าสู่ระบบผู้ใช้ ขั้นแรกให้ตรวจสอบเพื่อดูว่า //ชื่อผู้ใช้และรหัสผ่านตรงกับแถวในฐานข้อมูลหรือไม่ //หากสำเร็จ ให้ตั้งค่าตัวแปรเซสชัน //และเก็บอ็อบเจ็กต์ผู้ใช้ไว้ภายใน
เข้าสู่ระบบฟังก์ชั่นสาธารณะ ($ชื่อผู้ใช้, $รหัสผ่าน)
{
$hashedPassword = md5($รหัสผ่าน); $result = mysql_query("SELECT * จากผู้ใช้ โดยที่ชื่อผู้ใช้ = "$ชื่อผู้ใช้" และรหัสผ่าน = "$hashedPassword""); if(mysql_num_rows($result) == 1) ( $_SESSION["user"] = serialize(ผู้ใช้ใหม่(mysql_fetch_assoc($result))); $_SESSION["login_time"] = time(); $_SESSION["logged_in "] = 1; return true; )else( return false; ) )
//ออกจากระบบผู้ใช้ ทำลายตัวแปรเซสชัน ฟังก์ชันสาธารณะออกจากระบบ() ( unset($_SESSION["user"]); unset($_SESSION["login_time"]); unset($_SESSION["logged_in"]); session_destroy(); ) //ตรวจสอบว่า มีชื่อผู้ใช้อยู่แล้ว //สิ่งนี้ถูกเรียกระหว่างการลงทะเบียนเพื่อให้แน่ใจว่าชื่อผู้ใช้ทั้งหมดไม่ซ้ำกัน ฟังก์ชั่นสาธารณะ checkUsernameExists($username) ( $result = mysql_query("select id from users when username="$username""); if(mysql_num_rows($result) == 0) ( return false; )else( return true; )
}
// รับผู้ใช้ // ส่งคืนวัตถุผู้ใช้ รับ ID ผู้ใช้เป็นฟังก์ชันสาธารณะอินพุต get($id) ( $db = new DB(); $result = $db->select("users", "id = $id"); return new User($result ); ) )
?>

ฟังก์ชั่นเข้าสู่ระบบ ()

ฟังก์ชั่นล็อกอิน () มีความชัดเจนตามชื่อ ใช้อาร์กิวเมนต์ผู้ใช้ $username และ $password และตรวจสอบว่าตรงกัน หากทุกอย่างตรงกัน ให้สร้างออบเจ็กต์ User พร้อมข้อมูลทั้งหมดและบันทึกไว้ในเซสชัน โปรดทราบว่าเราใช้เฉพาะฟังก์ชัน PHP serialize() เท่านั้น มันสร้างเวอร์ชันที่เก็บไว้ของออบเจ็กต์ที่สามารถยกเลิกการซีเรียลไลซ์ได้อย่างง่ายดายโดยใช้ unserialize() นอกจากนี้เวลาในการเข้าสู่ระบบก็จะถูกบันทึกไว้ด้วย สามารถใช้ในภายหลังเพื่อให้ข้อมูลเกี่ยวกับระยะเวลาที่อยู่ในไซต์แก่ผู้ใช้

คุณอาจสังเกตเห็นว่าเราตั้งค่า $_SESSION["logged_in"] เป็น 1 ซึ่งช่วยให้เราสามารถตรวจสอบแต่ละหน้าได้อย่างง่ายดายว่าผู้ใช้เข้าสู่ระบบหรือไม่ ตรวจสอบเฉพาะตัวแปรนี้ก็เพียงพอแล้ว

ฟังก์ชันออกจากระบบ ()

นอกจากนี้ยังมีฟังก์ชันง่ายๆ ฟังก์ชัน PHP unset() จะล้างตัวแปรในหน่วยความจำ ในขณะที่ session_destroy() จะลบเซสชัน

ฟังก์ชัน checkUsernameExists()

ใครก็ตามที่รู้ภาษาอังกฤษจะเข้าใจฟังก์ชั่นนี้ได้อย่างง่ายดาย เพียงถามฐานข้อมูลว่ามีการใช้การเข้าสู่ระบบที่คล้ายกันหรือไม่

รับ () ฟังก์ชั่น

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

ฉันสามารถใช้สิ่งนี้ได้ที่ไหน? ตัวอย่างเช่น หากคุณสร้างเพจที่ต้องแสดงโปรไฟล์ผู้ใช้ที่เฉพาะเจาะจง คุณจะต้องดึงข้อมูลนี้แบบไดนามิก นี่คือวิธีที่คุณสามารถทำได้: (สมมติว่า URL คือ http://www.website.com/profile.php?userID=3)

//หมายเหตุ: คุณจะต้องเปิดการเชื่อมต่อฐานข้อมูลก่อน //ดูส่วนที่ 1 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการทำเช่นนั้น //คุณจะต้องตรวจสอบให้แน่ใจว่าคุณได้รวมไฟล์คลาสแล้ว
$tools = เครื่องมือผู้ใช้ใหม่(); $user = $tools->get($_REQUEST["userID"]); echo "ชื่อผู้ใช้: ".$user->ชื่อผู้ใช้""; echo "เข้าร่วมเมื่อ: ".$user->joinDate"";

อย่างง่ายดาย! มันเป็นเรื่องจริงเหรอ?

สัมผัสสุดท้ายบนฝั่งเซิร์ฟเวอร์: global.inc.php

global.inc.php เป็นสิ่งจำเป็นสำหรับทุกหน้าบนเว็บไซต์ ทำไม ด้วยวิธีนี้เราจะวางการดำเนินการตามปกติทั้งหมดที่เราต้องการไว้บนหน้า ตัวอย่างเช่น เราจะเริ่ม session_start() การเชื่อมต่อฐานข้อมูลจะเปิดขึ้นด้วย

need_once "คลาส/UserTools.class.php";
need_once "คลาส/DB.class.php";
//เชื่อมต่อกับฐานข้อมูล $db = new DB(); $db->เชื่อมต่อ();
// เริ่มต้นวัตถุ UserTools $userTools = new UserTools(); //เริ่มเซสชัน
session_start();
//รีเฟรชตัวแปรเซสชันหากเข้าสู่ระบบ if(isset($_SESSION["logged_in"])) ( $user = unserialize($_SESSION["user"]); $_SESSION["user"] = serialize($userTools-> รับ($ผู้ใช้->id) ) ?>

เขากำลังทำอะไรอยู่?

มีหลายสิ่งที่เกิดขึ้นที่นี่ ก่อนอื่นเราเปิดการเชื่อมต่อกับฐานข้อมูล

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

ต่อไปเราจะตรวจสอบว่าผู้ใช้เข้าสู่ระบบหรือไม่ หากเป็นเช่นนั้น เราจะอัปเดต $_SESSION["user"] เพื่อให้สอดคล้องกับข้อมูลผู้ใช้ล่าสุด ตัวอย่างเช่น หากผู้ใช้เปลี่ยนอีเมล อีเมลเก่าจะถูกเก็บไว้ในเซสชัน แต่ด้วยการอัปเดตอัตโนมัติสิ่งนี้จะไม่เกิดขึ้น

นี่เป็นการสรุปส่วนที่สอง! ติดตามบทเรียนสุดท้ายในหัวข้อนี้พรุ่งนี้

ขอให้ดีที่สุด!