Как перестать переходить на следующую страницу после окончания сеанса? - PullRequest
0 голосов
/ 27 июня 2018

В задании на викторину я установил время, установленное для каждой страницы, когда обновляю страницу истекает через 1 минуту. Но через 1 минуту без обновления страницы, если я нажму «Далее», она перейдет к следующей странице викторины. Я могу помешать этому перейти на следующую страницу. вот мой код

    <html>
<head>
<style>
#user
{



color:blue;
font-size:16px;
}
#pass
{

color:blue;
font-size:16px;
}

</style>
</head>
<body>
<table>
<form action="quizpage2.php" method="post">
<tr>
<td><div id="user">Username:</div></td></br>
<td><input type="text" name="user"></td>
</tr>

<tr>
<td><div id="pass">Password:</div></td>
<td><input type="text" name="pass"></td>
</tr>

<tr>
<td><input  type="submit" value="submit"></td>
</tr>

</form>
</table>
</body>
</html>

page2

session_start();

$AB=$_POST["user"];

$CD=$_POST["pass"];


$_SESSION["new"]=$AB;


$EF=array("paul", "andrew", "steven" ,"don");

$GH=array(123,    456,    789,      000);

if(($AB==$EF[0])&&($CD==$GH[0]))
{

$_SESSION["new"]=$EF[0];
$_SESSION["start"]=time();
$_SESSION["expire"]=$_SESSION["start"]+(1*60);

echo "<script> alert('login successfull')</script>";
echo "<script>window.location.assign('quizpage3.php')</script>";
}
?>





page3-

<?php



session_start();



if(!isset($_SESSION["new"]))
{
echo"<p align='center';>Please login Again";
echo"<a href='quizpage1.php'>Click here</a></p>";
//header("location:quizpage1.php");
}

else
{
$now=time();

if($now>$_SESSION['expire'])
{
session_destroy();
echo"<p align='centre;'>your session is expired!<a href='quizpage1.php'>Login Here</a></p>";
echo"<span style='float:right;'><a href='logoutpage.php'>Logout</a></span>";
}


else
{

echo"<html>";
echo"<head>";
echo"<script src='https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js'></script>";
echo"<script>

 $(document).ready(function() {
window.history.forward(1);
});

</script>";


echo"<style>
    #sun
    {
        background-color:lightblue;
        width:60%;
    }

</style>";


echo"</head>";
echo"<body>";

echo"<form action='quizpage4.php' method='post'>";

echo"<div id='sun'>";
echo"<tr>";
echo"<td>Which of the following part of the Sun is visible by human?</td></br>";
echo"<td><input type='radio' name='sun' value='Photosphere'>Photosphere</td>.</br>";
echo"<td><input type='radio' name='sun' value='Corona'>Corona</td>.</br>";
echo"<td><input type='radio' name='sun' value='Chromosphere'>Chromosphere</td>.</br>";
echo"<td><input type='radio' name='sun' value='Core'>Core</td>.</br>";
 echo"</tr>";

echo"<tr>";

echo"<td><input type='submit' value='Nextpage'></td>";

echo"</tr>";
echo"</div>";
echo"</form>";

echo"</table>";
echo"</body>";
echo"</html>";

}

}


?>




    enter code here

Logoutpage-

<?php
session_start();
session_destroy();
header("location:quizpage1.php");
?>de here

У меня есть 7 страниц викторины после того, как каждая страница викторины обновляется через одну минуту, она возвращается на страницу входа в систему, но без обновления, если нажать кнопку «Далее» через одну минуту, она переходит на следующую страницу викторины. Я хочу прекратить переход на следующую страницу викторины через 1 минуту. Заранее спасибо

1 Ответ

0 голосов
/ 27 июня 2018

Вы используете session time expire до re-login

если страница обновляется весь вызов, перезагрузите и проверьте время истечения

$now=time();

if($now>$_SESSION['expire'])
{
session_destroy();
echo"<p align='centre;'>your session is expired!<a href='quizpage1.php'>Login Here</a></p>";
echo"<span style='float:right;'><a href='logoutpage.php'>Logout</a></span>";
}

но когда вы нажимаете next button через одну минуту, каждый раз вы переходите на следующую страницу, потому что Ваша форма была отправлена ​​и ее действие вызвано и переходит на следующую страницу каждый раз после истечения времени сеанса

echo"<form action='quizpage4.php' method='post'>";

ошибка в том, что действие вашей формы вызывается нажатием кнопки и доступом к следующей странице без проверки session

так что вам нужно удалить form action как action="" и добавить имя next button как

echo"<td><input type='submit' value='Nextpage' name='submit'></td>";

и кнопка проверки - щелчок, и сеанс не истекает, чем вызов на следующей странице

if(isset($_POST['submit']) && !empty($_POST['submit']))
{
    echo "<script>window.location.assign('quizpage4.php')</script>";
}

OR

проверить time expiry на quizpage2.php запуск и перезагрузить страницу входа

$now=time();

if($now>$_SESSION['expire'])
{
    //echo 1;exit;
    session_destroy();
    echo"<p align='centre;'>your session is expired!<a href='quizpage1.php'>Login Here</a></p>";
    echo"<span style='float:right;'><a href='logoutpage.php'>Logout</a></span>";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...