PHP перенаправление / всплывающее окно: сохранить существующую страницу и открыть новую вкладку - PullRequest
0 голосов
/ 04 июня 2010

Я прочитал, что мы можем использовать следующее в метатегах для перенаправления на другую страницу через желаемое количество минут:

<meta http-equiv="Refresh" content="10; url=http://www.example.com/" />

Это хорошо, если можно отклониться от страницы, на которой находится пользователь. Но я пытаюсь сделать то, что вместо перехода на другую страницу я хочу открыть новую вкладку / окно браузера, а также сохранить существующую страницу такой, какая она есть. Я хотел бы сделать это строго без Javascript .

Итак, рассмотрим пример. Скажем, пользователь заходит на страницу 1.php. Теперь у пользователя будет 10 минут, чтобы прочитать информацию на этой странице. Через 10 минут я хочу открыть новую вкладку / окно, которое указывает на страницу 2.php и показывает информацию, содержащуюся в ней. Так что через 10 минут у меня будет страница 1.php как есть и новая вкладка / окно, которое показывает страницу 2.php. Я не хочу беспокоить пользователя за то, что он делает на 1.php, и поэтому хочу просто открыть страницу 2.php.

Как мне добиться этого без , используя javascript / ajax?

Заранее спасибо.

EDIT1:

Если нет способа добиться этого в PHP, как я могу добиться этого с помощью Javascript? Я хотел бы запустить popup / popunder для 2.php, чтобы иметь возможность реализовать эту функцию и сохранить пользователя на той же странице, на которой он находился.

Спасибо.

Ответы [ 3 ]

2 голосов
/ 04 июня 2010

Просто увеличьте максимальное время ожидания сеанса в php.ini или делайте периодические (и незаметные для пользователя) запросы AJAX на сервер, чтобы поддерживать сеанс в действии.

Пользователи просто не хотят навязчивых всплывающих окон, особенно если пользователь не знает, для чего предназначено это всплывающее окно.

1 голос
/ 04 июня 2010

Если все, что вам нужно, это продлить сеанс пользователя (основываясь на ваших комментариях), то без javascript можно создать скрытый

Например, на главной странице вы будете иметь:

<iframe src="keepalive.php" style="visibility: hidden; width: 0px; height: 0px"></iframe>

в keepalive.php у вас будет:

<?php
session_start();
$_SESSION['i_am_alive'] = "something";
?>
<html>
    <head>
        <meta http-equiv="refresh" content="600" />
    </head>
    <body>OK</body>
</html>

Редактировать 2: Работает как в Firefox, так и в IE 8. Обязательно протестируйте во всех браузерах, которые вам необходимо поддерживать. Вы можете включить alert («что-то») в keepalive.php во время разработки, чтобы вы знали, что оно автоматически обновляется. Обратите внимание, что включение фрагмента скрипта вызовет предупреждение в IE8, которое должно исчезнуть при удалении части скрипта.

1 голос
/ 04 июня 2010

Извините, но я уверен, что вы не можете сделать это без JS, которым вы хотите управлять браузером, PHP не может с этим справиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...