WordPress ผู้ดูแลระบบอัตโนมัติเข้าสู่ระบบใน PHP

โพสต์ในวันนี้จะเป็นเพียงช่วงสั้น ๆ ที่ฉันจะแสดงให้คุณเห็นถึงวิธีการติดตั้งฟีเจอร์เล็ก ๆ น้อย ๆ บนเว็บไซต์ WordPress ของคุณ หากใช้อย่างปลอดภัยจะสะดวกมาก สิ่งนี้ถูกออกแบบมาเพื่อใช้กับเว็บไซต์ WordPress ซึ่งเสนอบัญชีทั่วไปสำหรับผู้ใช้เพื่อเข้าสู่ระบบ ตัวอย่างเช่นใน WordPress backend จำนวนมากผู้เขียนจะสร้างบัญชี “ตัวอย่าง” สำหรับลูกค้าที่คาดหวังเพื่อเข้าสู่ระบบและเล่นกับผลิตภัณฑ์ของเขา / เธอ บ่อยกว่านั้นผู้เขียนจะแสดงคำบอกกล่าว;


ชื่อผู้ใช้: การสาธิต
รหัสผ่าน: การสาธิต

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

สิ่งนี้อาจมีประโยชน์หาก;

  • ไซต์ของคุณมีบัญชีทั่วไปสำหรับผู้ใช้ที่ไม่ระบุชื่อเพื่อเข้าสู่ระบบ.
  • คุณต้องการลิงค์เข้าสู่ระบบ ‘คลิกเดียว’.
  • คุณต้องการเพิ่มการแปลงการสาธิตผลิตภัณฑ์โดยการให้ทางเดินที่รวดเร็วและมีประสิทธิภาพไปยังการสาธิตโดยลดขั้นตอนที่จำเป็นให้น้อยที่สุด.
  • คุณต้องการนำผู้เยี่ยมชมไปยังตำแหน่งที่เกี่ยวข้องโดยตรง (เช่นหน้าการตั้งค่า).

สิ่งสำคัญ: อย่าใช้สิ่งนี้เพื่อเข้าสู่ระบบด้วยพลังที่แท้จริง เช่น. บัญชีผู้ดูแลระบบ / แก้ไข ฯลฯ.
ใช้ตัวอย่างนี้อย่างระมัดระวัง.

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

Harri Bell-Thomas บน Github

/ *
ชื่อปลั๊กอิน: ล็อกอินอัตโนมัติ
ปลั๊กอิน URI: http://hbt.io/
เวอร์ชัน: 1.0.0
ผู้แต่ง: Harri Bell-Thomas
ผู้เขียน URI: http://hbt.io/
* /

ฟังก์ชัน autologin () {
// พารามิเตอร์เพื่อตรวจสอบ
if ($ _GET ['autologin'] == 'สาธิต') {

// บัญชีผู้ใช้เพื่อลงชื่อเข้าใช้
$ creds ['user_login'] = 'สาธิต';

// บัญชีรหัสผ่านที่จะใช้
$ creds ['user_password'] = 'สาธิต';

$ creds ['Remember'] = จริง;
$ autologin_user = wp_signon ($ creds, false);

if (! is_wp_error ($ autologin_user))
ส่วนหัว ('สถานที่ตั้ง: wp-admin'); // LOCATION เพื่อไถ่ถอนไป
}
}
// เพิ่มรหัสเพียงก่อนที่จะมีหัวและคุกกี้
add_action ('after_setup_theme', 'autologin');

การใช้งาน

มันใช้ง่ายมาก ชื่อผู้ใช้และรหัสผ่านของบัญชีระบุไว้ในไฟล์ปลั๊กอิน (รหัสด้านบน) และเพื่อเข้าสู่ระบบคุณเพียงแค่ต้องไปที่; http://example.com/wp-login.php?autologin=demo

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

ปรับแต่ง

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

