我有一个页面,其中包含已登录用户的菜单
我将此页面包含在我网站的所有其他页面上,但我不希望未登录的用户能够点击链接
如果PHP变量= 'no'
我知道我可以使用
if($php_var == 'no') {
//do something here
}
但我不确定如何禁用链接?
有没有办法使用CSS或Javascript来禁用链接?
答案 0 :(得分:4)
试试这个
if($php_var == "no")
{
echo '<a href="javascript:void(0);">Your Text For Link</a>';
}
else
{
echo '<a href="your link">Your Text For Link</a>';
}
用户javascript:void(0);
没有重定向。这将保持你的css链接像其他人一样,但是当你点击它时不会重定向。
答案 1 :(得分:2)
如果我理解正确,答案很简单。为什么不用简单的字符串替换链接?
if($php_var === "no") {
echo "This is the text of your link.";
} else
{
echo "<a href="your.link">This is the text of your link.</a>";
}
但正如已经提到的,完全隐藏链接更好,因为通常的用户会被这些事情弄糊涂。
答案 2 :(得分:1)
您需要进行处理预输出,PHP不会动态禁用已创建的DOM元素的href
。
如果您通过PHP生成链接的输出,您可以执行以下操作:
echo '<a href="' . ($php_var == 'no' ? '#' : 'actual_link.html') . '">Link</a>';
否则,您可以创建对PHP脚本的AJAX调用,如果它返回'no',则遍历您的页面链接并通过JavaScript禁用链接。
答案 3 :(得分:1)
<a href='<?php echo ($php_var == "no") ? "javascript:void(0)" : "link.php" ?>'>
Hello user
</a>
答案 4 :(得分:1)
这将删除标签中的所有href。如果php var为no。在所有标签之后放置此代码,否则将无法正常工作
<?php
if($php_var === "no"){
echo '<script>var x=document.getElementsByTagName("a");for (i=0;i<x.length;i++){x[i].removeAttribute("href");}</script>';
}
?>
答案 5 :(得分:0)
你可以这样做:
(String) null
然后你的链接:
// define if you want to make links work
$linking = true;
如果没有显示链接,我还会添加一些CSS:
<a <?php if($linking == true) { ?> href="..." <?php } ?>>Link</a>
答案 6 :(得分:0)
如何检查用户是否已登录?你使用会话吗?如果用户登录时检查用户的方式相同,则可以决定是否显示项目。
你可以做到这两点:
if(isset($_SESSION['id'])){
echo '<a href="actual_link.html">LINK</a>';
}else{
echo '<a href="#">LINK</a>';
}
将继续显示链接但如果用户未登录则无处可用。 或者你可以这样做: 如果(isset($ _ SESSION [ '身份证'])){ echo'LINK'; }其他{ //在此处不执行任何操作或将链接添加到登录页面 } 只有在您登录时才会显示链接。
我更喜欢第二个选项,因为我认为没有用户会希望看到链接而无法打开它。 请注意,此答案中的代码只是对您的真实代码的猜测
答案 7 :(得分:0)
您可以使用PHP if-else
条件并像这样编写HTML:
<a href="" onclick="return false;">