PhpBB Oturum Verilerini Kullanma Uygulama - kısa kodunu kullanamazsınız

2 Cevap php

O phpBB oturumu kullanmak önce web uygulamaları inşa ve kullanıcı verileri ettik. Ortak hareket bu gibi bir kod kullanmaktır:

define('IN_PHPBB', true);
//replace $phpbb_root_path with path to your forum
$phpbb_root_path = '../forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

Ancak, dahil ederek common.php, ben kurulum var diğer yöntemlerle içine çalıştırabilirsiniz diğer yöntemlerle bir bok yük getirmek.

Benim örnekte, zaten bir "yönlendirme" yöntemi vardır CodeIgniter'ı kullanarak uygulamayı koşuyorum. Bu soru phpBB yöntemleri içine çalıştırabilirsiniz yöntemleri önceden inşa etti herkes için geçerli olmalıdır.

Temelde, yapmam gereken tek şey:

  1. Kullanıcı $user->data[username] == Anonymous kaydedilir emin olun
  2. Böyle Kullanıcının kimliği, screenname, vb gibi '$ user-> data' veri yararlanın

Ben $user->data dizi kapmak, ve nedense benim kendi oturumuna kurtarabilir miydi? Herkes bu konuda herhangi bir fikir var mı? Şimdiden teşekkürler!

2 Cevap

You have run into the primary reason i hate frame works. You never know just what is being included. Especially when the code is not object orientated. (much better if your function belong to objects, rather than floating free in a global space.)

Kod zaten bir yerde tanımlı oturum işleyicisi var varsayarak, normal oturum komutlarını kullanarak sizi durdurma şey yok.

eg: $_SESSION['user_data_array'] = $user->data ;

daha sonra teh oturum verilerini kullanarak

$ Data = $ _SESSION ['user_data_array'];

Bir oturum işleyici yazılı olduğunda, geçerli oturum işleyicisi değiştirir. (I oturum oldukça sunucuda daha veritabanında depolanan böylece yapılmıştır varsayalım.)

Değiştirilmesi değilse, o zaman hala oturum bilgilerini güncel web sunucusu üzerinde bir klasöre kaydedilir akılda daima ayı .. PHP'nin varsayılan oturum işleyicisi kullanabilirsiniz. Uygulama birden fazla sunucuları üzerinde çalıştırmak eğer kullanıcı bir sonraki ziyaretimde farklı bir sunucu tarafından hizmet ediliyor Yani, oturum verileri kullanılamaz olacaktır. (Dolayısıyla birden çok sunucu arasında oturum verilerini korumak için oturum işleyicileri yazma ihtiyacı.)

phpBB sürümü 2.x ile 3.0 veritabanında saklanan şifreyi doğrulamak için algoritma değişti. (Bu. Sadece bir MD5 fonksiyonu olarak kullanılan) Ama kendi yarı SDK url bulabilirsiniz (elinizde yoksa) size tarif daha yüksek bir soyutlama düzeyinde kendi kullanıcı doğrulama nasıl kullanılacağı hakkında da ilanları var .

Bu, onların kaynak dokunun için gidiyoruz eğer, bunu onların yol yapmak gerekir, bir durumdur (bu durumda olması için kullanılan daha açık olduğunu.)

Ben iki şekilde şüpheli bir karar katılıyorum; phpBB tasarım kalitesi için özellikle takdire kayıt yok, özellikle bu yana.