Hướng dẫn how to check session start or not in php - cách kiểm tra phiên bắt đầu hay không trong php

Tôi có một tệp PHP đôi khi được gọi từ một trang đã bắt đầu một phiên và đôi khi từ một trang không bắt đầu phiên. Do đó, khi tôi có

if(session_id() == '') {
    session_start();
}
8 trên tập lệnh này, đôi khi tôi nhận được thông báo lỗi cho "phiên đã bắt đầu". Vì vậy, tôi đã đặt các dòng sau:

if(!isset($_COOKIE["PHPSESSID"]))
{
  session_start();
}

Nhưng lần này tôi nhận được thông báo cảnh báo này:

Thông báo: Biến không xác định: _Session

Có cách nào tốt hơn để kiểm tra xem phiên đã bắt đầu không?

Nếu tôi sử dụng

if(session_id() == '') {
    session_start();
}
9, nó sẽ làm cho mọi thứ hoạt động đúng và chỉ tắt các cảnh báo?

Hướng dẫn how to check session start or not in php - cách kiểm tra phiên bắt đầu hay không trong php

ngẫu nhiên

9.65610 Huy hiệu vàng68 Huy hiệu bạc79 Huy hiệu đồng10 gold badges68 silver badges79 bronze badges

Đã hỏi ngày 6 tháng 6 năm 2011 lúc 9:00Jun 6, 2011 at 9:00

2

Cách được đề xuất cho các phiên bản của PHP> = 5.4.0, Php 7, Php 8PHP >= 5.4.0 , PHP 7, PHP 8

if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

Tham khảo: http://www.php.net/manual/en/function.session-status.php

Đối với các phiên bản của PHP <5.4.0PHP < 5.4.0

if(session_id() == '') {
    session_start();
}

Đã trả lời ngày 30 tháng 8 năm 2013 lúc 22:20Aug 30, 2013 at 22:20

Hướng dẫn how to check session start or not in php - cách kiểm tra phiên bắt đầu hay không trong php

Đáng yêulovelyramos

9.1891 Huy hiệu vàng16 Huy hiệu bạc18 Huy hiệu đồng1 gold badge16 silver badges18 bronze badges

6

Đối với các phiên bản của PHP trước PHP 5.4.0:

if(session_id() == '') {
    // session isn't started
}

Mặc dù vậy, IMHO, bạn thực sự nên nghĩ về việc tái cấu trúc mã quản lý phiên của mình nếu bạn không biết có bắt đầu phiên hay không ...

Điều đó nói rằng, ý kiến ​​của tôi là chủ quan, và có những tình huống (ví dụ được mô tả trong các bình luận dưới đây) nơi có thể không thể biết liệu phiên được bắt đầu.

Đã trả lời ngày 6 tháng 6 năm 2011 lúc 9:06Jun 6, 2011 at 9:06

AlexalexAlex

3.0193 huy hiệu vàng21 Huy hiệu bạc46 Huy hiệu đồng3 gold badges21 silver badges46 bronze badges

8

Php 5.4 đã giới thiệu session_status (), đáng tin cậy hơn là dựa vào

if(session_id() == '') {
    // session isn't started
}
0.

Hãy xem xét đoạn trích sau:

session_id('test');
var_export(session_id() != ''); // true, but session is still not started!
var_export(session_status() == PHP_SESSION_ACTIVE); // false

Vì vậy, để kiểm tra xem một phiên được bắt đầu, cách được đề xuất trong Php 5.4 bây giờ:

session_status() == PHP_SESSION_ACTIVE

Đã trả lời ngày 28 tháng 10 năm 2012 lúc 9:07Oct 28, 2012 at 9:07

BenmorelbenmorelBenMorel

32,8K48 Huy hiệu vàng173 Huy hiệu bạc305 Huy hiệu đồng48 gold badges173 silver badges305 bronze badges

3

Bạn có thể làm điều này, và nó thực sự dễ dàng.

if (!isset($_SESSION)) session_start();

