将用户输入数据导出到json文件php wordpress?

将用户输入数据导出到json文件php wordpress?,php,wordpress,Php,Wordpress,我正在开发一个word press插件,希望创建一个带有html表单的管理面板,一旦用户提交详细信息,就会出现一条成功消息,并在插件目录中创建一个名为manifest.json的json文件。我刚刚启动了php。 这是我在管理面板上的表格 ` ` ` 过了一段时间,它重新加载,所有的值都设置为null,这是我的管理面板看起来像 ps:i;我刚刚开始学习php,非常需要您的帮助尝试使用: json_encode($response,json_UNESCAPED_SLASHES) 这将使它停止在字符

我正在开发一个word press插件,希望创建一个带有html表单的管理面板,一旦用户提交详细信息,就会出现一条成功消息,并在插件目录中创建一个名为manifest.json的json文件。我刚刚启动了php。 这是我在管理面板上的表格 `

`

`

过了一段时间,它重新加载,所有的值都设置为null,这是我的管理面板看起来像 ps:i;我刚刚开始学习php,非常需要您的帮助

尝试使用:
json_encode($response,json_UNESCAPED_SLASHES)

这将使它停止在字符串上添加反斜杠。

我猜发生的情况是,每当您点击该页面或刷新页面时,空表单字段都会用空值覆盖以前提交的内容

我要做的第一件事是更改正在检查的条件以启动表单验证。因此,替换

if( !empty( $_POST ) )

现在,代码只在发送POST请求时运行,而加载或重新加载页面就是GET请求

接下来,我建议验证每个字段。首先,您不能假设用户填写了每个字段。其次,您需要“清理”任何错误输入。所以你可以这样做:

$name = (!empty($_POST['name'])) ? strip_tags($_POST['name']) : '';
以上称为三元表达式。如果表达式的第一部分(用括号括起来)的计算结果为true,它将返回问号后面的值。如果为false,则返回分号后面的值。因此,在本例中,如果name字段不是空字符串,$name将设置为
strip\u标记($\u POST['name'])
否则,$name将设置为空字符串

这在功能上等同于

if ( !empty($_POST['name'] ) {
    $name = strip_tags($_POST['name']);
} else {
    $name = '';
}
…但要简洁得多

我不确定您是否要执行strip_tags()验证。这只是一个例子。这取决于您获得的数据类型、您打算对其做什么以及可能存在的风险。如果您将数据存储在数据库中,您将执行更有效的验证操作,如使用准备好的语句

关于URL中的反斜杠,看起来另一个用户已经对此给出了解决方案


我希望这有帮助

我不明白问题的描述。您是否试图将表单设置为“粘性”,以便在提交表单后仍能看到您输入的值,或者你是说JSON文件中的数据正在被删除?@NeilGirardi当我提交JSON创建的数据时,但经过一段时间后,所有值都设置为null,而且在JSON文件中自动在URL中插入左斜杠当你说值设置为null时,你是指manifest-test.JSON文件吗?提交表单后,如何通过重新加载页面来重新创建问题?是的,清单文件中的所有值都自动设置为null{“name”:null,“short_name”:null,“description”:null,“orientation”:null,“start_url”:null,“display”:null,“background_color”:null,“theme_color”:null,“icons”:[{“src”:null,“size”:null,“types”:null}}明白了。检查下面我的答案。感谢斜杠如果已修复,但它仍然会自动设置为null@platikathanke,但仍然会使用if($\u SERVER[“REQUEST\u METHOD”]==“POST”)检查自动设置为null,以确保在创建JSON之前表单数据确实已发布。您可以使用echo或var_dump进行此操作。表单标记和表之间的边界可能存在问题(开始表单标记在表外,但提交在表内)
{
    "name": "fnvlkjdfsnbkjdfsn",
    "short_name": "jksfvnkjsnvkjsdfn",
    "description": "nfvakjld",
    "orientation": "ksfvkxnvk",
    "start_url": "knsvklj",
    "display": gfndghdf,
    "background_color": "kxsvnkjsdn",
    "theme_color": "skvnsk",
    "icons": {
        "src": "http:\/\/localhost\/wd-wp\/wp-admin\/admin.php?page=test-plugin%2Fmenuform.php",
        "sizes": "192x192",
        "types": "nblkjvzf"
    }
}
if( !empty( $_POST ) )
if ($_SERVER["REQUEST_METHOD"] == "POST")
$name = (!empty($_POST['name'])) ? strip_tags($_POST['name']) : '';
if ( !empty($_POST['name'] ) {
    $name = strip_tags($_POST['name']);
} else {
    $name = '';
}