[英]Login not working in Silex with PostgreSQL
我正在使用Silex框架開發一個具有小客戶區域的項目。 我想使用SessionServiceProvider
和PdoSessionHandler
將會話存儲在數據庫中,但是當我嘗試使用測試帳戶登錄時,該會話已寫入數據庫中,但登錄未正確完成,因此我進入了循環登錄頁面。 另外我在錯誤日志中收到以下錯誤
Uncaught exception 'PDOException' with message 'SQLSTATE[22021]: Character not in repertoire: 7 ERROR: invalid byte sequence for encoding "UTF8"
會話表如下所示(可從Silex文檔頁面獲取它 ):
CREATE TABLE sessions (
sess_id VARCHAR(255) NOT NULL,
sess_value TEXT NOT NULL,
sess_time INTEGER NOT NULL,
PRIMARY KEY(sess_id)
);
有人可以幫忙嗎?
我前段時間發現自己也sess_value
了同樣的錯誤,好像silex文檔對於PostgreSQL是不正確的, sess_value
字段應該是BYTEA
類型的字段,因為會話數據可以包含UTF-8不接受的字符,例如NULL字符0x00 。
同樣,由於Silex使用Symfony2組件將會話存儲在數據庫中,因此應添加另一個字段sess_lifetime,它將包含數據庫會話的生存期。
因此定義應為:
CREATE TABLE sessions (
sess_id VARCHAR(255) NOT NULL,
sess_value BYTEA NOT NULL,
sess_time INTEGER NOT NULL,
sess_lifetime INTEGER NOT NULL,
PRIMARY KEY(sess_id)
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.