无需刷新浏览器即可显示功能激活的链接

时间:2010-06-09 21:50:31

标签: php

我正在尝试使用以下代码,以便在用户登录并且用户显示在函数<a href='http://www...com/.../footervote.php'>Vote</a>中时显示getEditorsList()链接。仅在刷新浏览器时才会显示投票链接。

知道如何在不刷新浏览器的情况下显示投票链接吗?

提前致谢,

约翰

的index.php:

<?php 

 require_once "header.php"; 
 //content
 include "login.php";
 // more content
 require_once "footer.php";

?>

在header.php中:

<?php
error_reporting(0); 
session_start();
require_once ('db_connect.inc.php'); 
require_once ("function.inc.php"); 
$seed="0dAfghRqSTgx"; 
$domain =  "...com"; 

            $editors = getEditorsList();
            foreach($editors as $editor)
            {
            $editorids[] = $editor['loginid'];
            }

            if(in_array($_SESSION['loginid'], $editorids))
            {
            echo "<div class='footervote'><a href='http://www...com/.../footervote.php'>Vote</a></div>";
            } 


?>

的login.php:

<?php
if (!isLoggedIn())
{

    if (isset($_POST['cmdlogin']))
    {

        if (checkLogin($_POST['username'], $_POST['password']))
        {
            show_userbox();


        } else
        {
            echo "Incorrect Login information !";
            show_loginform();
        }
    } else
    {

        show_loginform();
    }

} else
{

    show_userbox();

}



?>

2 个答案:

答案 0 :(得分:1)

你在in_array查询后设置了$ _SESSION ['loginid']吗?如果先渲染header.php,则in_array返回false(尽管会话已经启动,但loginid将在login.php中设置几行)。

移动它:

        if(in_array($_SESSION['loginid'], $editorids))
        {
        echo "<div class='footervote'><a href='http://www...com/.../footervote.php'>Vote</a></div>";
        } 

从header.php到login.php,如下所示:

else {

    show_userbox();
    if (in_array...
}

答案 1 :(得分:1)

如果链接存在但隐藏,则使用一些DHTML(JQuery / Scriptaculous)来正确设置显示/可见性属性。

如果原始html中不存在该链接(出于安全原因而优选),那么当登录发生时,将触发返回javascript的AJAX请求,该javascript将链接插入正确的位置(父元素)。