Smf عربى

منتديات الدعم => القسم التعليمى => الموضوع حرر بواسطة: ح ج في 18 , ديسمبر, 2009 - 03:17:27 مسائاً

العنوان: ربط smf مع برمجيات أخرى
أرسل بواسطة: ح ج في 18 , ديسمبر, 2009 - 03:17:27 مسائاً
هنالك بعض البرمجيات مثل جملة (joomla) و coppermine وغيرها نستطيع ربطها bridge مباشرة مع smf
لكن هنالك برمجيات أخرى لا توجد فيها هذه الخاصية، فما المبدأ المتبع للقيام بذلك؟
لنفرض أن هنالك برمجية ألعاب مثلا تستخدم php و  mysql حملتها عندي على السيرفر ولها قاعدة بيانات، فهل بالإمكان جعل الuser في منتدى الsmf يدخل إلى قاعدة البيانات لتلك اللعبة وبذلك يستطيع مستخدمو المنتدى الدخول بالحساب account نفسه على اللعبة؟ أم أن الأمر أعقد من ذلك؟

وكيف يمكن مشاركة الcookies بين اللعبة والمنتدى بحيث إذا دخل المستخدم المنتدى فهو قادر على الدخول للعبة دون أن يدخل اسمه وباسوورده مرة أخرى؟

أشكركم جزيل الشكر
العنوان: رد: ربط smf مع برمجيات أخرى
أرسل بواسطة: SAFAD في 18 , ديسمبر, 2009 - 06:29:06 مسائاً
ببساطة عليك و على خبرتك في البرمجة
إذا كنت تريد جسر لكليجا فهو موجود مسبقا و قد قمت ببرمجته ستجده في موقع مفيد
حاليا لم أجد طريقة ﻷضافة الجسور و إلى لشاركته معكم
العنوان: رد: ربط smf مع برمجيات أخرى
أرسل بواسطة: ح ج في 19 , ديسمبر, 2009 - 11:54:29 صباحاً
نعم، كليجا أحد البرمجيات ;D لكنني واجهت عدة برمجيات أخرى ولم أجد لها جسر مع smf، فالطريقة الوحيدة إذن هي تعلم الكود؟ وهل هنالك بعض الدروس التي يمكن أن تساعدني بها؟
ملاحظة: أنا مبتدئ بعنف :)
العنوان: رد: ربط smf مع برمجيات أخرى
أرسل بواسطة: SAFAD في 21 , ديسمبر, 2009 - 08:45:35 مسائاً
ليس هناك دروس محددة
عليك تعلم البرمجة حسب لغة السكريبت
php او asp مثلا
و تعلم البرمجة مع قواعد البيانات حسب السكريبت
mysql او sqllite مثلا
ثم تفتح سورس السكريبت و تقرأه ستجده سهل إن شاء الله
بالنسبة للكليجا
شفرة: [اختيار]
<?php

if (!defined('IN_COMMON'))
{
   exit(
'no directly opening : ' __file__);
}
  

