我正在尝试使用以下代码,以便在用户登录并且用户显示在函数<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();
}
?>
答案 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将链接插入正确的位置(父元素)。