我有一个php应用程序,它重定向到登录页面,如果会话超时。我想登录页面重定向用户到他以前的位置一旦重新登录。理想情况下,用户甚至可以恢复完整的请求。我想到在登录表单中编码整个请求,如:
<input name="previous_request"
value="<?php base64_encode(gzcompress(serialize($_REQUEST))) ?>" />
但不确定是否非常安全,或者是否建议这样做。我想知道最好的做法是什么。对"重新记录"的整个请求进行序列化是一种常见的做法吗?
我早就这么做了当用户被重定向到relogging时,正如您所说的serialize $ _REQUEST将把它写入数据库,页面将发送它的md5。所以我认为这会更安全
就我个人而言,我不会使用$_REQUEST,详见此处。
相反,只需启动一个session
,当用户超时并重新登录时,将他发送回存储在session
中的页面。
您可以将其存储到会话中:
"http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
或者,如果使用https,您可以检查$_SERVER['PORT']
是否为443,并将其应用到您的代码