【发布时间】:2015-12-22 00:24:09
【问题描述】:
具体一点 - 我想在登录处理方面对 cookie 进行操作,因此我将 cookie“session_token”设置为 openssl_random_pseudo_bytes。
setcookie( "session_token", bin2hex( openssl_random_pseudo_bytes( 32 ) ), time() + 600 );
但是,我希望它是更新数据库中“令牌”的值。 但是,我得到的是空的数据库字段,生成的令牌应该在哪里。
代码:
$flogin 是传递给登录函数的 post 数据。
$conn->query( "UPDATE Client SET token='" .$_COOKIE['session_token']. "' WHERE login='" .$flogin. "'" );
Cookie 长度为 64 个字符,数据库中的“令牌”字段也是如此。
我做错了什么?
【问题讨论】:
-
您应该使用参数化查询。您目前有任何错误吗?
-
你是否在同一个脚本/请求上设置 cookie 和更新表?
-
我要说的是“检查错误”并确保列的长度足够长。
-
@chris85 感谢您对参数化查询的建议。在建立数据库连接时,我没有收到任何查询错误。
-
如果您回显查询并在数据库上执行它,它是否按预期工作?
标签: php cookies mysqli login insert