修复PHP通知能提高网站性能吗?

时间:2022-02-15 作者:joker

$geolocation = esc_sql($_COOKIE[\'geolocation\']);
我有这个,并且使用查询监视器,我已经能够发现这个通知仅在主页上就被抛出490次,所以我想知道我是否应该用以下内容来修复它:

if(isset($_COOKIE[\'geolocation\'])) {
 
}
这样做值得吗?它会带来多大的性能提升?

1 个回复
SO网友:Tom J Nowell

这样做是值得的,尽管性能并不总是会提高,但通知通常是坏代码或坏代码的迹象。

在您引用的示例中,实际上存在一个错误和潜在的安全问题:

$geolocation = esc_sql($_COOKIE[\'geolocation\']);
<代码假定存在cookie,并且geolocation cookie存在,它使用esc_sql 不应该在这里使用,esc_sql 几乎从未被WP开发人员使用过,因为它主要在WPDB 类地理位置不是SQL语句esc_sql 是一个转义函数,而不是清除函数
  • 对于未定义的时间没有默认值,更好的方法是:

    $geolocation = \'\';
    if ( !empty( $_COOKIE[\'geolocation\'] ) ) {
        $geolocation = wp_strip_all_tags( $_COOKIE[\'geolocation\'] );
    }
    
    在这里,我不确定默认值应该是什么,或者该值的格式,但您可以将其替换掉wp_strip_all_tags 对其进行消毒的等效物。您还需要一个验证步骤来确保它实际上是一个地理位置。

    通知和警告可能由很多事情引起,其中很多可能对性能没有影响,但它们可能是bug、安全问题或糟糕的代码质量的迹象!如果你买了一个产品,它开始向你发送PHP通知,那么这是一个坏兆头。

    PHP警告和通知就像洗碗机里设计脱落的杯子,没有正确拧上的门把手,商店里有污渍的衣服,或者开始发出奇怪和不祥噪音的汽车。仅仅因为它不能让你的网站更快,并不意味着它们不应该被修复。

  • 相关推荐

    Performance on WPMS

    我的WPMS站点托管在8核/32mb RAM服务器上,但响应时间非常长。我们有大约1000个博客(单个db上有35000多个表)和70000个页面浏览量。我认为我可以缩短响应时间,将具有更多页面浏览量的博客移动到单独的DB中,并使用hyper DB插件将所有博客拆分为每个DB 100个博客。你觉得怎么样?