function 
kleeja_auth_login ($name$pass)
{
   global 
$script_path ;
   
   if(isset(
$script_path)) {
   
   if(
$script_path[strlen($script_path)] == '/')
   {
      
$script_path substr($script_path0strlen($script_path));
   }

   
$script_path = ($script_path[0] == '/' '..' '../') .  $script_path;
   
   
   
   if(
file_exists($script_path '/Settings.php')) 
   {
      require (
$script_path '/Settings.php');
      
$forum_srv   $db_server;
      
$forum_db   $db_name;
      
$forum_user   $db_user;
      
$forum_pass   $db_passwd;
      
$forum_prefix $db_prefix;
   } 
   else
   {
      
big_error('Forum path is not correct'sprintf($lang['SCRIPT_AUTH_PATH_WRONG'], 'SimpleMachineForum'));
   }
   }
   else
   {
      
$forum_srv   $script_srv;
      
$forum_db   $script_db;
      
$forum_user   $script_user;
      
$forum_pass   $script_pass;
      
$forum_prefix $script_prefix;
   }
   
   if(empty(
$forum_srv) || empty($forum_user) || empty($forum_db))
   {
      return;
   }
   
   
mysql_connect($forum_srv$forum_user$forum_pass$forum_db);
   unset(
$forum_pass); 
   
   
//securing name
   
   
$secnam=mysql_real_escape_string($name);
   
$shapw=sha1(strtolower($secnam) . $pass) ;
   
$query"SELECT * FROM smf_members WHERE member_name='$secnam' AND passwd='$shapw' ";
   echo 
"$query";   

   
$result mysql_query($query);
   

   if (
mysql_num_rows($result) != 0
   {
   
      while(
$row=mysql_fetch_array($result))
      {
         
$_SESSION['USER_ID']   = $row['id_member'];
         
$_SESSION['USER_NAME']   = $row['member_name'] ;
         
$_SESSION['USER_MAIL']   = $row['email_address'];
         
$_SESSION['USER_ADMIN']   = ($row['id_group'] == 1) ? 0;
         
$_SESSION['USER_SESS']   = session_id();
         
      }
      
      
mysql_free_result($result);   
      unset(
$pass);
      
mysql_close();
      
      
      return 
true;
   }
   else
   {
      
mysql_close();
      return 
false;
   }
}   

function 
kleeja_auth_username ($user_id)
{

   global 
$script_path ;
   
   if(isset(
$script_path)) {
   
   if(
$script_path[strlen($script_path)] == '/')
   {
      
$script_path substr($script_path0strlen($script_path));
   }

   
$script_path = ($script_path[0] == '/' '..' '../') .  $script_path;
   
   
   
   if(
file_exists($script_path '/Settings.php')) 
   {
      require (
$script_path '/Settings.php');
      
$forum_srv   $db_server;
      
$forum_db   $db_name;
      
$forum_user   $db_user;
      
$forum_pass   $db_passwd;
      
$forum_prefix $db_prefix;
   } 
   else
   {
      
big_error('Forum path is not correct'sprintf($lang['SCRIPT_AUTH_PATH_WRONG'], 'SimpleMachineForum'));
   }
   }
   else
   {
      
$forum_srv   $script_srv;
      
$forum_db   $script_db;
      
$forum_user   $script_user;
      
$forum_pass   $script_pass;
      
$forum_prefix $script_prefix;
   }
   
   if(empty(
$forum_srv) || empty($forum_user) || empty($forum_db))
   {
      return;
   }
   
   
mysql_connect($forum_srv$forum_user$forum_pass$forum_db);
   unset(
$forum_pass); 
   
   
//securing name
   
$valnin=intval($user_id);
   
$query"SELECT member_name FROM smf_members WHERE id_member='$valnin'" ;
         

   
$result mysql_query($query);
   

   if (
mysql_num_rows($result) != 0
   {
   
      while(
$row=mysql_fetch_array($result))
      {
         
$returnname $row['username'];
         
      }
      
      
mysql_free_result($result);   
      unset(
$pass);
      
mysql_close();
      
      
      return 
true;
   }
   else
   {
      
mysql_close();
      return 
false;
   }
}
         
   

?>
للأسف لم يهتموا لأمري تكبرا منهم و هذا أمر لا يهم  :-X
المهم أنا هنا مع أحلى ناس
ناس mbc 3
أه آسف
ناس SMF :)
العنوان: رد: ربط smf مع برمجيات أخرى
أرسل بواسطة: ح ج في 21 , يناير, 2010 - 01:24:58 صباحاً
أعتذر لردي المتأخر لكن أمطرت علينا الامتحانات ولم تتوقف حتى اليوم ;D
أشكرك جزيل الشكر أخي الكريم، ووفقك الله في امتحاناتك أيضا :D
هل يمكنك توضيح هذا السكريبت رجاء، يعني أين أضيفه بالضبط؟
العنوان: رد: ربط smf مع برمجيات أخرى
أرسل بواسطة: صلاح الدين في 21 , يناير, 2010 - 06:49:41 مسائاً
أعتذر لردي المتأخر لكن أمطرت علينا الامتحانات ولم تتوقف حتى اليوم ;D
أشكرك جزيل الشكر أخي الكريم، ووفقك الله في امتحاناتك أيضا :D
هل يمكنك توضيح هذا السكريبت رجاء، يعني أين أضيفه بالضبط؟
اظن الربط بنفس اليوزر سهل
المشكلة في إشتراك نفس الجلسة
session
العنوان: رد: ربط smf مع برمجيات أخرى
أرسل بواسطة: SAFAD في 21 , يناير, 2010 - 08:32:30 مسائاً
صلاح
لو كان إشتراك نفس الجلسة ممكن
فأظن أنه تم إختراق الكثير من المواقع
ﻷن الجلسة لكل مجلد و موقع و subdomain وحده
بالنسبة لأين تضع الملف
فقد نسيت ههههه
إبحث عن bridge أو شيئ ما هكذا في منتدى مفيد (الدعم الخاص بهم)
العنوان: رد: ربط smf مع برمجيات أخرى
أرسل بواسطة: صلاح الدين في 21 , يناير, 2010 - 08:40:41 مسائاً
صلاح
لو كان إشتراك نفس الجلسة ممكن
فأظن أنه تم إختراق الكثير من المواقع
ﻷن الجلسة لكل مجلد و موقع و subdomain وحده
بالنسبة لأين تضع الملف
فقد نسيت ههههه
إبحث عن bridge أو شيئ ما هكذا في منتدى مفيد (الدعم الخاص بهم)
الموقع الرسمي لـ smf
يستعمل نفس الجلسة مع المنتدى وكل المجلدات ....  ;D
حقيقتا لم اسمع انه اخترق من قبل  ;)
العنوان: رد: ربط smf مع برمجيات أخرى
أرسل بواسطة: SAFAD في 21 , يناير, 2010 - 09:19:23 مسائاً
لأن النظام كله مبني على SMF
لا ننسى تأكيد أن الملفات كلها يجب أن تحوي smf is defind ;)
العنوان: رد: ربط smf مع برمجيات أخرى
أرسل بواسطة: صلاح الدين في 22 , يناير, 2010 - 12:33:54 مسائاً
لأن النظام كله مبني على SMF
لا ننسى تأكيد أن الملفات كلها يجب أن تحوي smf is defind ;)
;D الخبرة تلعب دور
ونحن في بداية الطريق دوما ان شاء الله نصل للبعيد  ;)
العنوان: رد: ربط smf مع برمجيات أخرى
أرسل بواسطة: ح ج في 22 , يناير, 2010 - 05:10:02 مسائاً
مشكوووور أخي صفد، عبقري :D
جاري التجربة
العنوان: رد: ربط smf مع برمجيات أخرى
أرسل بواسطة: ح ج في 22 , يناير, 2010 - 05:45:29 مسائاً
إليك الخطوات وقللي أين خطأئي رجاء
في الرئيسية هنالك مجلدين
forum حيث منتدى ال smf
juc حيث كليجا

