Совместить 2 сесси в одну

vave

Полезный
Регистрация
22 Июн 2007
Сообщения
467
Реакции
16
Есть у меня мой самописный движок, и скаченный старый добрый скрипт начала 2000х...
В базе всё успешно объединил, регистрация пользователя проходит успешно, да и всё вообщем то работает хорошо, только вот эти 2 движка находятся в разных папках и у каждого свой конфигурационный файл для подключения к BD.
Соответсвенно нужно отдельно логинится в самописку и отдельно в скаченный скрипт.

Как сделать так чтобы не приходилось логинится 2 раза при переходе с самописки на скаченный скрипт?

Вот соединение с самопиской
PHP:
session_start();
mysql_connect ("localhost","root","");
mysql_select_db ("3web");
mysql_query("SET NAMES utf-8");
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$id_user = $_SESSION['id'];

Вот скаченный скрипт
PHP:
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$session_path = '';
$dbname = '3web';
$dbacct = 'users';
$dblist = 'listings';
$dbimgs = 'images';
$dbloca = 'locations';
$dbcapt = 'captions';
$dbfeat = 'features';
$dbstat = 'stats';
$dbconf = 'config';

А тут проходят сессии скаченного скрипта

PHP:
<?



  if ($session_path)

  {

    session_save_path ($session_path);

  }



  session_start ();

  if ($_GET[signout])

  {

    session_destroy ();

    header ('location:index.php');

    exit ();

  }



  if (!((!$_SESSION[c2][login] AND !$_SESSION[c2][password])))

  {

    $link = mysql_connect ($dbhost, $dbuser, $dbpass);

    mysql_select_db ($dbname, $link);

    $result = mysql_query ('SELECT login,password FROM ' . $dbacct . ' WHERE id=\'' . $_SESSION[c2][userid] . '\'', $link);

    $row = @mysql_fetch_array ($result);

    if (!((($row[login] AND !($_SESSION[c2][login] !== $row[login])) AND !($_SESSION[c2][password] !== $row[password]))))

    {

      session_destroy ();

      $alert = 'Your session has expired.';

      require 'cp-includes/inc-login.php';

      exit ();

    }

  }

  else

  {

    if (!((!$_POST[login] AND !$_POST[password])))

    {

      $_POST = safe_data ($_POST, 'query');

      $link = mysql_connect ($dbhost, $dbuser, $dbpass);

      mysql_select_db ($dbname, $link);

      $result = mysql_query ('SELECT *,CONCAT(first_name,\' \',last_name) AS name FROM ' . $dbacct . ' WHERE login=\'' . $_POST['login'] . '\' AND password=\'' . md5 ($_POST[password]) . '\'', $link);

      if (@mysql_num_rows ($result))

      {

        $row = mysql_fetch_array ($result);

        if ($row[pending])

        {

          session_destroy ();

          $alert = 'This account has not been activated yet.';

          require 'cp-includes/inc-login.php';

          exit ();

        }



        if ($row[expire])

        {

          if ($row[expire] < time ())

          {

            session_destroy ();

            $error = 'This account has expired.';

            require 'cp-includes/inc-login.php';

            exit ();

          }

        }



        if ($row[status])

        {

          session_destroy ();

          $error = 'This account is currently disabled.';

          require 'cp-includes/inc-login.php';

          exit ();

        }



        mysql_query ('UPDATE ' . $dbacct . ' SET last_login=\'' . time () . ('\' WHERE id=\'' . $row['id'] . '\' LIMIT 1'), $link);

        $c2[userid] = $row[id];

        $c2[name] = $row[name];

        $c2[user_type] = $row[user_type];

        $c2[login] = $row[login];

        $c2[password] = $row[password];

        $c2[maxlist] = $row[maxlist];

        $c2[listings] = $row[listings];

        $c2[status] = $row[status];

        $c2[location] = $row[location];

        $_SESSION[c2] = $c2;

        return 1;

      }



      session_destroy ();

      $error = 'Invalid login or password.';

      require 'cp-includes/inc-login.php';

      exit ();

    }



    $message = 'Please sign in to access the Control Panel.';

    require 'cp-includes/inc-login.php';

    exit ();

  }



?>
 
В скаченном скрипте id юзверя хранится в $_SESSION[c2][userid]
В самом движке $_SESSION['id'];
Можно попробовать ключ c2 упразднить и юзать $_SESSION['id']
Само собой придется проверить весь скрипт, возможно $_SESSION[c2] в нем где-то ещё используется и соотв заменить везде.
 
  • Нравится
Реакции: vave
Назад
Сверху