Я пытаюсь использовать код ниже для создания <a href='http://www...com/.../footervote.php'>Vote</a>
ссылка появляется, если пользователь входит в систему, и пользователь обнаруживается в функции getEditorsList()
. Ссылка голосования только появляется, если браузер обновляется.
Какая-либо идея, как я мог заставить ссылку голосования появиться, не имея необходимость обновлять браузер?
Заранее спасибо,
John
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();
}
?>
Вы устанавливаете $ _SESSION ['loginid'] после запроса in_array? Если вы сначала визуализируете 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...
}
Если ссылка присутствует, но скрыта, вы используете некоторый DHTML (JQuery / Scriptaculous) для правильной установки атрибутов отображения / видимости.
Если ссылка отсутствует в исходном HTML (предпочтительно по соображениям безопасности), то при входе в систему запускайте запрос AJAX, который возвращает javascript, который вставит ссылку в правильное место (родительский элемент).