Tiêu đề: Cách tích hợp Xtremedia vào vBB Sat Jun 27, 2009 11:09 am
Cách tích hợp Xtremedia vào vBB
Tích hợp ở đây có nghĩa là làm cho Xtremedia dùng chung dữ liệu thành viên của 4rum vBB. Như vậy những thành viên vBB có thể đăng nhập, sử dụng Xtremedia. Thống nhất hệ thống thành viên sử dụng tái nguyên website, tránh phải đăng ký 2 tài khoản cho forum và music.
Tôi viết bài này chủ yếu là phân tích và nêu phương pháp cho các bạn tự thực hiện với site của mình vì mỗi người có nhu cầu riêng, ai thích làm đến đâu thì làm. Tớ cũng là new bie thôi nên nếu có thuật ngữ nào dùng sai thì các bạn thông cảm . Có tham khảo từ bản tích hợp extremedia vào vbb của bác Không Yêu.
Trước tiên thì dữ liệu của Xtremedia phải nằm cùng database với forum vBB. Những table cần chỉnh sửa là user của vBB và media_user của Xtremedia (ở đây tôi dùng prefix cho các table của xtremedia là media_ để phân biệt với các table của vBB khi 2 cái dùng chung 1 database. Cấu hình cái này nằm trong config.php á) table của. Chúng ta sẽ sử dụng dữ liệu thành viên của vBB chung cho cả vBB và xtremedia vì thế khi truy xuất dữ liệu thành viên, xtremedia sẽ phải lấy từ table user của vBB. Vậy chúng ta sẽ phải nhập những field cần thiết của table media_user vào table user. Nhập vào như thế nào? - Bạn dùng phpMyadmin, duyệt table media_user xem thuộc tính của những field trong đó thế nào và add thêm vào table user những field với tên và thuộc tính như vậy (field, type, collation, null, default, v,v...) Trừ 2 field user_name và user_password vì chúng ta sẽ không dùng 2 field này nữa.
Như vậy, cấu trúc của table user đã đủ điều kiện đễ cả vBB và Xtreme cùng sử dụng. Vậy làm sao để Xtreme chuyển qua dùng table user để quản lý thành viên thay vì table media_user? - Chúng ta cần thay đổi code của 1 vài file.
Những file ảnh hưởng đến truy xuất dữ liệu user và phiên đăng nhập của user cần edit: /login.php, /logout.php, /user.php, /includes/functions.php, /includes/user_online.php, /admin/login.php, /admin/logout.php, admin/media_user.php.
Edit những gì? - Cứ tìm chỗ nào có ".$tb_prefix."user thì thay bằng user (tên của table thành viên của vBB), thay user_name bằng username, user_password bằng password. Như vậy, extremedia đã chuyển sang dùng dữ liệu thành viên của vBB.
Nhưng vấn đề nảy sinh: Bạn vẫn chưa đăng nhập được vào extremedia với mật khẩu của vBB. Bởi vì cơ chế mã hóa mật khẩu của Xtrem và vBB khác nhau. Khi đăng nhập, xtrem sẽ mã hóa chuỗi mật khẩu mình nhập vào với code ".md5($pwd)." (với $pwd là chuỗi mật khẩu mình nhập vào) và so sánh với chuôic mật khẩu đã được lưu trong field password trong database. Còn vBB lại mã hóa chuỗi mật khẩu mình nhập vào với code ".md5(md5($pwd) . $salt)." - 2 lần md5, kinh! Lại thêm cái $salt nữa, nó nằm trong table user của vBb chứ đâu. Ta truy vấn nó ra, gán vào biến rồi đưa vào trong code mã hóa mật khẩu cho đủ bộ thì mới giống mật khẩu trong database của vBB được. Thêm cái này vào login.php để có $salt (ngay dưới đoạn $pwd = stripslashes(urldecode($_POST['pwd'])); là ổn
Mã: $my_salt = $mysql->query("SELECT salt FROM user WHERE username = '".$name."'"); while ($THT = $mysql->fetch_array($my_salt)) { $salt = $THT['salt'];
Vậy làm gì để Xtrem dùng được mật khẩu của vBB? - Thì sửa lại code mã hóa mật khẩu của Xtrem cho giống kiểu của vBB thui! Tìm trong mấy file login.php, chổ nào nó dùng 1 md5 thì mình thêm vào (như ở trên á!). Chú ý user_new_password = '".md5(md5($pwd))."' không có $salt nhé. user_new_password khác với password.
Vậy là ok rồi, Xtreme đã "hiểu" được thông tin đăng nhập của user từ vBB. Còn vấn đề đăng ký và edit thông tin user trong extrem với user của vBB thì cũng áp dụng cách trên. Nhưng tôi nghĩ là nên chuyển luôn phần đăng ký thành viên và chỉnh sửa, quản lý thông tin thành viên qua vBB luôn. Không cần phải dùng chức năng đó cuat Xtremedia nữa vì đăng ký thông tin từ vBB sẽ đầy đủ thông tin hơn, bảo mật hơn và... khỏi mất công edit thêm mấy trang này trong Xtremedia . Một công đôi việc ^^. Cứ trỏ đến trang đăng ký của vBB khi thành viên bâm vào link đăng ký.
Mình chỉ rút được những cái này từ kinh nghiệm của mình khi tích hợp Xtremedia vào vBB của mình. Còn những thao tác chi tiết và lỗi phát sinh thì tùy vào mỗi người và đặt điểm site mỗi người. Nguyên tắc là vậy, ai có ý kiến gì thêm thì nêu thêm nhé. Mình là newbie, bị chê hổng quê ^^
Cách tích hợp Xtremedia vào vBB
Trang 1 trong tổng số 1 trang
Viết "Tiếng Việt" để tôn trọng văn hoá VN Không
nên viết toàn tiếng Anh hay tiếng nước ngoài Bài vi phạm sẽ bị chuyển đến ßãi rác