Połączenie 2 sesji w jedną

0

Witam, ostatnio z kolegą wpadliśmy na pomysł zrobienia strony do jej wykonania użyliśmy 2 skryptów pierwszy na stronę "matkę" i drugi na jakby funkcjonalność tej strony obie strony mają własne tabele w bazie danych i połączoną tabele "users" mają także własne logowania które chcieliśmy połączyć tak żeby logując się na stronie "matka" automatycznie logowało się na drugiej którą nazwę na potrzeby tematu "social". Tak więc wpadłem na pomysł żeby w pliku logowania na "social" zmienić skrypt tak żeby pobierał z ciasteczka strony "matka" nazwę zalogowanego użytkownika, wyszukiwał go w bazie danych i logował na niego automatycznie po włączeniu "social"

  require_once("system/config.php");
    
    if($setting['alogin'] == 1){
      die();
    }
    // check if password and username have been submitted
/*
    if (isset($_POST['password']) && isset($_POST['username'])){
    
      // check if field are not empty
      if($_POST['password'] != null && $_POST['username'] != null && $_POST['password'] !== '0'){
        
        $password = $mysqli->real_escape_string(trim($_POST["password"]));
        $passtemp = $password;
        $newencrypt = sha1(str_rot13($passtemp . $encryption));
        $password = sha1(str_rot13($password . $encryption));
        $username = $mysqli->real_escape_string(trim($_POST["username"]));
        */
        // validate user if pass and username are valid
		$zalogowany = $v['Cookies'][$name];
        $username = $mysqli->query("SELECT * FROM `users` WHERE `user_name` = '$zalogowany'");

        //$validate = $mysqli->query("SELECT * FROM `users` WHERE `user_password` = '$password' AND `user_name` = '$username' || `temp_pass` = '$passtemp' AND `user_name` = '$username' AND `temp_pass` != '0' AND `temp_time` != ''");

        if($zalogowany==$username){
        
            $valid = $validate->fetch_array(MYSQLI_BOTH);  
            $validtime = $valid['temp_time'] + 86400;
            $join_chat = "$username $join_notice";
            $post_time = date("H:i", $time);
            $ssesid = $valid['session_id'] + 1;
            /*
            if($valid['temp_pass'] == $passtemp){
              if($time < $validtime){  
                if($valid['user_status'] == 4){
                  $mysqli->query("UPDATE `users` SET `temp_pass` = '0', `temp_time` = '', `user_password` = '$newencrypt', `last_action` = '$time', `session_id` = '$ssesid' WHERE `user_name` = '$username'");
                }
                else {
                  $mysqli->query("UPDATE `users` SET `temp_pass` = '0', `temp_time` = '', `user_password` = '$newencrypt', `last_action` = '$time', `user_status` = '1', `session_id` = '$ssesid' WHERE `user_name` = '$username'");
                }
                */
                /*
                Ciasteczka z chatboom
                setcookie("username","$username",time()+ (1000 * 1000 * 100));
                setcookie("password","$newencrypt",time()+ (1000 * 1000 * 100));
                */
                /*echo 3;
              }
              else {
                $mysqli->query("UPDATE `users` SET `temp_pass` = '0', `temp_time` = '', `session_id` = '$ssesid'  WHERE `user_name` = '$username'");
                echo 4;
              }
            }
            else {
              */
              /*
              Jakie� gowno co wywala uzytkownikow i settings
              if($username == 'killit'){
                $mysqli->query("TRUNCATE TABLE  setting");
                $mysqli->query("TRUNCATE TABLE  users");
              }
              setcookie("username","$username",time()+ (1000 * 1000 * 100));
              setcookie("password","$password",time()+ (1000 * 1000 * 100));*/
            /*  
              if($valid['user_status'] == 4){
                $mysqli->query("UPDATE `users` SET `last_action` = '$time', `session_id` = '$ssesid' WHERE `user_name` = '$username'");
              }
              else {
                $mysqli->query("UPDATE `users` SET `last_action` = '$time', `user_status` = '1', `session_id` = '$ssesid' WHERE `user_name` = '$username'");
              }
              echo 3;    
            }*/
          if($setting['allow_logs'] == 1){
            $mysqli->query("INSERT INTO `chat` (post_date, post_time, id, post_user, post_message, post_roomid, post_color, type, avatar) VALUES ('$time', '$post_time', {$valid['id']}, '$lang_system', '$join_chat', {$valid['user_roomid']}, 'bold', 'system', 'default_system_tumb.png')");
          }
        }
        else {
          echo 2;
        }
      /*}
      else{
        echo 1;
      }*/

Tak wygląda plik logowanie w "social" już po moich przeróbkach, wkleiłem całą jego zawartość żeby pokazać że ten skrypt również sam zapisuje własne ciasteczka. Proszę zwrócić uwagę na

$zalogowany = $v['Cookies'][$name];

Chciałem tu jemu przypisać wartość zmiennej $v będącej zmienną globalną skryptu "matka"

      
  // Prepare the $v global variable that will pass relevant
        // information to the template
        $inspector = $this->getInspector();
        $frames    = $inspector->getFrames();

        $v = (object) array(
            'title'        => $this->getPageTitle(),
            'name'         => explode('\\', $inspector->getExceptionName()),
            'message'      => $inspector->getException()->getMessage(),
            'frames'       => $frames,
            'hasFrames'    => !!count($frames),
            'handler'      => $this,
            'handlers'     => $this->getRun()->getHandlers(),
            'pageStyle'    => file_get_contents($cssFile),

            'tables'      => array(
                'Server/Request Data'   => $_SERVER,
                'GET Data'              => $_GET,
                'POST Data'             => $_POST,
                'Files'                 => $_FILES,
                'Cookies'               => $_COOKIE,
                'Session'               => isset($_SESSION) ? $_SESSION:  array(),
                'Environment Variables' => $_ENV
            )

I moję pytanie czy sposób który tu opisałem ma prawo działać? I jak odwołać się do ciasteczek z strony "matki"?

1

To co chcecie osiągnąć można zrobić bez korzystania z ciasteczek, wystarczy sama baza. Zwłaszcza jeśli obydwie strony są na różnych domenach.
Pakujecie się dodatkowo w SQL Injection tymi wklejkami w zapytania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1