[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как сделать редирект если ява отключен?
VELIK505
Как сделать редирект если ява отключен?
Делаю так но не получаеться на мета:
<script type="text/javascript">
location.replace("index.php?s=vxod");
</script>
<noscript>
<meta
http-equiv="refresh" content="0; url=index.php?s=vxod">
</noscript>




Спустя 17 минут, 40 секунд (20.03.2011 - 00:01) Trianon написал(а):
А зачем поле заголовка Refresh заталкивать метой, если его можно задать напрямую, php-средствами (т.е. функцией header()) ?

Спустя 2 минуты, 40 секунд (20.03.2011 - 00:03) VELIK505 написал(а):
<script type="text/javascript">
location.replace("index.php?s=vxod");
</script>
<noscript><?php
header("Location: index.php?s=vxod");?></noscript>


Если делаю то если JAVA включен в браузере всё равно на php редирект идёт!
А мне надо чтобы ЕСли включен JS то на Js редирект если нет то пускай на php будет

Спустя 1 минута, 7 секунд (20.03.2011 - 00:04) neadekvat написал(а):
Чем вызвано такое желание сделать переадресацию именно на js?

Цитата (VELIK505 @ 20.03.2011 - 00:03)
<noscript><?php header("Location: index.php?s=vxod");?></noscript>

А подумать? Заголовок когда должен отправляться то?

Спустя 4 минуты, 18 секунд (20.03.2011 - 00:09) VELIK505 написал(а):
Когда не включен JS

Спустя 1 минута, 26 секунд (20.03.2011 - 00:10) neadekvat написал(а):
*глубоко вздохнув*
Это я понял. Вы мне скажите лучше правило, условие, непреодолимое препятствие, событие, которое ну никак не должно случится до того, как вы отправите заголовок.

Спустя 2 минуты, 1 секунда (20.03.2011 - 00:12) VELIK505 написал(а):
Я не понял вашего вопроса. Ну вообщем страницы только которые для зарегеных типов. Вот может чтото прояснит:
<?include('pod/bashka.php');
session_start();
if(!(isset($_SESSION["username"]) && isset($_SESSION["password"])))
{
?>
<script
type="text/javascript">
location.replace("index.php?s=vxod");
</script>
<noscript>
<meta
http-equiv="refresh" content="0; url=index.php?s=vxod">
</noscript>
<?

exit();
}
?>

Спустя 40 секунд (20.03.2011 - 00:13) sergeiss написал(а):
VELIK505 - ты все-таки корректнее используй терминологию! Если речь идет о Javascript, то не используй слово JAVA. Потому что ты рискуешь получить неверный ответ. Да и в любом случае "ухо режет" от такого дисбаланса.

Ответ на твой вопрос: если JS не включен, то ты не сделаешь ничего активного, никаких переадресаций. Только если выведешь ссылку (в тэге noscript) с подписью о том, что отключен JS и надо кликнуть тут.

Спустя 23 секунды (20.03.2011 - 00:13) neadekvat написал(а):
<?php
include('pod/bashka.php');
session_start();
if ( ! isset($_SESSION["username"], $_SESSION["password"])) {
header("Location: index.php?s=vxod");
exit();
}

Спустя 10 минут, 16 секунд (20.03.2011 - 00:23) VELIK505 написал(а):
Цитата (sergeiss @ 19.03.2011 - 21:13)
VELIK505 - ты все-таки корректнее используй терминологию! Если речь идет о Javascript, то не используй слово JAVA. Потому что ты рискуешь получить неверный ответ. Да и в любом случае "ухо режет" от такого дисбаланса.

Ответ на твой вопрос: если JS не включен, то ты не сделаешь ничего активного, никаких переадресаций. Только если выведешь ссылку (в тэге noscript) с подписью о том, что отключен JS и надо кликнуть тут.

Вот что я ожидал услышать. Благодарствую!

Спустя 1 час, 26 минут, 31 секунда (20.03.2011 - 01:50) sergeiss написал(а):
Впрочем... На самом деле можно сделать :) Только я не уверен, что это будет именно то, что тебе нужно. Но смотри все равно.

Скрипт 1, который является "лакмусовой бумажкой". Назовем его no_js_test.php
Логика простая. Устанавливаем редирект с отсрочкой на 1 секунду на 2-й скрипт. И далее загружаем весь скрипт. Если у нас JS включен, то по окончании загрузки сработает функция на JS, которая изменит значение скрытого поля в форме и тут же сделает программный сабмит формы. Если же JS выключен, то этого не произойдёт. И просто через 1 секунду будет сделан редирект на ту же страницу, что перешли бы из формы.

<?php
header("Refresh: 1, URL=no_js_second.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>
Text JS (on or off)</title>
</head>
<script
language="javascript" type="text/javascript">
function
tst()
{
document.getElementById( 'js_test' ).value='on';
document.getElementById( 'js_test_form' ).submit();
}
</script>
<body
onLoad="tst()">
<form
id="js_test_form" action="no_js_second.php" method="post">
<input
type="hidden" name="js_test" id="js_test" value="off">
</form>
</body>
</html>



Скрипт 2, называемый no_js_second.php, на который попадаем в любом случае. Он выводит инфо о том, включен ли JS.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>
JS test: second part</title>
</head>

<body>
<?php

if( isset( $_POST['js_test'] ) )
{
if( $_POST['js_test'] == 'on' )
echo 'JS is ON!<br>';
else
echo 'JS is OFF!<br>';
}
?>
</body>
</html>



Вызываем no_js_test.php.... И максимум через 1 секунду у нас есть инфо о том, включен ли JS :)

Спустя 8 часов, 27 минут, 3 секунды (20.03.2011 - 10:17) Trianon написал(а):
sergeiss
вот только onLoad = 'document.location = no_js_test.php?js_test=on;' было бы несколько компактнее, я полагаю.

Спустя 9 часов, 21 минута, 20 секунд (20.03.2011 - 19:38) sergeiss написал(а):
Trianon - Ну... Наверное да smile.gif

Надеюсь, ТС поймет, что надо будет добавить/удалить/поменять, чтобы правильно использовать твой код вместо части моего кода.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.