เนื่องจากฉันจำเป็นต้องใช้สิ่งนี้เพื่อเหตุผลในการทำงาน ฉันจึงค้นคว้า
แนวคิดหลักคือการจำลองคุกกี้ ขั้นแรกให้ใส่ ID ผู้ใช้และ SessionID ลงในคุกกี้ จากนั้นจึงใส่ SessionID และ ID ผู้ใช้ลงในตารางเซสชันในฐานข้อมูล หากเปิดฟอรั่มแล้วระบบจะตรวจสอบว่าข้อมูล COOKIES เหมือนกับข้อมูลในฐานข้อมูลหรือไม่ หากเหมือนกัน สามารถเข้าสู่ระบบอัตโนมัติได้ รหัสหลักสำหรับส่วนเข้าสู่ระบบมีดังนี้:
<?php
// รับ SESSIONID แบบสุ่ม 32 บิต
//เริ่มต้นแต่ละค่า
$Session_testId=create_sess_id(32);
$SessionIp='192.168.0.100';
$cookie_path='/';
$cookieName='phpbb3_1w36a';
$userBrowserInfo= $_SERVER["HTTP_USER_AGENT"];
$userIpAdd=$_SERVER["REMOTE_ADDR"];
//รับชื่อผู้ใช้และรหัสผ่านของแบบฟอร์ม
$cmd_username=$_POST["ชื่อผู้ใช้"];
$cmd_password=$_POST["รหัสผ่าน"];
//ตรวจสอบกับตารางระบบ CMS ก่อน หากผ่าน ให้ค้นหา ID ในตารางผู้ใช้ BBS ของชื่อผู้ใช้ที่เกี่ยวข้อง
$link=mysql_connect("localhost","root","");
mysql_select_db("cms");
$selectUid="select user_id จาก bbs_users โดยที่ชื่อผู้ใช้='$cmd_username'";
$uidResult=mysql_query($selectUid);
$userId=null;
ในขณะที่($row1 = mysql_fetch_array($uidResult, MYSQL_NUM))
-
$userId=$row1[0];
-
//echo $userId;
mysql_close($link);
//ใส่ข้อมูล ID ผู้ใช้ลงใน Cookies
setcookie($cookieName.'_u',$userId,time()+100000000,$cookie_path,$SessionIp,false);
//แทรกข้อมูล SessionID ลงในคุกกี้
setcookie($cookieName.'_sid',$Session_testId,time()+100000000,$cookie_path,$SessionIp,false);
//แทรกข้อมูลเซสชันลงในตาราง phpb_sessions
$link=mysql_connect("localhost", "root", "");
mysql_select_db("cms");
$sqlcommand="แทรกลงใน bbs_sessions(session_id,session_user_id,session_last_visit,session_start,session_time,session_ip,session_browser,session_page)";
$sqlcommand.="value('$Session_testId',$userId,'".time()"','".time()"','".time()."','$userIpAdd', '$userBrowserInfo','index.php')";
//echo $sqlcommand;
mysql_query($sqlcommand);
mysql_close($ลิงค์);
//สร้างตัวเลขสุ่มขนาด 32 บิต
ฟังก์ชั่น create_sess_id($len=32)
-
// รับค่าไมโครวินาทีของเวลาปัจจุบัน
รายการ($u, $s) = eXPlode(' ', ไมโครไทม์());
$เวลา = (ลอย)$u + (ลอย)$s;
// สร้างตัวเลขสุ่ม
$rand_num = แรนด์(100000, 999999);
$rand_num = แรนด์($rand_num, $เวลา);
mt_srand($rand_num);
$rand_num = mt_rand();
//สร้าง SessionID
$sess_id = md5( md5($เวลา). md5($rand_num) );
//สกัดกั้น SessionID ที่ระบุความยาวที่ต้องการ
$sess_id = substr($sess_id, 0, $len);
กลับ $sess_id;
-
ส่วนหัว ("ตำแหน่ง: http://192.168.0.100/bbs/index.php ");
//print_r($_COOKIE);
?>
ด้วยวิธีนี้ การเข้าสู่ระบบอัตโนมัติสามารถทำได้
แน่นอนว่ายังไม่เพียงพอ ผู้ใช้ใน PHPBB จะต้องถูกบล็อกจากการแก้ไขข้อมูลบัญชีและการลงทะเบียนผู้ใช้ใหม่ ตัวอย่างเช่น หากคุณต้องการแก้ไขการลงทะเบียน คุณสามารถแก้ไขได้
ไดเร็กทอรี phpbb3rc2stylesprosilvertemplate ในหน้าเทมเพลต .ucp_register.html ต่อไปนี้ ให้ลบเนื้อหาภายในและเพิ่ม
<script type="text/javascript" language="javascript">
window.location='member.php';
</script>
ด้วยวิธีนี้เมื่อผู้ใช้คลิกเพื่อลงทะเบียนและคลิกเพื่อลงทะเบียนหลังจากอ่านเงื่อนไขแล้วเขาจะข้ามไปที่หน้าลงทะเบียนบนเว็บไซต์ วิธีการแก้ไขข้อมูลโดยพื้นฐานแล้ว
แนวทางของฉันไม่เหมือน
กันรวมตารางผู้ใช้ แต่ละคนมีระบบ User ของตัวเองแทน
เมื่อลงทะเบียนผู้ใช้บนเว็บไซต์ให้แทรกข้อมูลผู้ใช้ลงในตารางผู้ใช้และตาราง user_group ของฐานข้อมูล PHPBB ในเวลาเดียวกัน จำไว้ว่าคุณต้องดูที่กลุ่ม
อนุญาตและใส่สิ่งที่เกี่ยวข้องมิฉะนั้นคุณอาจไม่สามารถเข้าสู่ระบบได้ ปัญหาเช่นการไม่เปลี่ยนข้อความและไม่สามารถอ่านฟอรั่มในส่วนนี้ค่อนข้างยาวและเรียบง่ายดังนั้นจึงละเว้นรหัส ส่วนใหญ่เป็นส่วนที่เข้าสู่ระบบ