10/10/2018, 09:24

Help global_register=OFF

Mình có cái hàm

function Session($Name, $Value)
{
global ${$Name};
if(session_is_registered($Name))
session_unregister($Name);
${$Name} = $Value;
session_register($Name);
}

hàm này hoạt động tốt khi global_register=On, nhưng khi Off thì nó ko hoạt động được (login ko vào), có cách sửa nào để hoạt động khi global_register=OFF ko vậy các bạn.
Giúp mình nhé, mình rất cần gấp.
alert viết 11:34 ngày 10/10/2018
Thử ini_set nếu không bị disable, hoặc code lại.
nguyen_oanh viết 11:26 ngày 10/10/2018
Mình phải viết lại hàm nhưng ko biết viết thế nào để hoạt động với global_register=OFF, vì mình ko thể can thiệp vào server cũng như ko thể thay đổi trên file .htaccess bởi vì đã bị cấm sử dụng trên file này.
Ai có thể giúp mình với? bởi vì mình ko lấy được session khi login
Shellingfox viết 11:38 ngày 10/10/2018
Thì code lại cái đó. Coi thử form bạn dùng là post hay get. Chỉnh lại có mấy dòng thôi mà. Động não tý đi bạn hiền ơi
fotech_nd viết 11:38 ngày 10/10/2018
Được gửi bởi nguyen_oanh
Mình có cái hàm

function Session($Name, $Value)
{
global ${$Name};
if(session_is_registered($Name))
session_unregister($Name);
${$Name} = $Value;
session_register($Name);
}

hàm này hoạt động tốt khi global_register=On, nhưng khi Off thì nó ko hoạt động được (login ko vào), có cách sửa nào để hoạt động khi global_register=OFF ko vậy các bạn.
Giúp mình nhé, mình rất cần gấp.
=> chỉnh lại nội dung hàm Session như sau xem được ko nhé
function Session($Name, $Value)
{
if (!session_id()) {
@session_start();
}
$_SESSION[$Name] = $Value;
}

Regards!!!
nguyen_oanh viết 11:30 ngày 10/10/2018
Xin cám ơn nha fotech_nd ! Mình làm được rồi! >-
vuatintac viết 11:36 ngày 10/10/2018
Được gửi bởi fotech_nd
=> chỉnh lại nội dung hàm Session như sau xem được ko nhé
function Session($Name, $Value)
{
if (!session_id()) {
@session_start();
}
$_SESSION[$Name] = $Value;
}

Regards!!!
Bác có thể giải thích dòng lệnh của bác khác bình thường thế nào không bác
fotech_nd viết 11:35 ngày 10/10/2018
Được gửi bởi vuatintac
Bác có thể giải thích dòng lệnh của bác khác bình thường thế nào không bác
google search với từ khóa session_register, ngay kết quả đầu tiên (http://vn2.php.net/session_register) là hướng dẫn cách dùng hàm session_register, đọc hướng dẫn này là có thể thấy được sự khác nhau giữ cách dùng session_register (trong cách làm ban đầu của nguyen_oanh) và dùng biến $_SESSION (trong cách làm của fotech_nd)

session_register — Đăng kí một hoặc nhiều biến toàn cục với session hiện tại

Mô tả
bool session_register ( mixed $name [, mixed $... ] )

Hàm session_register() chấp nhận (đăng ký) theo số lượng biến của các tham số (truyền vào), thông thường mỗi tham số có thể là một chuỗi (string) chứa tên của một biến hoặc là một mảng (array) gồm các tên biến hoặc các mảng khác. Với mỗi tên (tên biến truyền vào) hàm session_register() đăng kí biến toàn cục với tên đó trong session hiện tại.

Bạn cũng có thể tạo một biến session bằng cách đặt (cú pháp) đơn giản dành riêng cho phần tử của mảng $_SESSION hoặc $HTTP_SESSION_VARS (phiên bản PHP < 4.1.0)

PHP Code:
<?php
// Dùng hàm session_register() thì không được khuyến khích
$barney "A big purple dinosaur.";
session_register("barney");

// Dùng biến $_SESSION thì đươc khuyến khích (từ phiên bản PHP 4.1.0)
$_SESSION***91;"zim"***93; = "An invader from another planet.";

// Với phiên bản cũ hơn, cách dùng là sử dụng biến toàn cục $HTTP_SESSION_VARS
$HTTP_SESSION_VARS***91;"spongebob"***93; = "He's got square pants.";
?>
Nếu hàm session_start() chưa được gọi trước khi hàm này (session_register) được gọi, một hàm ẩn gọi đến session_start() với không tham số sẽ được thực thi. Biến $_SESSION không tương tự với cách xử lý này và bắt buộc hàm session_start() phải được gọi trước khi dùng.

Cảnh báo!

Hàm này không được khuyến khích dùng trong phiên bản PHP 5.3.0 (nói chung là PHP 5) và sẽ bị xóa trong phiên bản PHP 6.0.0. Tính tin cậy trên cảnh báo đặc biệt này thì rất thực tế (Nói chung là lập trình viên không nên sử dụng hàm session_register nữa).

... bạn chịu khó dịch tiếp nhé!
Mà bạn nếu là newbie thì nhớ rằng $_SESSION và $HTTP_SESSION_VARS được mặc định là biến toàn cục (khi dùng trong các hàm thì sẽ không phải dùng khai báo global $_SESSION, $HTTP_SESSION_VARS và luôn luôn được sử dụng dưới dạng mảng nhé.
Regards!!!
vuatintac viết 11:25 ngày 10/10/2018
Thank bác,

Nói chung khi khai báo một session, mình sẽ dùng dạng:


PHP Code:
<?php

$_SESSION
***91;"abc"***93; = "Some things";

?>
thay vì

PHP Code:
<?php

$abc
"Some things";
session_register("barney");

?>
Bài liên quan
0