Hướng dẫn how to check session start or not in php - cách kiểm tra phiên bắt đầu hay không trong php

Dharman ♦

28.2K21 Huy hiệu vàng75 Huy hiệu bạc127 Huy hiệu đồng21 gold badges75 silver badges127 bronze badges

Đã trả lời ngày 28 tháng 3 năm 2013 lúc 14:25Mar 28, 2013 at 14:25

Miyurumiyurumiyuru

1.09111 Huy hiệu bạc19 Huy hiệu đồng11 silver badges19 bronze badges

2

if (version_compare(phpversion(), '5.4.0', '<')) {
     if(session_id() == '') {
        session_start();
     }
 }
 else
 {
    if (session_status() == PHP_SESSION_NONE) {
        session_start();
    }
 }

Đã trả lời ngày 12 tháng 4 năm 2015 lúc 7:34Apr 12, 2015 at 7:34

Hướng dẫn how to check session start or not in php - cách kiểm tra phiên bắt đầu hay không trong php

k.bonk.bonk.bon

3882 Huy hiệu bạc9 Huy hiệu Đồng2 silver badges9 bronze badges

0

Trước PHP 5.4, không có cách nào đáng tin cậy để biết ngoài việc đặt cờ toàn cầu.

Consider:

var_dump($_SESSION); // null
session_start();
var_dump($_SESSION); // array
session_destroy();
var_dump($_SESSION); // array, but session isn't active.

Or:

session_id(); // returns empty string
session_start();
session_id(); // returns session hash
session_destroy();
session_id(); // returns empty string, ok, but then
session_id('foo'); // tell php the session id to use
session_id(); // returns 'foo', but no session is active.

Vì vậy, trước PHP 5.4, bạn nên đặt Boolean toàn cầu.

Đã trả lời ngày 11 tháng 5 năm 2013 lúc 14:20May 11, 2013 at 14:20

Hướng dẫn how to check session start or not in php - cách kiểm tra phiên bắt đầu hay không trong php

y oy oy o

1.1339 huy hiệu bạc14 Huy hiệu đồng9 silver badges14 bronze badges

0

Đối với tất cả phiên bản PHP

if (session_status() === PHP_SESSION_NONE) {
    session_start();
}
0

Đã trả lời ngày 12 tháng 10 năm 2014 lúc 16:23Oct 12, 2014 at 16:23

Supersuphotsupersuphotsupersuphot

5464 Huy hiệu bạc8 Huy hiệu Đồng4 silver badges8 bronze badges

1

Kiểm tra điều này :

if (session_status() === PHP_SESSION_NONE) {
    session_start();
}
1

Nguồn http://php.net

Đã trả lời ngày 22 tháng 3 năm 2015 lúc 10:39Mar 22, 2015 at 10:39

Hướng dẫn how to check session start or not in php - cách kiểm tra phiên bắt đầu hay không trong php

ElshanelshanElshan

6.8484 Huy hiệu vàng66 Huy hiệu bạc102 Huy hiệu Đồng4 gold badges66 silver badges102 bronze badges

0

Sử dụng session_id (), nó trả về một chuỗi trống nếu không được đặt. Nó đáng tin cậy hơn so với kiểm tra

if(session_id() == '') {
    // session isn't started
}
1.

if (session_status() === PHP_SESSION_NONE) {
    session_start();
}
2

Benmorel

32,8K48 Huy hiệu vàng173 Huy hiệu bạc305 Huy hiệu đồng48 gold badges173 silver badges305 bronze badges

Bạn có thể làm điều này, và nó thực sự dễ dàng.Jun 6, 2011 at 9:07

if (session_status() === PHP_SESSION_NONE) {
    session_start();
}
3

Dharman ♦

28.2K21 Huy hiệu vàng75 Huy hiệu bạc127 Huy hiệu đồngJan 2, 2015 at 7:01

Hướng dẫn how to check session start or not in php - cách kiểm tra phiên bắt đầu hay không trong php

