วิธีแทรกด้วยตนเอง User Into Forum SMF ใช้ PHP

โพสต์ใน SMF (Simple Machine Forum) , php โดย ShortLikeAFox ที่ 28 กรกฎาคม 2008

เช่นนี้เฉพาะสำหรับ SMF 1.1.5 ฉันไม่สามารถรับประกันว่าจะทำงานร่วมกับรุ่นอื่นๆ

คุณจึงใช้ Simple Machine Forum Software และต้องการให้ตนเองเข้าใช้งานได้หรือไม่ ไม่มีปัญหา ฉันรู้ว่าปัญหานี้ดูเหมือนเฉพาะเจาะจงมาก แต่ความคิดอธิบายที่นี่สามารถนำมาปรับประเภทอื่น ๆ รั่ขับเคลื่อนและฐานข้อมูลโปรแกรมสำเร็จรูปอื่น ๆ เช่น Wordpress ก่อนที่เราจะได้เป็นว่าการทำเช่นนี้ลองมาดูที่วิธี Simple Machine Forums ติดตามผู้ใช้ ในฐาน SMF มีตารางที่เรียกว่า smf_members smf_members โครงสร้างลักษณะดังนี้

สนาม ชนิด โมฆะ

คีย์ Default เพิ่มเติม
ID_MEMBER mediumint (8) unsigned NO PRI NULL auto_increment
memberName varchar (80) NO มัล
dateRegistered int (10) unsigned NO มัล 0
โพสต์ mediumint (8) unsigned NO มัล 0
ID_GROUP smallint (5) unsigned NO มัล 0
lngfile tinytext NO มัล
lastLogin int (10) unsigned NO มัล 0
realName tinytext NO
instantMessages smallint (5) NO 0
unreadMessages smallint (5) NO 0
buddy_list text NO
pm_ignore_list text NO
messageLabels text NO
passwd varchar (64) NO
emailAddress tinytext NO
personalText tinytext NO
เพศ tinyint (4) unsigned NO 0
วันเกิด วันที่ NO มัล 0001-01-01
websiteTitle tinytext NO
websiteUrl tinytext NO
สถานที่ tinytext NO
ICQ tinytext NO
AIM varchar (16) NO
YIM varchar (32) NO
MSN tinytext NO
hideEmail tinyint (4) NO 0
showOnline tinyint (4) NO 1
timeFormat varchar (80) NO
ลายเซ็น text NO
timeOffset ลอย NO 0
avatar tinytext NO
pm_email_notify tinyint (4) NO 0
karmaBad smallint (5) unsigned NO 0
karmaGood smallint (5) unsigned NO 0
usertitle tinytext NO
notifyAnnouncements tinyint (4) NO 1
notifyOnce tinyint (4) NO 1
notifySendBody tinyint (4) NO 0
notifyTypes tinyint (4) NO 2
memberIP tinytext NO
memberIP2 tinytext NO
secretQuestion tinytext NO
secretAnswer varchar (64) NO
ID_THEME tinyint (4) unsigned NO 0
is_activated tinyint (3) unsigned NO 1
validation_code varchar (10) NO
ID_MSG_LAST_VISIT int (10) unsigned NO 0
additionalGroups tinytext NO
smileySet varchar (48) NO
ID_POST_GROUP smallint (5) unsigned NO มัล 0
totalTimeLoggedIn int (10) unsigned NO 0
passwordSalt varchar (5) NO

เขตเราต้องให้ความสนใจไปที่ :

  • memberName -- Explanitory ตนเอง
  • dateRegistered -- อยู่ไม่จำเป็น แต่ถ้าไม่กรอกวันที่ลงทะเบียนจะแสดงเป็น 31 ธันวาคม 1969 วันที่จะถูกบันทึกเป็น timestamp กาล ไม่ทราบวิธีการคำนวณ timestamps ในหัวของคุณ ไม่มีปัญหา จะใช้เครื่องกำเนิดไฟฟ้าฟรีอยู่ ที่นี่
  • realName -- ควรใส เมื่อฉันไม่แน่ใจฉันซ้ำ memberName ที่นี่
  • emailAddress -- Explanitory ตนเอง
  • is_activated -- จะต้องตั้งค่า 1 เนื่องจากเราเองเปิดใช้งานสมาชิก
  • ID_POST_GROUP -- ฉันจะไม่โกหก ผมไม่แน่ใจว่าสิ่งนี้ แต่มันก็น่าจะเป็น 4 ดังนั้น ... ฉันมักจะตั้งค่าให้ 4 ไม่วิธีที่ดีที่สุดกับโปรแกรม แต่สิ่งที่คุณจะทำอย่างไร
  • passwd -- รหัสผ่านที่คุณต้องการให้ผู้ใช้ใหม่ จะไม่สามารถตัวเลขวิธีการใส่โดยไม่ต้องดูเอกสาร SMF รหัสที่เหมาะสมในการเข้ารหัสรหัสผ่าน SMF สำหรับฐานข้อมูลลักษณะดังนี้

($memberName).$password) $ passwd = sha1 (strtolower ($ memberName) . $ password)

ในบรรทัดข้างต้นของรหัสผ่าน $ เป็นรหัสผ่านจริงของผู้ใช้

How to Do It :

/ / First, เชื่อมต่อกับฐานข้อมูล SMF

"= ชื่อโฮสต์ host $"; / / ชื่อโฮสต์
"="ชื่อผู้ใช้ username $"; / / Mysql username
"="รหัสผ่าน mypassword $"; / / Mysql password
"="ชื่อผู้ใช้ db_name $"/ / ชื่อฐานข้อมูล

("cannot connect to server"); mysql_connect (host"$","$ username","$ mypassword") or die ("ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์");
("cannot select DB"); mysql_select_db ($ db_name") or die ("ไม่สามารถเลือก DB");

ironMan"memberName =";
realName $ ="สิ้นเชิง Tony";
ironMan@ironMan.com"emailAddress =";
$ is_activated = 1;
$ ID_POST_GROUP = 4;

รหัสผ่าน $ ="Tony1234";

($memberName).$password); password = sha1 (strtolower ($ memberName) . $ password);

$ dateRegistered = 1216951200 / / 2008/07/25 02:00

แบบสอบถาม ="INSERT INTO smf_members (memberName, realName, emailAddress, is_activated, ID_POST_GROUP, passwd, dateRegistered) VALUES ('$ memberName','$ realName','$ emailAddress','$ is_activated','$ ID_POST_GROUP',' รหัสผ่าน $','$ dateRegistered')";
("SMF Error 101.234 "); ผล $ = mysql_query ($ แบบสอบถาม) หรือ die ("Error SMF 101.234");

นั่นคือทั้งหมดที่มีให้มัน