وضعت الكود الذي أعطيتني إياه في مجلد forum وأسميته smf.php ثم عدلت على ملف config بإضافة الكود كالتالي

شفرة: [اختيار]
    $script_path      = './forum';// path of your script
    $script_encoding   = 'utf-8';//  ترميز صفحات المنتدى
    //قاعدة البيانات
    $script_srv         = 'localhost';
    $script_db         = ''; //المنتدى قاعدة البيانات
    $script_user      = ''; // يوزر القاعدة
    $script_pass      = ''; // باسورد اليوزر
    $script_prefix      = 'phpbb_'; // بادئة الجداول للمنتدى
كتبت اليوزر الباسوورد والبادئة... الخ

أحاول الدخول إلى كليجا لكن دون جدوى :(
العنوان: رد: ربط smf مع برمجيات أخرى
أرسل بواسطة: SAFAD في 23 , يناير, 2010 - 09:59:53 صباحاً
لالا
هذا تضعه في
kleeja/includes/auth_integration
بإسم smf.php
تدخل للإدارة في كليجا ثم إختر الربط مع smf
تأكد ثم تأكد من البيانات (إفتح ملف settings.php لsmf حتى تستطيع التأكد من البيانات)
دمتم في حفظ الرحمن
العنوان: رد: ربط smf مع برمجيات أخرى
أرسل بواسطة: ح ج في 23 , يناير, 2010 - 12:42:48 مسائاً
أدرك أنني أزعجتك في هذا الموضوع، آسف :(
أخيرا تم الربط، لكنه يقول لي
 [ Forum path is not correct ]
كما أنه يظهر
SELECT * FROM smf_members WHERE member_name='1' AND passwd='********باسوورد هنا*******' 
العنوان: رد: ربط smf مع برمجيات أخرى
أرسل بواسطة: SAFAD في 23 , يناير, 2010 - 05:17:31 مسائاً
لا مشكلة
تأكد من صحة رابط المنتدى
أما عن ذلك الخطأ فهو خطأي
أتأكد من أن الكود سليم .-
أزل   echo "$query";   
وإنتهى الأمر
العنوان: رد: ربط smf مع برمجيات أخرى
أرسل بواسطة: ح ج في 23 , يناير, 2010 - 08:24:40 مسائاً
والله أعلم أن الربط ناجح
ما أقصده هو أنني عندما أريد التسجيل فهو يحولني للمنتدى
لكن عندما أريد أن أدخل فهو لا ينفع :(
cannot login
يبدو أن الكود يربط الطرفين لكنه لا يربط قاعدة بيانات الأعضاء user أو ما شابه
ما رأيك أخي صفد
العنوان: رد: ربط smf مع برمجيات أخرى
أرسل بواسطة: SAFAD في 23 , يناير, 2010 - 08:26:45 مسائاً
هو يعمل عندي بشكل صحيح
تأكد في localhost
العنوان: رد: ربط smf مع برمجيات أخرى
أرسل بواسطة: ح ج في 26 , يناير, 2010 - 08:30:52 مسائاً
لم يعمل، لكن أظن ذلك كاف :D
جزاك الله ألف خير أخي صفد
العنوان: رد: ربط smf مع برمجيات أخرى
أرسل بواسطة: ح ج في 28 , يناير, 2010 - 08:35:01 صباحاً
أريد أن أزعجك معي ثانية :D
إليك الوضع
قمت بتحميل ويكي ميديا عندي وقمت بربطه بال smf
المشكلة التي واجهتها هي أن الأسماء العربية لا تعمل
لكن اسمي الظاهري فقط بالعربية، بينما اسمي الحقيقي بالإنجليزية، فكان يعمل

هل من الممكن أن يكون الوضع في كليجا مشابها لذلك؟

كما أن هنالك خاصية ربط الlog in ربطا مباشرا مع ال smf
أي عند عمل log in فهو يحولك إلى المنتدى، تقوم بتسجيل الدخول ثم يحولك مرة أخرى إلى الويكي ميديا
فما رأيك أخي صفد؟

تعديل: بالمناسبة، ربما الخطأ في الإصدار؟ الإصدار عندي هو 1363 التجريبي، هل هذا هو المستخدم عندك؟
جزيل الشكر لك