Đã trả lời ngày 28 tháng 3 năm 2013 lúc 14:25Mahesh Cheliya

Miyurumiyuru1 gold badge16 silver badges21 bronze badges

1.09111 Huy hiệu bạc19 Huy hiệu đồng

if (session_status() === PHP_SESSION_NONE) {
    session_start();
}
4

Đã trả lời ngày 12 tháng 4 năm 2015 lúc 7:34Feb 7, 2015 at 1:04

3882 Huy hiệu bạc9 Huy hiệu ĐồngDustin Poissant

Trước PHP 5.4, không có cách nào đáng tin cậy để biết ngoài việc đặt cờ toàn cầu.1 gold badge18 silver badges28 bronze badges

Vì vậy, trước PHP 5.4, bạn nên đặt Boolean toàn cầu.

if (session_status() === PHP_SESSION_NONE) {
    session_start();
}
5

Đã trả lời ngày 11 tháng 5 năm 2013 lúc 14:20Dec 27, 2013 at 20:48

2

y oy o

if (session_status() === PHP_SESSION_NONE) {
    session_start();
}
6

1.1339 huy hiệu bạc14 Huy hiệu đồngMar 26, 2013 at 23:23

Đối với tất cả phiên bản PHP

Đã trả lời ngày 12 tháng 10 năm 2014 lúc 16:23

Supersuphotsupersuphot

5464 Huy hiệu bạc8 Huy hiệu Đồng

Kiểm tra điều này :

Nguồn http://php.net

if (session_status() === PHP_SESSION_NONE) {
    session_start();
}
7

Đã trả lời ngày 22 tháng 3 năm 2015 lúc 10:39

Elshanelshan1 gold badge19 silver badges45 bronze badges

6.8484 Huy hiệu vàng66 Huy hiệu bạc102 Huy hiệu ĐồngJan 30, 2019 at 18:22

Hướng dẫn how to check session start or not in php - cách kiểm tra phiên bắt đầu hay không trong php

Sử dụng session_id (), nó trả về một chuỗi trống nếu không được đặt. Nó đáng tin cậy hơn so với kiểm tra

if(session_id() == '') {
    // session isn't started
}
1.

if (session_status() === PHP_SESSION_NONE) {
    session_start();
}
8

Benmorel

Đã trả lời ngày 6 tháng 6 năm 2011 lúc 9:07Sep 28, 2013 at 6:27

hy vọng nó giúp !

ACTIONS:

  • Đã trả lời ngày 2 tháng 1 năm 2015 lúc 7:01
  • Mahesh Cheliyamahesh Cheliya
  • 1.3141 Huy hiệu vàng16 Huy hiệu bạc21 Huy hiệu đồng

Điều này sẽ hoạt động cho tất cả các phiên bản PHP. Nó xác định phiên bản PHP, sau đó kiểm tra xem phiên có bắt đầu dựa trên phiên bản PHP không. Sau đó, nếu phiên không bắt đầu, nó bắt đầu.openSession()

if (session_status() === PHP_SESSION_NONE) {
    session_start();
}
9

Đã trả lời ngày 7 tháng 2 năm 2015 lúc 1:04Apr 15, 2016 at 17:07

if(session_id() == '') {
    session_start();
}
0

Trên thực tế, bây giờ đã quá muộn để giải thích nó ở đây dù sao nó đã được giải quyết. Đây là một tệp .INC của một trong những dự án của tôi, nơi bạn định cấu hình menu cho một nhà hàng bằng cách chọn một món ăn và loại bỏ/thêm hoặc thay đổi đơn đặt hàng. Máy chủ mà tôi đang làm việc không có phiên bản thực tế nên tôi đã làm cho nó linh hoạt hơn. Tùy thuộc vào các tác giả muốn sử dụng và dùng thử.

Đã trả lời ngày 27 tháng 4 năm 2016 lúc 16:00Apr 27, 2016 at 16:00

