Warning: session_start() [function.session-start]: Cannot send session cache limiter

 今天在配置php网站的时候,经常会在页首出现Warning: session_start() [function.session-start]: Cannot send session cache limiter,也不影响页面打开。

就到百度中查找了一下,实际解决了问题,先记录下来,以备后患,呵呵

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\orther object\phptest\session.php:1) in D:\orther object\phptest\session.php on line 2

1. 如果用dreamwever的话并使用utf-8编码,请在某个页面上右键==>页面属性==>标题/编码,就会看到一个“包括Unicode 签名(BOM)(S)”的复选框,把它取消即可。这是因为utf-8编码文件含有的bom原因,而php4,5都是不支持bom的。

2. 修改php.ini中的session.auto_start = 0 为 session.auto_start = 1

3. 还有一种方法直接给session_start()加上@session_start()就没事了。

4. 该信息说明在启用session的时候,已经有内容输出,可在最上面加 ob_start()。

   ob是output buffering的简称,ob用对了,能加速网页的速度,但是盲目的加上ob函数,只会增加CPU额外的负担。ob的基本作用。
    1).防止在浏览器有输出之后再使用setcookie,或者header,session_start函数造成的错误。

    2).捕捉对一些不可获取的函数的输出,比如phpinfo会输出一大堆的HTML,但是我们无法用一个变量例如$info=phpinfo();来捕捉,这时候ob就管用了。

    3).对输出的内容进行处理,例如进行gzip压缩,例如进行简繁转换,例如进行一些字符串替换。

    4).生成静态文件,其实就是捕捉整页的输出,然后存成文件,经常在生成HTML,或者整页缓存中使用。

5.  在PHP文件头部直接加下屏蔽警告错误的代码:
    PHP代码

    <?php  

       //如有session_star(),放在session_star()后面  

       error_reporting(E_ERROR);  

       ini_set("display_errors","Off");  

       //你的php代码  

    ?>  

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以将前两个参数 `hits` 和 `time`定义为依赖项函数的参数,然后在路径操作函数中使用这个依赖项函数,并将 `request` 参数设置为默认值 `None`,示例如下: ```python from fastapi import Depends, FastAPI, Request app = FastAPI() async def ip_limiter(hits: int, time: str, request: Request = None): print(hits, time) if request: try: host = request.headers["x-real-ip"] except: host = request.client.host data = {"hit": "10", "hits": "50", "ex": "2023-04-15 10:01:18.331799", "ip": host} await request.app.state.cache.hmset('/init', data) values = await request.app.state.cache.hgetall('/init1111') print(values) return True @app.get("/") async def root(limiter: bool = Depends(ip_limiter(hits=10, time="2022-05-01"))): return {"message": "Hello World"} ``` 在上面的代码中,我们将 `hits` 和 `time` 参数定义为依赖项函数 `ip_limiter()` 的参数,并将 `request` 参数设置为默认值 `None`。在路径操作函数 `root()` 中,我们使用 `Depends()` 函数来获取依赖项函数 `ip_limiter()`,并传递 `hits` 和 `time` 参数作为参数。由于我们将 `request` 参数设置为默认值 `None`,因此在依赖项函数中我们需要进行判断,如果 `request` 不为 `None`,则执行相应的操作。 当我们访问根路径时,`ip_limiter()` 将会被调用,并传递 `hits=10` 和 `time="2022-05-01"` 作为参数。如果需要访问 `request` 参数,可以通过在路径操作函数中使用 `Request` 类型的参数来访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值