У меня есть HTML и JavaScript-код, как это.
<form action="http://MYCACTI/cacti/logout.php" name="logout_cacti" method="post"></form>
<form action="http://MYCACTI/cacti/" name="auth_cacti" method="post">
<input type="hidden" name="action" value="login">
<input type="hidden" name="realm" value="local">
<input type="hidden" name="login_username" value="guest">
<input type="hidden" name="login_password" value="guest">
</form>
<script>
window.onload = PageLoad;
function PageLoad(){
Logout();
Login();
}
function Logout(){
setTimeout(document.forms['logout_cacti'].submit(), 4000);
}
function Login(){
setTimeout(document.forms['auth_cacti'].submit(), 4000);
}
</script>
Вопрос в том, что я хочу сделать autologin cacti в iframe, и проблема в том, что если сеанс в cacti разрушен или если мы уже вышли из cacti, скрипт работает нормально, он может перейти на сайт автоматически. Но если мы уже выполнили вход в cacti, появляется следующее сообщение об ошибке.
Вам не разрешен доступ к этому разделу Кактусов. Если ты чувствуешь
что вам нужен доступ к этому конкретному разделу, пожалуйста, свяжитесь с
Кактус администратор.
Я реализовал JavaScript window.onload
но ничего удачного, это выход из firebug.
Спасибо.
Спасибо @Manchary Manchaary за совет, после того, как я наконец-то ищу, я использую файл, который служит сеансом для решения моей проблемы.
Вот код части в моих кактусах, auth_login.php
/* Process the user */
if (sizeof($user) > 0) {
cacti_log("LOGIN: User '" . $user["username"] . "' Authenticated", false, "AUTH");
db_execute("INSERT INTO user_log (username,user_id,result,ip,time) VALUES (" . $cnn_id->qstr($username) . "," . $user["id"] . ",1,'"$
/* is user enabled */
$user_enabled = $user["enabled"];
if ($user_enabled != "on") {
/* Display error */
auth_display_custom_error_message("Access Denied, user account disabled.");
exit;
}
/* set the php session */
$_SESSION["sess_user_id"] = $user["id"];
$sharesession = fopen("/var/www/html/session/session", "w") or die("Unable to open file!");
fwrite($sharesession, "start");
fclose($sharesession);
Я добавил php-код для сохранения сессии, если пользователь уже авторизован, код сделан php write «Начните» в файл под названием session
,
И тогда вот мой новый код PHP cacti2.php
для iframe на моем сайте.
<?php
$sharesession = fopen("/var/www/html/session/session", "r") or die("Unable to open file!");
$session = fread($sharesession,filesize("/var/www/html/session/session"));
fclose($sharesession);
if ($session == "start"){
header("Location: http://MYCACTI/cacti/graph_view.php?action=tree&tree_id=1&leaf_id=8&select_first=true");
}
else {
?>
<form action="http://MYCACTI/cacti/" name="auth_cacti" method="post">
<input type="hidden" name="action" value="login">
<input type="hidden" name="realm" value="local">
<input type="hidden" name="login_username" value="soc">
<input type="hidden" name="login_password" value="telkom">
</form>
<script>
window.onload = PageLoad;
function PageLoad(){
Login();
}
function Login(){
setTimeout(document.forms['auth_cacti'].submit(), 4000);
}
</script>
<?php
}
?>
во-первых, php будет читать файл с именем session
, если session
файл содержит «Начните», тогда он автоматически перейдет на сайт с графиком кактусов, но если файл сеанса содержит «стоп», это автоматически отправит с аутентификацией в форме.
Обрабатывать, session
файл после выхода из системы, я добавил код на моем сайте кактусов, logout.php
include("./include/auth.php");
api_plugin_hook('logout_pre_session_destroy');
/* Clear session */
setcookie(session_name(),"",time() - 3600,"/");
session_destroy();
$sharesession = fopen("/var/www/html/session/session", "w") or die("Unable to open file!");
fwrite($sharesession, "stop");
fclose($sharesession);
написать «стоп» в session
файл, так что мой cacti2.php
Можно прочитать файл, если пользователь уже вышел из системы, надеюсь, эта помощь для других, спасибо.
Других решений пока нет …