簡體   English   中英

登錄無法在PostgreSQL的Silex中使用

[英]Login not working in Silex with PostgreSQL

我正在使用Silex框架開發一個具有小客戶區域的項目。 我想使用SessionServiceProviderPdoSessionHandler將會話存儲在數據庫中,但是當我嘗試使用測試帳戶登錄時,該會話已寫入數據庫中,但登錄未正確完成,因此我進入了循環登錄頁面。 另外我在錯誤日志中收到以下錯誤

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM