divная вёрстка
Есть страница - 2 колонки, левая 200px шириной, правая резиновая.
Как сделать так, чтобы резиновая загружалась раньше?
Есть страница - 2 колонки, левая 200px шириной, правая резиновая.
Как сделать так, чтобы резиновая загружалась раньше?
решил сменить WYSIWYG-редактор. до этого пользовался SPAW. посоветуйте альтернативу по таким характеристикам:
1. Наличие функции очистки кода от “лишних” тегов ворда и пр.
2. Полноэкранный режим
3. Возможность вставки Flash
4. Возможность конфигурировать тулбар
5. Multilanguage
Добрый день.
Ниже фрагмент кода с комментариями:
————————————————
<html>
<head>
<script>
function init(){
// Получаем элемент DIV (единственный в BODY)
var gDiv = document.getElementById(”id_div”);
// Создается SELECT
var gSel = document.createElement('SELECT');
// Задаём для SELECT значение id = 'id_sel'
gSel.setAttribute(”id”, “id_sel”);
// Создаются две OPTION
var gOpt1 = document.createElement('OPTION');
var gOpt2 = document.createElement('OPTION');
// Этим двум OPTION задаются надписи “One” и “Two”
gOpt1.appendChild(document.createTextNode(”One”));
gOpt2.appendChild(document.createTextNode(”Two”));
// Эти две OPTION прикручиваются к созданному SELECT
gSel.appendChild(gOpt1);
gSel.appendChild(gOpt2);
// А SELECT, в свою очередь, прикручивается к DIV-у
gDiv.appendChild(gSel);
// Для SELECT задаём функцию-обработчик show_value(), ….
gSel.onchange = function(){
show_value();
}
}
// … которая просто отображает alert-ом выбранное в SELECT-е значение.
function show_value(){
alert(document.getElementById(”id_sel”).value);
}
</script>
</head>
<body onload=”init();”>
<div id=”id_div”></div>
</body>
</html>
————————————————
При изменении значения в списке должно по alert-у появляться сообщение с новым выбранным значением.
В FF и в Opera всё работает как надо, а в IE сообщение пустое (т.е. value возвращает пустую строку).
С чем это может быть связано?
Соорудил небольшой скриптик, ответа удалось добиться только от rpc.weblogs.com/RPC2
яндексовский ping.blogs.yandex.ru/RPC2 и гугловский blogsearch.google.com/ping/RPC2 не отвечают, но кажется боты приходят. В общем непонятно. Может я чего не так делаю?
UPD: Проблема решена. Не обращайте внимание на найденные в инете отзывы, оказывается что размер данных надо прописывать (а не так как кто-то пишет что при любом числе вместо 250 яндекс не отвечает).
fwrite($ping, "POST /ping/RPC2 HTTP/1.0rn" .
"User-Agent: Pinguinrn".
"Host: blogsearch.google.comrn".
"Content-Type: text/xmlrn".
"Content-length: 250rnrn");
fwrite($ping,'<?xml version="1.0"?>'.
'<methodCall>'.
'<methodName>weblogUpdates.extendedPing</methodName>'.
'<params>'.
'<param>'.
'<value>site.com</value>'.
'</param>'.
'<param>'.
'<value>http://site.com/</value>'.
'</param>'.
'<param>'.
'<value>http://site.com/</value>'.
'</param>'.
'<param>'.
'<value>http://site.com/rss/</value>'.
'</param>'.
'</params>'.
'</methodCall>');
fclose ($ping);
}
для яндекса:
if( $ping = fsockopen("ping.blogs.yandex.ru", 80, $errno, $errstr, 29) )
{
fwrite($ping, "POST /RPC2 HTTP/1.0rn" .
"User-Agent: Pinguinrn".
"Host: ping.blogs.yandex.rurn".
"Content-Type: text/xmlrn".
"Content-length: 250rnrn");
fwrite($ping,'<?xml version="1.0"?>'.
'<methodCall>'.
'<methodName>weblogUpdates.ping</methodName>'.
'<params>'.
'<param>'.
'<value>site.com</value>'.
'</param>'.
'<param>'.
'<value>http://site.com/</value>'.
'</param>'.
'</params>'.
'</methodCall>');
fclose ($ping);
}
А еще непонятно что для яндекса указывать, главную страницу, rss ленту или просто урл последнего нового документа?
Можно ли в prototype.js удалить элемент, не удаляя его детишек?
Например, было:
Потом делаем
$('mydiv').ВсёЧтоХочешьСоМнойДелайФашистТолькоДетокНеТрожь;
И получается:
Как сделать “в лоб” - знаю, но не хочу. Надеюсь, что есть API метод стандартный.
Поговорим о безопасности сайтов. А точнее о тех проколах разработчиков, которые предоставляют посетителям лишнюю информацию, которая может оказать помощь для взлома сайта.
Лазил недавно по сайту Связного, наткнулся на несуществующую страницу, в которой мне их движок сайта вывалил весь бектрейс вызовов своих процедур. Прямо с путями в файловой системе! Офигенный прокол с точки зрения безопасности. Немного поэкспериментировал с GET-параметром action и выяснил что на какие параметры он выдает такой же дамп, а на какие-то - нет.
Скриншот выдаваемого листинга (кликни чтобы посмортеть в оригинальном размере)
Если в качестве параметра ввести любую абракадабру, то движок выдает пустую страницу (хотя по логике должна быть страница с 404 ошибкой - page not found). Например, вот такая страница c параметром action=DABlank8 содержит в себе информацию о компании. Если поиграться с последней цифрой в параметре, изменить ее с 8 на 6, к примеру, то получим бектрейс вызовов движка сайта. А если вообще уберем последнюю цифру, то получим пустую страницу.
Еще немного полазив по сайту, замечаем, что параметр action имеет свою структуру. Начало этого параметра, а именно, подстрока-префикс DA присутсвует во многих страницах. Что это означает - не совсем понятно. За ним идет как бы корень раздела или группы страниц - Blank для обычных контентовых страниц, News - для лент новостей, Product - для продуктов и т.д. Что означает последний номер - не совсем понятно, ясно что идентификатор какой-то, но он не всегда срабатывает. Чтобы понять надо дальше лазить и разбираться.
И все это сопровождается полными трейсами вызовов функций и полными путями от корня к соответствующим файлам. А это дает неплохой набор начальных данных для обратного инжинеринга (читай - для хакинга) CMS сайта. Если движок у них не самописный, а какой-то коммерческий, то по именам файлов и функций его можно попытаться опознать. А далее идет проверка на известные дырки в этом движке в предыдущих версиях (вдруг они не обновились?). Плюс уже известны все нужные пути в файловой системе, если у них где-то на сайте “гуляют” пути к файлам в параметрах, то можно попробовать поиграться с этим.
Именно поэтому на серьезных продакшн-сайтах открытых в интернет, всегда выключают выдачу в браузер всех ерроров и warning'ов, потому что это дает потенциональному злоумышленнику лишнюю информацию. А уж выдавать бектрейс вызовов - это уже совсем моветон. Ну, а мелочь вроде пустой белой страницы вместо положенной по правилам хорошего тона страницы с 404 ошибкой - это совсем не так страшно с точки зрения безопасности, но не совсем правильно.
Да, а еще в нормальных движках скрывают GET-параметры. Кстати, при этом часто используют в апаче и nginx'е такой модуль Rewrite. Он умеет преобразовывать по шаблону переданный ему URL требуемой страницы. То есть пути из index.php?action=news&news_id=666 превращаются в /news/666. Еще может оказаться логичней внести сюда дату новости, например, /news/2008/01/11/666. Такой трюк убивает (в хорошем смысле слова) трех полезных зайцев:
Ну хватит. Кому надо будет (у кого свободного времени много) - тот дальше нароет.
Кстати, сайт Связному делала некая студия под названием netPro. Будем надеяться до них дойдет эта статья и они все ошибочки подправят.
В любом случае - спасибо за материал для статьи. Статья не претендует на профессиональный анализ безопасности сайта, а лишь знакомит читателя с некими фактами и содержит в себе мысли и вывода автора, отражающие лишь уровень знаний оного.
ЗЫ Спасибо коментаторам - судя по GET параметрам на сайте самой студии стоит такой же движок. Самописка.
Московский офис Американской софтверной компании Mediaspectrum, Inc. (автоматизация издательского бизнеса в крупных зарубежных издательских домах и газетных холдингах) предлагает рассмотреть открытую позицию
Java-developer
Требования:
Условия:
Contact info: job@mediaspectrum.net, www.mediaspectrum.net, 495 981 3162, Котова Алла
Есть задача - дать возможность посетителям просматривать ОДИН, вполне определенный, ролик прямо со страницы сайта, не скачивая его. Предположим, изначально ролик имеет параметры: 1280×720 (16:9/HD), mpeg2.
Если посмотреть, к примеру на gametrailers.net, то сделать это можно как минимум 3-мя способами:
1. Через Flash плеер
2. Через Quicktime плеер
3. Через Windows-Media плеер
Есть несколько вопросов по этим способам:
1. Есть ли какие либо ограничение на макс.разрешение проигрываемого ролика?
2. Есть ли какие либо другие ограничения (размер файла, FPS, …)
3. Какие типы файлов поддерживаются, кроме: 1-FLV, 2-MOV, 3-WMV ?
4. Где тот или иной способ будет ТОЧНО работать без установки каких либо дополнительных модулей?
5. Есть ли различия по скорости работы?
6. Что, на Ваш взгляд, предпочтительнее и почему?
В зеленоградский офис инвестиционно-финансовой компании “Опцион” требуется программист: PHP+C#+SQL
Требование: опыт работы и наличие реализованных проектов;
Условия:
+ З.П. от 1200 у.е. до 2000 у.е. по итогам собеседования;
+ бонусы;
+ гибкий график, возможность совмещения с учебой для студентов;
+ Работа в Зеленоградском Бизнес Центре.
ICQ 396255537, info(собака)option.ru (с пометкой программист)
Имеется 3 физических сервера. Имеется java-приложение (типа CMS), работающее с постгресом. Сделали балансировку, т.е. 3 копии приложения работают на трех серверах каждый под своим Томкатом.
Какие вариенты использования постгреса есть в данном случае?
Сейчас на одном сервере стоит балансер БД, с которым и работают все приложения (есть одна проблема, которая, как я думаю, как раз на этом узком месте и завязана). Задача балансера - раскидывать данные на постгресы, стоящие на остальных двух серверах в качестве резерва. Если балансер падает (в любом проявлении), всегда есть возможность направить поток запросов на другие копиюю БД.
В идеале хочется, чтобы каждая реплика приложения работала независимо со своей СУБД на своем сервере.