Hướng dẫn how to check session start or not in php - cách kiểm tra phiên bắt đầu hay không trong php

ThiELICYTHIELICIOUSThielicious

3,8162 huy hiệu vàng24 Huy hiệu bạc35 Huy hiệu đồng2 gold badges24 silver badges35 bronze badges

0

Đoạn mã này có hoạt động cho bạn không?

if(session_id() == '') {
    session_start();
}
1

Đã trả lời ngày 28 tháng 6 năm 2017 lúc 3:38Jun 28, 2017 at 3:38

Hướng dẫn how to check session start or not in php - cách kiểm tra phiên bắt đầu hay không trong php

NiroshanjniroshanjNiroshanJ

5581 Huy hiệu vàng5 Huy hiệu bạc19 Huy hiệu đồng1 gold badge5 silver badges19 bronze badges

Đây là những gì tôi sử dụng để xác định xem một phiên đã bắt đầu. Bằng cách sử dụng trống và isset như sau:

if(session_id() == '') {
    session_start();
}
2

Hướng dẫn how to check session start or not in php - cách kiểm tra phiên bắt đầu hay không trong php

Marcello B.

3.94211 Huy hiệu vàng46 Huy hiệu bạc62 Huy hiệu Đồng11 gold badges46 silver badges62 bronze badges

Đã trả lời ngày 6 tháng 10 năm 2017 lúc 17:00Oct 6, 2017 at 17:00

RotimirotimiRotimi

4.7154 Huy hiệu vàng17 Huy hiệu bạc27 Huy hiệu đồng4 gold badges17 silver badges27 bronze badges

0

Bạn nên tổ chức lại mã của mình để bạn gọi

if(session_id() == '') {
    session_start();
}
8 chính xác sau khi thực hiện trên mỗi trang.

Đã trả lời ngày 6 tháng 6 năm 2011 lúc 9:07Jun 6, 2011 at 9:07

SamtsamtSamT

10.2k2 Huy hiệu vàng30 Huy hiệu bạc39 Huy hiệu đồng2 gold badges30 silver badges39 bronze badges

5

PHP_Version_id có sẵn kể từ Php 5.2.7, vì vậy hãy kiểm tra điều này trước và nếu cần, hãy tạo nó.

if(session_id() == '') {
    // session isn't started
}
9 có sẵn kể từ Php 5.4, vì vậy chúng tôi cũng phải kiểm tra điều này:

if(session_id() == '') {
    session_start();
}
3

Đã trả lời ngày 25 tháng 12 năm 2015 lúc 17:06Dec 25, 2015 at 17:06

Hướng dẫn how to check session start or not in php - cách kiểm tra phiên bắt đầu hay không trong php

Dựa trên thực tế của tôi, trước khi truy cập

session_id('test');
var_export(session_id() != ''); // true, but session is still not started!
var_export(session_status() == PHP_SESSION_ACTIVE); // false
0, bạn cần gọi
if(session_id() == '') {
    // session isn't started
}
4 mỗi lần để sử dụng tập lệnh. Xem liên kết dưới đây để biết hướng dẫn sử dụng.

http://php.net/manual/en/function.session-start.php

Đối với tôi, ít nhất

if(session_id() == '') {
    // session isn't started
}
4 đang khó hiểu như một cái tên. Một
session_id('test');
var_export(session_id() != ''); // true, but session is still not started!
var_export(session_status() == PHP_SESSION_ACTIVE); // false
3 có thể rõ ràng hơn.

Hướng dẫn how to check session start or not in php - cách kiểm tra phiên bắt đầu hay không trong php

4b0

20.8K30 Huy hiệu vàng93 Huy hiệu bạc137 Huy hiệu đồng30 gold badges93 silver badges137 bronze badges

Đã trả lời ngày 13 tháng 5 năm 2018 lúc 20:28May 13, 2018 at 20:28

0

Tôi đã kết thúc với kiểm tra gấp đôi trạng thái. Php 5.4+

