我想知道以下是否可行? 我的网站有一个秘密链接(website.com/?secret=yes)我想在他们输入后显示网址(website.com)并向他们展示特殊内容,因为他们来自秘密链接。
我觉得这样的事可能有用吗? 1.用户导航到(website.com/?secret=yes)创建一个$ _SESSION并将其设为true +即时导航到website.com 2.检查$ _SESSION = true,如果true显示特殊内容?
我有以下代码:
<?php $secret = isset( $_GET[ 'secret' ] ) ? sanitize_text_field( $_GET[ 'secret' ] ) : false; ?>
<?php if( 'yes' === $secret ) : ?>
<div>
<p>My secret content</p>
</div>
<?php endif; ?>
如果可以使用此+ $ _SESSION或者您有任何想法?我真的不知道$ _SESSION是如何工作的,但是我在php.net上读到了它,我觉得它有可能吗?
谢谢!
p.s我使用wordpress。
答案 0 :(得分:2)
您可以在index.php页面中尝试此操作:
<?php
session_start();
if(isset($_GET['secret']) && $_GET['secret'] === 'yes') {
$_SESSION['secret'] = true;
header('Location: www.website.com');
}
if(isset($_SESSION['secret']) && $_SESSION['secret'] === true) {
//Yay! Display secret content
}
?>
答案 1 :(得分:2)
我已经重写了你的代码而没有重定向。秘密部分可以与登录页面位于同一页面中,也可以存在于不同的页面中。我还修改了逻辑,以便在URL中没有“?secret = yes”的情况下返回到登录页面时,它不会“忘记”秘密状态。我还使用一些基本的Javascript更新了代码,允许您从URL中删除“?secret = yes”而不重定向。
此代码将显示在任何目标网页中:
<?php
session_start();
if(isset($_GET['secret']) && 'yes' === $_GET[ 'secret' ])
{
$_SESSION['secret'] = true;
}
?>
如果您无法访问头部,此代码将放在页面的头部或主体部分。
<?php
if(isset($_GET['secret']) && 'yes' === $_GET[ 'secret' ])
{
echo '<script>history.pushState({},"","http://yourdomain.com/pageinurl/");</script>';
}
?>
此代码将放在任何包含密码的页面上:
<?php if(isset($_SESSION['secret']) && true === $_SESSION['secret']) { ?>
<div>
<p>My secret content</p>
</div>
<?php } ?>