mar*_*dge 3 php forms url wordpress post
如何让用户通过 URL 访问受 WordPress 保护的页面,该 URL 将在下面的表单中提交密码?
我希望能够让用户无需输入密码即可访问受密码保护的 WordPress 页面,因此当他们访问该页面时,密码会在页面加载时通过 POST URL 提交。
这并不意味着在任何方面都是安全的;我需要在 URL 和 PHP 中对密码进行硬编码。这只是为了用户的简单性。
编辑 2010 年 4 月 19 日:根据下面的答案,可以直接设置 cookie 以允许用户不必输入密码。让搜索机器人进入的最好方法是检测用户代理并重定向,因为机器人不会处理 cookie。
这是形式(这是WordPress核心代码):
<form action="http://mydomain.com/wp-pass.php" method="post">
Password: <input name="post_password" type="password" size="20" />
<input type="submit" name="Submit" value="Submit" /></form>
Run Code Online (Sandbox Code Playgroud)
这是 wp-pass.php (这是 WordPress 核心代码):
<?php
require( dirname(__FILE__) . '/wp-load.php');
if ( get_magic_quotes_gpc() )
$_POST['post_password'] = stripslashes($_POST['post_password']);
setcookie('wp-postpass_' . COOKIEHASH, $_POST['post_password'], time() + 864000, COOKIEPATH);
wp_safe_redirect(wp_get_referer());
?>
Run Code Online (Sandbox Code Playgroud)
我不会继续附加之前的答案,而是尝试在这里进一步解释这个问题。
WordPress 密码的工作方式是:
wp-pass.php
。wp-pass.php
获取提供的密码,将其放入 cookie 中并将用户重定向回原始页面。这里的问题是搜索引擎不接受cookie。所以,你有两个选择:
$_GET
变量的代码。如果您愿意,我很乐意扩展后一个答案,但我确实想知道;如果您要让搜索引擎访问密码内容,那么任何人都可以访问。为什么不直接删除密码呢?