ถ้า ($ _GET ['เข้าสู่ระบบ'] == 'dummy_account') {

// บัญชีผู้ใช้เพื่อลงชื่อเข้าใช้
$ creds ['user_login'] = 'หุ่นจำลอง';

// บัญชีรหัสผ่านที่จะใช้
$ creds ['user_password'] = 'pa55word';

ในบรรทัดแรกคุณจะเห็นการตรวจสอบเงื่อนไขสำหรับพารามิเตอร์ URL โค้ดบล็อกด้านบนจะทำการตรวจสอบ WP-login.php? เข้าสู่ระบบ = dummy_account

ค่าเหล่านี้อาจเป็นสิ่งที่คุณต้องการ แต่ควรระมัดระวังเพื่อหลีกเลี่ยงพารามิเตอร์ WordPress ดั้งเดิมเช่น “ออกจากระบบ”, “การกระทำ” และ “redirect_to” บรรทัดที่ 4 คือที่ที่คุณระบุชื่อผู้ใช้เพื่อเข้าสู่ระบบด้วย; ข้อมูลโค้ดที่กำหนดเองจะพยายามลงชื่อเข้าใช้บัญชี “จำลอง” ในขณะที่คุณสามารถคาดเดาได้บรรทัดที่ 7 คือที่ที่คุณระบุรหัสผ่าน รหัสผ่านด้านบนคือ ‘pa55word’ กรอกค่าเหล่านี้ออกมาและคุณควรจะไปดี!

ส่วนขยาย

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

/ *
ชื่อปลั๊กอิน: ล็อกอินอัตโนมัติ
ปลั๊กอิน URI: http://hbt.io/
คำอธิบาย: สร้างลิงค์เข้าสู่ระบบอัตโนมัติที่สะดวกเพื่อเข้าสู่บัญชีทั่วไปได้อย่างรวดเร็ว กำหนดค่าซอร์สโค้ดเพื่อทำการเปลี่ยนแปลง.
เวอร์ชัน: 1.0.0
ผู้แต่ง: Harri Bell-Thomas
ผู้เขียน URI: http://hbt.io/
* /

// ประกาศ var ของโกลบอล
$ เข้าสู่ระบบทั่วโลก $ บัญชี;

// พารามิเตอร์เพื่อการตรวจสอบ
// เช่น. http://exmaple.com/wp-login.php?param_name=account
$ login_parameter = "autologin";

// บัญชีรหัสบล็อก
$ Accounts [] = อาร์เรย์ (
"user" => "สาธิต",
"pass" => "สาธิต",
"location" => "wp-admin",
);
// สิ้นสุดบัญชีรหัสบล็อก

// แก้ไขและทำซ้ำรหัสของบล็อกอีกหลายบัญชีตามที่ต้องการ

// อีกตัวอย่างของการวนซ้ำ
$ Accounts [] = อาร์เรย์ (
"user" => "tcwp",
"pass" => "สาธิต",
"location" => "wp-admin /? tcwp-send-me",
);


// ดูตัวอย่างก่อนหน้านี้สำหรับรายละเอียดเกี่ยวกับฟังก์ชั่นนี้
ฟังก์ชัน autologin () {
$ เข้าสู่ระบบทั่วโลก $ บัญชี;
foreach (บัญชี $ เป็นบัญชี $) {
if ($ _GET [$ login_parameter] == บัญชี $ ['ผู้ใช้']) {
$ creds ['user_login'] = $ บัญชี ['ผู้ใช้'];
$ creds ['user_password'] = บัญชี $ ['pass'];
$ creds ['Remember'] = จริง;
$ autologin_user = wp_signon ($ creds, false);
if (! is_wp_error ($ autologin_user))
header ('Location:'. $ account ['location']);
}
}
}
add_action ('after_setup_theme', 'autologin');

ที่แกนกลางของที่นี่เป็นหลักเดียวกัน แต่มีวงหน้า foreach บวกกับอาร์เรย์บัญชีโยนในเช่นกัน กายวิภาคของฟังก์ชัน autologin () นั้นเหมือนกันยกเว้นความจริงของรหัสนั้นซ้ำ (ใช้ foreach loop) สำหรับแต่ละบัญชี รายละเอียดที่เกี่ยวข้องทั้งหมดจะถูกจัดเก็บในอาร์เรย์ทั่วโลก ตัวอย่างข้างต้นได้รับการตั้งค่าสำหรับ 2 บัญชี แต่ตัวอย่างของเราสามารถรองรับได้มากเท่าที่เราต้องการ ในการเพิ่มบัญชีเพิ่มเติมเพียงปรับแต่งและเพิ่มบล็อคโค้ดต่อไปนี้จำนวนมากเท่าที่คุณต้องการ.

// บัญชีรหัสบล็อก
$ Accounts [] = อาร์เรย์ (
"user" => "anotheraccount",
"pass" => "public_password",
"location" => "http://YouCanPutURLsHereToo.com/",
);
// สิ้นสุดบัญชีรหัสบล็อก

คุณจะสังเกตเห็นว่าฉันได้ย้ายชื่อพารามิเตอร์ไปยังตัวแปรทั่วโลกเช่นกัน: ไม่จำเป็น แต่ฉันทำเช่นนั้นเพื่อลบค่ารหัสฮาร์ดทั้งหมดจากฟังก์ชัน autologin ().

สรุปผลการศึกษา

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

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map