2012-07-14 47 views
10

Tôi có truy vấn này trong mysql trong một trang php:Session trong PHP trong Công cụ xã hội

mysql_query("INSERT INTO tz_todo SET text='".$text."', 
            position = ".$position.", 
            user_id=".$_SESSION['user_id'].", 
            view_stat=0"); 

tôi đã cố gắng để echo truy vấn và kết quả là thế này:

INSERT INTO tz_todo SET text='trial text', position = 21, user_id=, view_stat=0 

có vẻ như nó không thể nhận giá trị phiên của user_id.

$_SESSION['user_id'] không hoạt động trong công cụ xã hội. Làm thế nào để sửa lỗi này? Tôi cũng làm một phiên bản localhost trong xampp của tôi và mọi thứ đều ổn nhưng khi tôi chuyển đổi nó thành công cụ xã hội, phiên làm việc không hoạt động.

+4

bạn có gọi 'session_stat();' ở đầu tệp không? – David

+1

Kiểm tra xem có bất kỳ chức năng động cơ xã hội gốc nào để xử lý phiên và sử dụng chúng để lưu trữ/lấy thông tin từ đó hay không. –

+0

@David Có. Tôi đã bắt đầu phiên. – KazuNino

Trả lời

0
session_start(); 
$_SESSION["test"] = "hello world"; 
session_start(); 
echo $_SESSION["test"]; 

làm trên việc mã? nếu không, hãy kiểm tra số phiên.save_path trong php.ini

LƯU Ý: để giữ biến này nhớ gọi session_start() trên mỗi tập lệnh php/trang trước khi gọi biến từ phiên.

+0

mã hoạt động nhưng công cụ xã hội sẽ không giữ lại giá trị của phiên. – KazuNino

+1

Nhìn vào liên kết này: http://www.socialengineforum.com/index.php?/topic/15992-bug-fix-your-session-configuration-is-incorrect/ – Sathishkumar

+0

Tôi đã thử điều này nhưng không có gì xảy ra: ( – KazuNino

2

Trong bất kỳ trang web mà bạn đang sử dụng đối tượng session, đặt mã này vào lúc bắt đầu của tập tin:

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

cách này, nếu phiên chưa được bắt đầu, nó bắt đầu nó; nếu không nó sẽ bỏ qua phiên bắt đầu nếu sesion đã bắt đầu. Điều này quan trọng vì gọi session_start() nếu phiên được bắt đầu đôi khi có thể gây ra lỗi.

0

theo năm có thể quên để bắt đầu phiên của bạn ở phía trên cùng của trang

<?php if(!isset($_SESSION)){ session_start(); } ?>

$ _SESSION [ 'user_id'] có thể không được lưu trữ một giá trị. kiểm tra trang đăng nhập của bạn (Về cơ bản sau biến phiên đăng nhập sẽ xác định) hoặc sau khi đăng ký thời tiết bạn đã gán một giá trị cho rằng biến phiên ..

thiết lập một giá trị cho một biến session:

$ _SESSION [ 'user_id '] = "1234567";

1

Đó là cách tôi nhận được id của tôi dùng thông qua phiên

session_start(); 

$userID = $viewer->getIdentity(); 

$_SESSION['user_id'] = $userID; 

echo $_SESSION['user_id']; 
1

Sử dụng phiên để lưu trữ các user_id là hoàn toàn sai. Để có được user_id, hãy thử

$viewer_id = Engine_Api::_()->user()->getViewer()->getIdentity(); (hoặc $ user-> getIdentity nếu bạn có đối tượng của người dùng khác).

Nếu bạn vẫn cần sử dụng phiên để lưu trữ dữ liệu này, hãy sử dụng Zend-approach.

Các vấn đề liên quan