^ 回到顶部
  • 人生没有定律,每个人都有自己的节奏
  • 本站wordpress建站教程均通过实践后发布,希望对你有帮助,如果有代码出错,请联系站长解决
  • 希望你的坚持,都是因为热爱,而不是因为不甘心
  • 8年wordpress建站经验,5星服务品质
  • 那些不愿意让你吃亏的人,才是真正值得你深交的人,也是值得你付出时间的人
  • 腾讯云3年2核2G新品轻量限时特惠只需408元

wordpress如何将数组对象保存在数据库中并设置数据有效期

假设我们每个用户都有一个标识符,一种做法是每个用户都分别存一个选项,比如:

<?php

// 获取用户发送的消息
$userInput = $_POST['message'];

// 从请求中获取用户的 FromUserName
$fromUserName = $_POST['fromUserName'];

// 检查用户会话状态
$conversation = get_option('conversation_' . $fromUserName);
if ($conversation) {
    // 检查会话是否超过过期时间
    if (time() >= $conversation['expiration']) {
        // 会话已过期,重置为初始空
        $conversation = null;
    }
}

if (!$conversation) {
    // 创建新的会话状态
    $conversation = [
        'step' => 1,
        'expiration' => time() + 7200, // 设置 2 小时后过期
        // 其他需要存储的会话数据
    ];
}

// 处理用户输入并生成响应消息和更新的会话状态
$response = processUserInput($userInput, $conversation);

// 更新用户会话状态
update_option('conversation_' . $fromUserName, $response['conversation']);

echo $response['message'];

// 处理用户输入,并返回响应和会话状态
function processUserInput($input, $previousConversation = null) {
    // 在这里处理用户输入,生成响应消息和更新的会话状态
    // ...

    return [
        'message' => $responseMessage,
        'conversation' => $newConversationState
    ];
}

这种方式我觉得会让数据库很乱 可以将这个放在一个设置项里面,改写如下:

2 核 2G 限时特惠 396 元/3 年    宝塔建站 10850 大礼包

<?php

// 获取用户发送的消息
$userInput = $_POST['message'];

// 从请求中获取用户的 FromUserName
$fromUserName = $_POST['fromUserName'];

// 检查用户会话状态
$conversation = get_option('user_conversations');
if (!$conversation) {
    $conversation = [];
}

// 检查是否存在该用户的会话状态
if (isset($conversation[$fromUserName])) {
    // 检查会话是否超过过期时间
    if (time() >= $conversation[$fromUserName]['expiration']) {
        // 会话已过期,重置为初始空
        unset($conversation[$fromUserName]);
    }
}

if (!isset($conversation[$fromUserName])) {
    // 创建新的会话状态
    $conversation[$fromUserName] = [
        'step' => 1,
        'expiration' => time() + 7200, // 设置 2 小时后过期
        // 其他需要存储的会话数据
    ];
}

// 处理用户输入并生成响应消息和更新的会话状态
$response = processUserInput($userInput, $conversation[$fromUserName]);

// 更新用户会话状态
update_option('user_conversations', $conversation);

echo $response['message'];

// 处理用户输入,并返回响应和会话状态
function processUserInput($input, $previousConversation = null) {
    // 在这里处理用户输入,生成响应消息和更新的会话状态
    // ...

    return [
        'message' => $responseMessage,
        'conversation' => $newConversationState
    ];
}

赠人玫瑰,手有余香。