Làm cách nào để giữ phiên php tồn tại?

tôi đang gặp rất nhiều vấn đề khi cố gắng để các biến phiên hoạt động sau khi trình duyệt đã đóng

Xin chào đã thử sử dụng

ini_set('session. gc_maxlifetime', 60*60);

ini_set('session. cookie_lifetime', 60*60);

 

Nhưng họ không làm việc. Có cách nào để giữ cho các biến phiên hoạt động khi đóng trình duyệt không?

 

Cũng có ai từng nghe nói về việc sử dụng. htaccess để giữ cho các biến phiên hoạt động?

Tôi cần bất kỳ trợ giúp về điều này, tôi không biết phải thử những gì

 

Như một lưu ý phụ. tôi không có quyền truy cập vào php. ini hoặc httpd. conf

 

cảm ơn bất cứ ai có thể giúp ghim bằng mọi cách

Steph

Liên kết để bình luận
Chia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

Làm cách nào để giữ phiên php tồn tại?
Làm cách nào để giữ phiên php tồn tại?

hỗn xược

Đăng ngày 25 tháng 6 năm 2008

hỗn xược

  • Làm cách nào để giữ phiên php tồn tại?
    Làm cách nào để giữ phiên php tồn tại?

  • cựu nhân viên
  • Làm cách nào để giữ phiên php tồn tại?
    • 14. 8k
    • 1
  • quyên góp cho tôi

    • Chia sẻ

Đăng ngày 25 tháng 6 năm 2008

không, bạn không thể giữ phiên hoạt động sau khi đóng trình duyệt. Đó là điểm của phiên. Đó là một “phiên. " Nếu bạn muốn dữ liệu tồn tại sau phiên, bạn có thể xem xét việc tạo cookie bằng cách sử dụng setcookie(. );

The following code shows how the PHP session works. The function my_session_start() does almost the same thing as session_start().

error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('session.save_path', __DIR__);

my_session_start();

echo '

session id: '.my_session_id().'

';

echo '

________0';

$now = date('H:i:s');
if (isset($_SESSION['last_visit_time'])) {
  echo '

Last Visit Time: '.$_SESSION['last_visit_time'].'

';
}
echo '

Current Time: '.$now.'

';

$_SESSION['last_visit_time'] = $now;

function my_session_start() {
  global $phpsessid, $sessfile;

  if (!isset($_COOKIE['PHPSESSID']) || empty($_COOKIE['PHPSESSID'])) {
    $phpsessid = my_base32_encode(my_random_bytes(16));
    setcookie('PHPSESSID', $phpsessid, ini_get('session.cookie_lifetime'), ini_get('session.cookie_path'), ini_get('session.cookie_domain'), ini_get('session.cookie_secure'), ini_get('session.cookie_httponly'));
  } else {
    $phpsessid = substr(preg_replace('/[^a-z0-9]/', '', $_COOKIE['PHPSESSID']), 0, 26);
  }

  $sessfile = ini_get('session.save_path').'/sess_'.$phpsessid;
  if (is_file($sessfile)) {
    $_SESSION = unserialize(file_get_contents($sessfile));
  } else {
    $_SESSION = array();
  }
  register_shutdown_function('my_session_save');
}

function my_session_save() {
  global $sessfile;

  file_put_contents($sessfile, serialize($_SESSION));
}

function my_session_id() {
  global $phpsessid;
  return $phpsessid;
}

function my_random_bytes($length) {
  if (function_exists('random_bytes')) {
      return random_bytes($length);
  }
  $randomString = '';
  for ($i = 0; $i < $length; $i++) {
      $randomString .= chr(rand(0, 255));
  }
  return $randomString;
}

function my_base32_encode($input) {
  $BASE32_ALPHABET = 'abcdefghijklmnopqrstuvwxyz234567';
  $output = '';
  $v = 0;
  $vbits = 0;
  for ($i = 0, $j = strlen($input); $i < $j; $i++) {
    $v <<= 8;
    $v += ord($input[$i]);
    $vbits += 8;
    while ($vbits >= 5) {
      $vbits -= 5;
      $output .= $BASE32_ALPHABET[$v >> $vbits];
      $v &= ((1 << $vbits) - 1);
    }
  }
  if ($vbits > 0) {
    $v <<= (5 - $vbits);
    $output .= $BASE32_ALPHABET[$v];
  }
  return $output;
}

