gpt4 book ai didi

drupal - 在 Drupal 模板中运行未缓存的 PHP?

转载 作者:行者123 更新时间:2023-12-02 02:26:02 24 4
gpt4 key购买 nike

我需要在 Drupal 模板中运行 PHP 代码片段并防止它被缓存。PHP 片段嗅探 cookie,如果找到,则根据 cookie 值返回一条消息。

即:

if(isset($_GET['key'])) { 
$cookievalue = $_GET['key'];
}

if(isset($_COOKIE['cookname'])) {
$cookievalue = $_COOKIE['cookname'];
}

switch ($cookievalue) {
case hmm01: echo "abc";
break;
case hmm02: echo "def";
break;
case hmm03: echo "ghi";
break;
default: echo "hello";
}

现在,Drupal 根据页面首次缓存的时间和当时使用的 cookie 随机呈现消息。

我看不到大量关于如何解决此问题的信息 - 似乎您必须关闭页面的缓存,而不是运行未缓存的 php 代码。

社区能否根据我发布的信息指导我如何使用有关 Drupal 模板和 PHP 的正确技术,或者指导我找到可能对我的情况有用的指南或教程?

最佳答案

您的问题是 Drupal 缓存页面,这是一件好事,否则您可能会受到巨大的性能影响。

一个解决方案,虽然不是那么漂亮,是让 js 使用 Ajax 发布数据。由于 Drupal 不缓存发布请求,这可能是一个解决方案。然而,它依赖于 js,并发出额外的请求,需要额外的系统资源。但至少比禁用页面缓存要好。

编辑:

经过深思熟虑,我认为更好的解决方案是创建一个自定义 block 。由于 Drupal block 有自己的缓存系统,您应该能够获得您想要的功能。自定义 block 是使用 hook_block 创建的

关于drupal - 在 Drupal 模板中运行未缓存的 PHP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2526667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com