منتديات الدعم > القسم التعليمى

ربط smf مع برمجيات أخرى

(1/4) > >>

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

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

أشكركم جزيل الشكر

SAFAD:
ببساطة عليك و على خبرتك في البرمجة
إذا كنت تريد جسر لكليجا فهو موجود مسبقا و قد قمت ببرمجته ستجده في موقع مفيد
حاليا لم أجد طريقة ﻷضافة الجسور و إلى لشاركته معكم

ح ج:
نعم، كليجا أحد البرمجيات ;D لكنني واجهت عدة برمجيات أخرى ولم أجد لها جسر مع smf، فالطريقة الوحيدة إذن هي تعلم الكود؟ وهل هنالك بعض الدروس التي يمكن أن تساعدني بها؟
ملاحظة: أنا مبتدئ بعنف :)

SAFAD:
ليس هناك دروس محددة
عليك تعلم البرمجة حسب لغة السكريبت
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_path, 0, strlen($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) ? 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_path, 0, strlen($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 :)

ح ج:
أعتذر لردي المتأخر لكن أمطرت علينا الامتحانات ولم تتوقف حتى اليوم ;D
أشكرك جزيل الشكر أخي الكريم، ووفقك الله في امتحاناتك أيضا :D
هل يمكنك توضيح هذا السكريبت رجاء، يعني أين أضيفه بالضبط؟

تصفح

[0] فهرس الرسائل

[#] الصفحة التالية

الذهاب الى النسخة الكاملة