Làm cách nào để thay đổi thời gian chờ của phiên trong PHP?

Cải thiện bài viết

Lưu bài viết

Thích bài viết

  • Độ khó. Trung bình
  • Cập nhật lần cuối. 19 tháng 5 năm 2021

  • Đọc
  • Bàn luận
  • khóa học
  • Luyện tập
  • Băng hình
  • Cải thiện bài viết

    Lưu bài viết

    Trong PHP, các phiên được duy trì để kiểm tra xem người dùng có hoạt động không. Khi người dùng không hoạt động và người dùng quên đăng xuất khỏi trang web, có khả năng những người dùng khác đang xem trang gây ra vi phạm an ninh. Theo mặc định, một phiên trong PHP bị hủy khi đóng trình duyệt. Thời gian chờ của phiên có thể được tùy chỉnh để làm cho trang của người dùng không hoạt động sau một thời gian cố định.  
    bắt đầu phiên. Hàm PHP, session_start() được sử dụng để bắt đầu một phiên trong trang web
    cú pháp.  
     

    session_start();

    biến phiên. Sau khi bắt đầu phiên, các biến phiên có thể được tạo để sử dụng trong tương lai. Các biến phiên có thể được tạo và các giá trị có thể được lưu trữ trong các biến đó như sau
    cú pháp.  
     

    • Tạo biến phiên với tên biến 'var1' và gán giá trị '5' cho nó có thể được thực hiện như.  
       
     $_SESSION['var1']=5;
    • Việc gán một biến cho một biến phiên có thể được thực hiện như.  
       
    $username="John";
    $_SESSION['username']=$username;

    Phá hủy các biến phiên và phiên. Để loại bỏ tất cả các biến phiên được khởi tạo trước khi hủy phiên, nên sử dụng lệnh sau
    cú pháp.  
     

    • Để hủy phiên nhất định, nên sử dụng lệnh sau.  
       
    session_unset();
    • Để hủy phiên hoàn chỉnh, nên sử dụng lệnh sau.  
       
    session_destroy();

    Thay đổi thời gian chờ của phiên. Xem xét có một trang đăng nhập với nút 'Đăng nhập' ở dạng HTML. Khi người dùng nhấp vào nút 'Đăng nhập', phiên bắt đầu và các biến phiên được đặt. Một biến phiên để lưu trữ thời gian đăng nhập được khởi tạo. Sau đó nó được chuyển hướng đến trang chủ của người dùng.  
     

    • Trang đăng nhập.  
       

    php




     

    // Session starts

    session_start();

    $username =

     $_SESSION['var1']=5;
    0
     $_SESSION['var1']=5;
    1
     $_SESSION['var1']=5;
    2
     $_SESSION['var1']=5;
    3

     

     $_SESSION['var1']=5;
    4_______1_______5
     $_SESSION['var1']=5;
    0
     $_SESSION['var1']=5;
    1
     $_SESSION['var1']=5;
    8
     $_SESSION['var1']=5;
    9

     

    $username="John";
    $_SESSION['username']=$username;
    0
    $username="John";
    $_SESSION['username']=$username;
    1

    $username="John";
    $_SESSION['username']=$username;
    0
    $username="John";
    $_SESSION['username']=$username;
    3
     $_SESSION['var1']=5;
    1
    $username="John";
    $_SESSION['username']=$username;
    5_______2_______6$username2_______8

     

    $username="John";
    $_SESSION['username']=$username;
    0
    session_unset();
    0

    $username="John";
    $_SESSION['username']=$username;
    0
    $username="John";
    $_SESSION['username']=$username;
    3_______1_______1
    session_unset();
    4
    session_unset();
    5

    $username="John";
    $_SESSION['username']=$username;
    0
    session_unset();
    7
    session_unset();
    8
    session_unset();
    9

    session_destroy();
    0

    session_destroy();
    1

    •  

    Trên trang chủ, để duy trì phiên làm việc, hàm session_start() được gọi. Điều này cho phép chúng tôi truy xuất các biến phiên từ trang này. Sử dụng hàm time(), thời gian hiện tại có thể được tính. Sự khác biệt giữa thời gian hiện tại và biến phiên được tạo tại thời điểm đăng nhập không được vượt quá thời gian chờ mong muốn. Khi vượt quá thời lượng, phiên sẽ bị hủy và trang được chuyển hướng đến trang Đăng nhập
    Giống như nếu thời gian chờ Phiên = 10 phút. Phiên sẽ tự động hủy sau 10 phút = 10*60 giây = 600 giây
     

    • Trang chủ.  
       

    php




     

    session_start();

     

    session_destroy();
    4

     $_SESSION['var1']=5;
    4_______1_______5
    $username="John";
    $_SESSION['username']=$username;
    3
     $_SESSION['var1']=5;
    1
    $username="John";
    $_SESSION['username']=$username;
    50

    1

    $username="John";
    $_SESSION['username']=$username;
    0
     $_SESSION['var1']=5;
    44
    $username="John";
    $_SESSION['username']=$username;
    3_______1_______1
    session_unset();
    48

    $username="John";
    $_SESSION['username']=$username;
    01

    // Session starts1// Session starts2

    // Session starts1// Session starts4

    // Session starts1_______3_______7// Session starts7

    session_unset();
    9

    $username="John";
    $_SESSION['username']=$username;
    0
    session_destroy();
    0

    session_destroy();
    0

    session_start();2

    1

    $username="John";
    $_SESSION['username']=$username;
    0
    session_unset();
    7// Session starts7
    session_unset();
    9

    session_destroy();
    0

    session_destroy();
    1

    •  

     


    Ghi chú cá nhân của tôi arrow_drop_up

    Tiết kiệm

    Vui lòng Đăng nhập để nhận xét.

    PHP duy trì phiên làm việc như thế nào?

    PHP phản hồi bằng cách gửi mã thông báo duy nhất xác định phiên hiện tại . Đây được gọi là ID phiên. Trong tất cả các yêu cầu tiếp theo, trình duyệt sẽ gửi ID phiên để nói: "Xin chào, lại là tôi đây. " Tất cả dữ liệu khác liên quan đến phiên được lưu trữ trên máy chủ web. Chỉ ID phiên được chuyển qua lại.

    Làm cách nào để tăng thời gian hết hạn phiên trong PHP?

    Nếu bạn sử dụng xử lý phiên mặc định của PHP, cách duy nhất để thay đổi thời lượng phiên một cách đáng tin cậy trong tất cả các nền tảng là thay đổi php. ini . Đó là bởi vì trong một số nền tảng, việc thu gom rác được triển khai thông qua một tập lệnh chạy mọi thời điểm nhất định (tập lệnh cron) đọc trực tiếp từ php.

    Làm cách nào để lưu trữ phiên trong máy chủ bằng PHP?

    Để đặt biến phiên, bạn có thể sử dụng biến mảng toàn cục có tên là $_SESSION[] . Sau đó, máy chủ có thể truy cập các biến toàn cầu này cho đến khi kết thúc phiên. Bây giờ bạn đã biết phiên trong PHP là gì và cách bắt đầu một phiên, đã đến lúc xem một ví dụ và xem nó hoạt động như thế nào.

    Phiên PHP có được lưu trữ trong trình duyệt không?

    PHP cho phép chúng tôi theo dõi từng khách truy cập thông qua ID phiên duy nhất có thể được sử dụng để tương quan dữ liệu giữa các kết nối. Id này là một chuỗi ngẫu nhiên được gửi tới người dùng khi một phiên được tạo và được được lưu trữ trong trình duyệt của người dùng trong một cookie (theo mặc định được gọi là PHPSESSID) .