Question Lấy csdl xenforo để làm trang khác ?

Thảo luận trong 'Troubleshoot & Other Questions' bắt đầu bởi cuibapvn, 11/1/13.

1votes
5/5, 1 vote

  1. cuibapvn

    cuibapvn New Member

    Bài viết:
    78
    Likes :
    4
    Hiện nay mình đang chạy forum xenforo , và hiện nay đã có số lượng thành viện khá lớn , bây giờ mình có ý định làm 1 trang khác độc lập với forum (nói độc lập nhưng vẫn nằm chung thư mục trên host :( ) và sử dụng các thông tin user có sẵn của forum !! cụ thể mình đang tính xây trang login riêng , nhưng không biết cơ chế mã hóa pass thế nào hết , ai rành vụ này chỉ dùm mình với ??
    thanks anh em đã đọc !!
     
    Đang tải...
  2. bitsno0p

    bitsno0p Member

    Bài viết:
    234
    Likes :
    84
    mình nghĩ là export xf_user ra rồi import vào cái data kia :D
     
    cuibapvn thích bài này.
  3. Kid

    Kid VIP Member

    Bài viết:
    863
    Likes :
    947
    Cái này mình đã đọc, thử làm rồi, check login thì dễ thôi bạn ạ
    Giả sử bạn đang muốn web đăng nhập bằng thành viên của forum
    Code này của anh MIF mình copy lại function của anh ấy và viết thêm đồng thời chú thích chi tiết để ai cũng có thể hiểu nhé :D

    Ý đồ như sau

    Khi người dùng đăng nhập sử dụng form thì sẽ có giá trị của 2 biến là
    $username= $_POST['username']; và
    $pass_nhap_vao = $_POST['user_pass'] ;


    Sau đó bạn sẽ truy xuất table xf_user_authentication để lấy giá trị pass ở trong row tên là data. Nó được mã hóa lằng nhằng lắm nên bạn xem kĩ phần chú thích ở đoạn kiemtrapass( $pass_nhap_vao,$thongtin['data'] ); trong đoạn PHP bên dưới

    Sau khi kiểm tra pass thì sẽ trả về giá trị cho biến tên là $checked = 0 hoặc bằng 1
    Đúng ($checked=1) thì sẽ chạy tiếp function thứ 2 có tác dụng là ghi username nhập vào, pass nhập vào vào cơ sở dữ liệu của web.
    Sai thì hiện thông báo nhập sai.

    Các bước trên được thể hiện bằng mã PHP như sau
    PHP:
    <?
    //Bắt đầu hàm kiểm tra pass
    function kiemtrapass$password$serialized_pass )
        {
            
    $pass_array unserialize$serialized_pass );
            switch( 
    $pass_array['hashFunc'] )
            {
                case 
    'sha256':
                    return ( 
    $pass_array['hash'] == hash'sha256'hash'sha256'$password ) . $pass_array['salt'] ) );
                case 
    'sha1':
                    return ( 
    $pass_array['hash'] == sha1sha1$password ) . $pass_array['salt'] ) );
            }
        }


    mysql_connect("localhost","ten_dang_nhap_cua_csdl""mat_khau_csdl");
    mysql_select_db("ten_database");
    mysql_query("SET NAMES 'UTF8'");
    // 3 dòng này là kết nối cơ sở dữ liệu của forum

    $username 'Admin';
    $pass_nhap_vao '123456';
    //Giả sử như người ta nhập vào username tên là Admin và pass là 123456


    $caulenh mysql_query("SELECT * FROM xf_user_authenticate WHERE `user_id` = $user_id ");


    $thongtin mysql_fetch_array($caulenh);
    // Mảng có tên là $thongtin lấy tất cả các giá trị có trong table xf_user_authentication của user_id=xxx


    $check =kiemtrapass$pass_nhap_vao,$thongtin['data'] );



    if(
    $check$checked =1;
    else 
    $checked 0;
    //Nếu check pass nhập vào đúng thì sẽ trả về giá trị $checked=1;
    // Nếu không sẽ trả về giá trị là 0.
    // Từ giá trị checked này bạn có thể làm các bước tiếp theo
    // Ví dụ mình sẽ làm thêm 1 đoạn nữa

    if ($checked=0) echo 'Không tìm thấy tên đăng nhập hoặc mật khẩu không đúng';
    else {
    echo 
    'Bạn đã điền đúng tên đăng nhập và mật khẩu, bây giờ chúng tôi sẽ  ghi lại tên đăng nhập và mật khẩu này vào cơ sở dữ liệu thứ 2';

    //rồi bắt đầu là hàm register có tác dụng ghi vào CSDL mới, với thông tin vừa nhập vào, hàm này là hàm tạo thành viên mới của web
    register ($username,$pass_nhap_vao);
    }

    // Cảm ơn bạn đã đọc tới đây
    // Nhiều người muốn làm như bạn nhưng lại ít người muốn tự viết code
    // Vì vậy việc đọc đến cuối bài cũng thật đáng ghi nhận rồi.
    // Nếu thấy bài viết hay vui lòng ấn Like cho mình một cái
    ?>
     
    Last edited: 1/1/14
  4. kainjinez

    kainjinez New Member

    Bài viết:
    2
    Likes :
    0
    Up lên cho các bác nghiên cứu tiếp để tích hợp với nhiều mã nguồn nhá. Code này là làm xong phần check login rồi đấy
     
  5. jetmoon

    jetmoon New Member

    Bài viết:
    2
    Likes :
    0
    Mình muốn insert thành viên từ web của mình vào xenforo thì làm thế nào vậy bạn??? Đã đọc rất nhiều bài nhưng ko giải quyết dc.
     
  6. phannamlq

    phannamlq New Member

    Bài viết:
    1
    Likes :
    0
    có ai có code check pass k nhỉ cái này dùng đc với scheme_class= XenForo_Authentication_Core còn scheme_class= XenForo_Authentication_Core12 nó mã hóa cách khác.

    Mã:
    (3, 'XenForo_Authentication_Core12', 'a:1:{s:4:"hash";s:60:"$2a$10$hvbm2H364nGQy1l3Dm9UmeGS9cMQkMQKEPOnff9v8SNPP9pyOngxO";}', '76acc63c897638d7ee3bc65a451b98d4ed62a01a');
    
    đây là đoạn sql export ra
     
  7. teri.nk79

    teri.nk79 New Member

    Bài viết:
    27
    Likes :
    3
    nó hiện ra trang trắng bác ơi :(
     
comments powered by Disqus

Chia sẻ trang này

Đang tải...