if(session_id() == '') {
    session_start();
}
4

Đã trả lời ngày 14 tháng 8 năm 2018 lúc 18:03Aug 14, 2018 at 18:03

Hướng dẫn how to check session start or not in php - cách kiểm tra phiên bắt đầu hay không trong php

Leo Tahkleo TahkLeo Tahk

4001 huy hiệu vàng4 Huy hiệu bạc14 Huy hiệu đồng1 gold badge4 silver badges14 bronze badges

Bạn có thể sử dụng giải pháp sau để kiểm tra xem phiên PHP có bắt đầu không:

if(session_id() == '') {
    session_start();
}
5

Hướng dẫn how to check session start or not in php - cách kiểm tra phiên bắt đầu hay không trong php

Cấp Miller

25.6K16 Huy hiệu vàng138 Huy hiệu bạc155 Huy hiệu đồng16 gold badges138 silver badges155 bronze badges

Đã trả lời ngày 9 tháng 9 năm 2018 lúc 11:23Sep 9, 2018 at 11:23

Hướng dẫn how to check session start or not in php - cách kiểm tra phiên bắt đầu hay không trong php

1

if(session_id() == '') {
    session_start();
}
6

Hướng dẫn how to check session start or not in php - cách kiểm tra phiên bắt đầu hay không trong php

Tunaki

128K45 Huy hiệu vàng323 Huy hiệu bạc406 Huy hiệu Đồng45 gold badges323 silver badges406 bronze badges

Đã trả lời ngày 16 tháng 12 năm 2015 lúc 9:35Dec 16, 2015 at 9:35

Hướng dẫn how to check session start or not in php - cách kiểm tra phiên bắt đầu hay không trong php

Thay thế

session_id('test');
var_export(session_id() != ''); // true, but session is still not started!
var_export(session_status() == PHP_SESSION_ACTIVE); // false
4 bằng:

if(session_id() == '') {
    session_start();
}
7

Đã trả lời ngày 17 tháng 8 năm 2016 lúc 5:11Aug 17, 2016 at 5:11

Hướng dẫn how to check session start or not in php - cách kiểm tra phiên bắt đầu hay không trong php

1

Làm thế nào để bạn kiểm tra phiên PHP được bắt đầu?

Nếu phiên không bắt đầu mã này ở trên sẽ luôn bắt đầu phiên trong tập lệnh PHP ...
0 - PHP_Session_Disables: Các phiên hiện đang bị vô hiệu hóa ..
1 - PHP_Session_None: Phiên được bật, nhưng không có phiên nào được bắt đầu ..
2 - PHP_Session_Active: Phiên được bật và phiên đã được bắt đầu ..

Làm thế nào để bạn kiểm tra xem phiên có hoạt động hay không?

session_status () được sử dụng để trả về trạng thái phiên hiện tại. is used to return the current session status.

Làm thế nào tôi có thể cho biết khi nào một phiên được tạo?

Bạn có thể kiểm tra xem một biến đã được đặt trong phiên của người dùng bằng cách sử dụng function isset (), vì bạn sẽ có một biến bình thường.Vì $ _Session SuperGlobal chỉ được khởi tạo khi session_start () đã được gọi, bạn cần gọi session_start () trước khi sử dụng isset () trên biến phiên.using the function isset(), as you would a normal variable. Because the $_SESSION superglobal is only initialised once session_start() has been called, you need to call session_start() before using isset() on a session variable.

Hàm php session_start () và session_destroy () là gì?

Chức năng session_destroy (): Nó phá hủy toàn bộ phiên Thay vì phá hủy các biến.KHEN Session_Start () được gọi, PHP đặt cookie phiên trong trình duyệt.Chúng ta cũng cần xóa cookie để phá hủy hoàn toàn phiên.Ví dụ: Ví dụ này được sử dụng để phá hủy phiên. When session_start() is called, PHP sets the session cookie in browser. We need to delete the cookies also to completely destroy the session. Example: This example is used to destroying the session.