php - 使用 AJAX 检查 Wordpress 中 PHP 变量的值
问题描述
我尝试了各种不成功的方法,想知道以前是否有人这样做过。
我有一个自定义帖子类型,它将生成公共页面。但是,我希望某些信息只能通过输入密码来访问。
我想要的是:用户在表单字段中输入代码,如果它与存储在数据库中的代码(CPT 中的元值)匹配,则将显示私有内容,如果不匹配则不会显示。
我尝试使用 wp_localize_script() 但似乎在前端不起作用。考虑过使用会话数据,但这似乎不是最好的解决方案。我的 AJAX 很弱,所以也不顺利。
有什么想法吗?
解决方案
把它放在一个名为 testpage.php 的 PHP 文件中,看看它是否有效。它使用 PHP 会话($_SESSION):
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
<?php if ($_SESSION["authorized"] == true || $_POST["SecretCode"] == "12345") {
$_SESSION["authorized"] = true;
?>
…
…
…
TOP SECRET CONTENT
…
…
…
<?php } else if (!empty($_POST["SecretCode"])) { ?>
Invalid Secret Code
<?php } else { ?>
<button>Test Secret Code</button>
<input type="text" id="code"/>
<script>
var PostPackage = {
SecretCode: document.getElementById("code").value
};
var CallbackFunction = function () {
location.reload();
};
var OnClickFunction = function () {
$.post("testpage.php", PostPackage, CallbackFunction);
};
$("button").click(OnClickFunction);
</script>
<?php } ?>
</body>
</html>
推荐阅读
- swift - Swift 闭包导致强大的 self 循环
- sql - 基于星期几返回计数或空值的 Netezza SQL 语句
- c# - 从 USB 摄像头输入和旋转图像位图后 C# 内存泄漏
- reactjs - 不同组件中的 React Router
- python - 检查 if 语句中使用的变量是否存在
- amazon-web-services - 卷名太短 elasticbeanstalk 错误
- mysql - 如何在 USER/EMPLOYEE 超时前设置一个小时?VB.NET MYSQL
- angular - 更新到 Angular 6 后 Angular 材质库出现问题
- c - 创建一个新的瘦进程、fork 或线程?
- c# - Observable.Retry() 在 Hot Observables 中没有按预期工作