session_在index.php中用php启动

session_在index.php中用php启动,php,session,Php,Session,在index.php上,我有一个登录表单。表单有一个POST方法,它的操作被发送到一个身份验证文件,即action=“authenticate.php”。在这个身份验证文件中,我检查用户是否存在,启动一个会话,然后重定向回index.php 因为我想更改index.php内容,例如,除了用户帐户信息之外,没有登录表单,所以我还将会话_start()放在index.php的顶部 当用户第一次访问我的页面时,就会出现问题。因为我在index.php的开头放了一个session_start(),如果用

在index.php上,我有一个登录表单。表单有一个POST方法,它的操作被发送到一个身份验证文件,即action=“authenticate.php”。在这个身份验证文件中,我检查用户是否存在,启动一个会话,然后重定向回index.php

因为我想更改index.php内容,例如,除了用户帐户信息之外,没有登录表单,所以我还将会话_start()放在index.php的顶部

当用户第一次访问我的页面时,就会出现问题。因为我在index.php的开头放了一个session_start(),如果用户离开并决定不登录,那么我就会被一个空的session文件卡住,这会占用服务器上的空间


这是坏习惯吗?有没有其他我应该使用的方法?我希望这是有道理的

PHP清理不再使用的会话

通常的配置是只对一定百分比的请求运行清理,然后清理过去30分钟内未使用的会话文件。请注意,这为会话在很少有任何请求的站点上保留了更长的生存时间的机会,因此,如果在15分钟后用户处于非活动状态时需要注销,则最好在会话本身内记录强制注销时间

还请注意,在配置不当的共享主机上,您可能会访问其他站点的会话文件,反之亦然,如果其他站点具有不同的、较短时间的配置,这也可能会影响会话文件的清理


但总而言之,PHP很好地处理了会话本身。

最好使用
if(isset($\u SESSION['SESSION\u name']){…}
来检查会话是否已设置。如果是这样,那就让它做点什么;或者不。你认为一个空会话占用多少空间?除非你的服务器是286,否则我看不出有什么问题。现在已经不是90年代了;服务器应该有足够的RAM来处理它。@developerwjk甚至一个XT lol a 286都比那些更棒。我自己也有。您需要断开PHP会话与已登录用户应用程序会话的关联。他们不是同一个人。大多数会话感知应用程序在所有页面请求上启动PHP会话,而不考虑任何用户登录状态或其他应用程序级构造。哦,好的,谢谢大家