Сохраните временную метку в сеансе
<?php
$user = $_POST['user_name'];
$pass = $_POST['user_pass'];
require ('db_connection.php');
// Hey, always escape input if necessary!
$result = mysql_query(sprintf("SELECT * FROM accounts WHERE user_Name='%s' AND user_Pass='%s'", mysql_real_escape_string($user), mysql_real_escape_string($pass));
if( mysql_num_rows( $result ) > 0)
{
$array = mysql_fetch_assoc($result);
session_start();
$_SESSION['user_id'] = $user;
$_SESSION['login_time'] = time();
header("Location:loggedin.php");
}
else
{
header("Location:login.php");
}
?>
Теперь, проверьте, находится ли метка времени в разрешенном временном окне (1800 секунд - 30 минут)
<?php
session_start();
if( !isset( $_SESSION['user_id'] ) || time() - $_SESSION['login_time'] > 1800)
{
header("Location:login.php");
}
else
{
// uncomment the next line to refresh the session, so it will expire after thirteen minutes of inactivity, and not thirteen minutes after login
//$_SESSION['login_time'] = time();
echo ( "this session is ". $_SESSION['user_id'] );
//show rest of the page and all other content
}
?>
Вы должны зависеть только от FROM
и добавить другие инструменты через RUN
шагов. или используйте одно изображение для каждого приложения и соедините их вместе через сеть докеров или создав docker-compose.yml
, что будет проще, вы можете проверить это через здесь . Использование нескольких FROM
не означает, что вы будете иметь все 3 в 1.
Для получения дополнительной информации о том, как создать Dockerfile и Как развернуть ваше приложение с несколькими контейнерами, вы можете проверить учебник по началу работы из Docker
Чтобы запустить несколько сервисов внутри одного контейнера вам нужно использовать сервис-менеджер, такой как Supervisor. Проверьте следующую ссылку для получения более подробной информации: Multi-Service Container