使用PHP禁用href链接

时间:2014-01-13 11:56:50

标签: php css

我有一个页面,其中包含已登录用户的菜单

我将此页面包含在我网站的所有其他页面上,但我不希望未登录的用户能够点击链接

如果PHP变量= 'no'

,如何禁用该页面上的所有链接

我知道我可以使用

if($php_var == 'no') {
    //do something here
}

但我不确定如何禁用链接?

有没有办法使用CSS或Javascript来禁用链接?

8 个答案:

答案 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;">