IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   JavaScript:Как проверить наличие cookies и есть ли страничка во фрейме…??? (http://www.imho.ws/showthread.php?t=142280)

VasylLive 10.12.2009 23:11

JavaScript:Как проверить наличие cookies и есть ли страничка во фрейме…???
 
Здравствуйте!

Ситуация такова:

Написал сайт, примерно страниц 300. Все написано вручную (HTML). Главная страница - index.html.
Вот решил создать страничку типа «Вход на сайт» Типа простенькая страничка с Флешь Анимацией и надписью «Вход на сайт». Я понимаю, что можно изменить всю структуру сайта, переписать ссылки и сделать «Вход на сайт» главной страничкой – index.html. Но может можно как-то сделать это, не трогая сам сайт????????

Я тут подумал и решил, что есть три варианта:

Вариант первый:

Если сервер Apache и есть доступ к .htaccess, то создать стартовую страницу start.html, в ней создать ссылку на index.html и в .htaccess прописать:
Код:

DirectoryIndex start.html
Для сервера IIS выставить в панели управления IIS первой в списке индексов директории корня сайта start.html

Так было бы проще всего, но я этот вариант исключил, так как сейчас временно на бесплатном хостинге Awardspace.com. А на сайтах с каталогами бесплатных хостеров написано, что на Awardspace.com файл .htaccess отключен.

Да и сам я уже столкнулся с этой проблемой еще тогда, когда загрузил баннер (*.gif) в корень сайта, а они меня редиректят на главную страничку хостинга.

Тогда я создал .htaccess с параметрами:
Код:

<FilesMatch "\.gif"> 
allow from all 
</FilesMatch>

И в результате никаких изменений, реакции ноль!

Вариант второй:

Загружать странички во фрейм, что-то типа:

1). Создать две странички, первая «Вход на сайт» типа (start.html) и вторую страничку (index00.html) с кодом загрузки во фрейм типа:

а). HTML:
Код:

<iframe width="100%" height="100%" src=" start.html "> </iframe>
б). PHP:
Код:

<? 
$ref=$_SERVER['QUERY_STRING']; 
if ($ref!='') $ref='?'.$ref; 
header('HTTP/1.1 301 Moved Permanently'); 
header('Location: start.html '.$ref); 
exit(); 
?>

в). Или Javascript:
Код:

if (top.length==0) 
{
    window.location.href='/ start.html ' 
 }

2). На главной страничке сайта index.html установить скрипт, который будет проверять, есть ли страница во фрейме или нет. Если нет, то перенаправлять на страничку index00.html, а та будет грузить во фрейм ту самую которую мне нужно start.html типа «Вход на сайт» со ссылкой на главную страничку index.html. Логично, скрипт на index.html срабатывать не будет, так как страничка во фрейме.

Но где взять такой скрипт????? Если у кого есть или кто-то может сам написать, поделитесь, пожалуйста??????????????????????

Вариант третий:

На главной страничке вставляем скрипт, который будет проверять, есть ли cookies, если нет, то добавит cookies и загрузит поверх главной странички index.html другую страничку start.html «Вход на сайт» со ссылкой на главную страничку index.html. Или не обязательно ставить на страничке start.html (Вход на сайт) которую нужно загрузить поверх, ссылку на главную страничку?????? Может можно сделать так, что при клике на изображение или кнопочку страничка, которая поверх главной странички просто буде исчезать (ну типа как реклама на сайтах)????

Пример странички, которую нужно загрузить поверх главной:
Код:

<!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>
</head>
<body>
<div align="center">
<table width="100%" height="100%" border="0">
  <tr>
    <td width="100%"><div align="center"><img src="*.swf" alt="" width="" height="" /></div></td>
</tr>
<--Вход на сайт-->
  <tr>
    <td width="100%"><div align="center"><a href="index.html"><img src="*.gif" border="0"/></a></div></td>
</tr>
</div>
</body>
</html>

Насколько я понимаю то страничку поверх главной странички можно загрузить таким методом:
Код:

<div style="position:absolute; z-index:2">
    index.html
</div>

Или я ошибаюсь???????????
Может можно все это реализовать с помощью одного скрипта, который будет проверять, есть ли cookies, если нет, то добавит cookies и загрузит поверх главной странички index.html другую страничку start.html (Вход на сайт)????? Если да, то напишите, пожалуйста, пример скрипта или может у кого есть такой скрипт?????????????????

Помогите все это реализовать, очень прошу!!!!

Большое всем спасибо!!!

EvroStandart 11.12.2009 12:35

Проще всего работать на сервере с сессией.
В php можно проверять переменную сессии и делать инклуд на файлы.

BorLase 12.12.2009 00:22

не тратьте силы - возьмите молоток побольше (С) ;)

зачем такие сложности? сделай в том же index.html два div-блока - один по дефолту видимый, с анимацией, второй спрятанный, со стартовым кодом. и переключайся между ними по клику на "Вход на сайт"

дешево и сердито :)

VasylLive 14.12.2009 21:02

Большое спасибо BorLase

Это что-то типа вариант три но без куков, да????

Можно пример кода???

Спасибо!

BorLase 15.12.2009 12:19

навскидку так
Код:

<body>

        <div id="flash_div">
                <div style="border: 1px solid red; width: 200px; height: 100px">
                        This is flash
                </div>
                <a href="#" onClick="document.getElementById('code_div').style.display='block'; document.getElementById('flash_div').style.display='none';">Enter to site</a>
        </div>

        <div id="code_div" style="display: none">
                <div style="border: 1px solid blue; width: 400px; height: 200px">
                        This is 1st page
                </div>
        </div>

</body>

есть только одно "но"... при перезагрузке опять попадаем на флеш - так что без кукисов, боюсь, в любом варианте не обойтись :(

VasylLive 16.12.2009 03:01

Брррр.... Я что-то не совсем понимаю. Есть сайт и примерно 300 страничек. Что мне нужно вставить на главной страничке сайта что-бы вывести слой (другую HTML страничку) поверх главной и переключиться на главную то есть основной слой при нажатии на кнопочку "Вход"????

Например, главная страничка:
Код HTML:

<!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>
</head>
<body>
<div align="center">
 
<--Главная страничка-->
...
...
 
</div>
</body>
</html>

Страничка которую нужно вывести поверх:
Код HTML:

<!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>
</head>
<body>
<div align="center">
<table width="100%" height="100%" border="0">
  <tr>
    <td width="100%"><div align="center"><img src="*.swf" alt="" width="" height="" /></div></td>
</tr>
<--Вход на сайт-->
  <tr>
    <td width="100%"><div align="center"><a href="index.html"><img src="*.gif" border="0"/></a></div></td>
</tr>
</div>
</body>
</html>

То есть как вывести одну HTML страничку поверх другой HTML странички???????

добавлено через 10 минут

EvroStandart 16.12.2009 12:13

Я бы всётаки на php делал.

Если ты собираешся закрывать под пароль все 300 страниц, тогда придётся этот код со слоями в каждую страницу прописывать.
А если чтото новое придумаешь, будешь в каждой странице прописывать изменения.

И вообще, всё что работает на стороне клиента - это не защита. Такие формы входа легко обходятся.

Элементарная защита: поставить все страницы в папку с закрытым доступом и подгружать их из одного пхп файла с проверкой сессии.


Часовой пояс GMT +4, время: 19:21.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.