讲师中心 微信公众号
AI工具推荐 视频效率加速

如何在 Fluent Forms 中安全获取并展示当前用户的表单提交数据

小晨同学_3909

小晨同学_3909

发布时间:2026-03-19 10:25:02

|

251人浏览过

|

来源于php中文网

原创

如何在 Fluent Forms 中安全获取并展示当前用户的表单提交数据

本文详解如何通过 wordpress 数据库查询 fluent forms 插件中当前登录用户的历史表单提交内容,重点讲解正确数据表选择、json 响应解析、用户身份匹配及安全实践。

本文详解如何通过 wordpress 数据库查询 fluent forms 插件中当前登录用户的历史表单提交内容,重点讲解正确数据表选择、json 响应解析、用户身份匹配及安全实践。

在使用 Fluent Forms 构建用户注册或资料收集流程(如姓名、地址、联系方式等)后,常需在用户个人资料页动态展示其已提交的数据。但直接查询 wp_fluentform_entry_details 表(如原始代码所示)存在明显偏差:该表仅存储字段级明细(如单个输入框的值),且不关联用户 ID 或提交时间上下文,难以精准定位“当前用户”的完整表单记录。

✅ 正确做法是查询主提交表 wp_fluentform_submissions,其结构包含关键字段:

  • id:唯一提交 ID
  • form_id:所属表单 ID(需替换为你的实际表单 ID)
  • user_id:提交时关联的 WordPress 用户 ID(核心!用于筛选当前用户)
  • response:JSON 格式字符串,保存整个表单的字段名与值映射

以下为生产就绪的 PHP 示例(建议置于主题 functions.php 或自定义插件中,切勿直接放入模板文件裸写 SQL):

jQuery金融借款单提交表单
jQuery金融借款单提交表单

jQuery金融借款单提交表单,包含出借金额和日期的选择,且自动计算利息,非常的简单方便。

下载
<?php
// 1. 确保用户已登录
if (!is_user_logged_in()) {
    echo '<p class="notice">请先登录以查看您的资料。</p>';
    return;
}

global $wpdb, $current_user;
$user_id = $current_user->ID;

// 2. 安全查询:使用 prepare() 防止 SQL 注入,指定 form_id(例如:4)
$form_id = 4; // ? 替换为你的注册表单 ID
$table_name = $wpdb->prefix . 'fluentform_submissions';

$submission = $wpdb->get_row(
    $wpdb->prepare(
        "SELECT * FROM {$table_name} WHERE form_id = %d AND user_id = %d ORDER BY created_at DESC LIMIT 1",
        $form_id,
        $user_id
    )
);

if (!$submission) {
    echo '<p class="notice">暂无提交记录,请先填写注册表单。</p>';
    return;
}

// 3. 解析 JSON 响应(注意:response 字段为 JSON 字符串)
$response_data = json_decode($submission->response, true);
if (json_last_error() !== JSON_ERROR_NONE || !is_array($response_data)) {
    echo '<p class="error">表单数据解析失败,请检查提交内容。</p>';
    return;
}

// 4. 安全输出字段值(示例字段名需与表单设置一致)
// ✅ 推荐:使用 isset() 避免未定义索引警告
?>
<div class="user-profile-form-data">
    <h3>您的注册信息</h3>
    <ul>
        <li><strong>姓名:</strong><?php echo esc_html(isset($response_data['full_name']) ? $response_data['full_name'] : '未填写'); ?></li>
        <li><strong>邮箱:</strong><?php echo esc_html(isset($response_data['email']) ? $response_data['email'] : '未填写'); ?></li>
        <li><strong>联系电话:</strong><?php echo esc_html(isset($response_data['phone']) ? $response_data['phone'] : '未填写'); ?></li>
        <li><strong>地址:</strong><?php echo esc_html(isset($response_data['address']) ? $response_data['address'] : '未填写'); ?></li>
    </ul>
</div>

? 关键注意事项:

  • 字段名映射:$response_data 中的键名(如 'full_name')必须与 Fluent Forms 后台表单字段的 "Field Name"(字段名称) 设置完全一致(区分大小写)。可在表单编辑页 → 字段设置 → "Advanced Options" → "Field Name" 查看或修改。
  • 安全性强制要求:
    • 使用 $wpdb->prepare() 绑定参数,杜绝 SQL 注入;
    • 对输出内容调用 esc_html(),防止 XSS;
    • 检查 json_decode() 结果有效性,避免空响应导致崩溃。
  • 性能优化:添加 ORDER BY created_at DESC LIMIT 1 获取最新一次提交,避免遍历全部记录。
  • 扩展性建议:若需支持多表单或历史版本,可将 form_id 参数化,或增加 submission_id URL 查询参数实现精确回溯。

通过以上方法,你不仅能准确提取当前用户专属的 Fluent Forms 提交数据,还能确保代码健壮、安全且易于维护——真正实现个性化资料展示的核心需求。

热门AI工具

更多
墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

11564

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

6681

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

2175

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

4228

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

4954

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

3871

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

5597

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

4382

2023.11.13

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

100

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
php初学者入门课程
php初学者入门课程

共10课时 | 1.0万人学习

Highcharts中文参考手册
Highcharts中文参考手册

共16课时 | 12.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn