Есть страница, на которой php-скрипт вызывается как картинка, т.е.
<img src="адрес сайта/имя_скрипта.php">
Но этот скрипт не выполняет некоторых своих функций: операторы echo (print) вовсе не формируют дополнительный html-код на страничке, как хотелось бы.
ПОЧЕМУ?
Спустя 4 минуты, 18 секунд (20.09.2010 - 17:26) Invis1ble написал(а):
скорее всего скрипт, указанный в аттрибуте src, выводит картинку, формирующуюся динамически, в поток. Например капчу
Спустя 5 минут, 20 секунд (20.09.2010 - 17:32) Кэт написал(а):
Скрипт написала я сама - это примитивный счетчик посещений по факту загрузки "картинки". Свою серверную часть (запись в базу) скрипт делает на отлично; а вот чтоб прогенерировать кусочек html-кода клиенту - полный 0!!!
Спустя 2 минуты, 46 секунд (20.09.2010 - 17:34) twin написал(а):
Ну сюда его, ноль этот.
Спустя 10 минут, 37 секунд (20.09.2010 - 17:45) Кэт написал(а):
Скрипт в студию?
1) на загружаемой html-страничке (одной социальной сети, где скрипты запрещены) добавляем строчку:
<img src="адрес_своего_сайта/test.php">
2) test.php есть
<?php
print ('Тест');
?>
Результат - нулевой.
Я-то понимаю, что это связано со способом вызова скрипта, потому как стоит набрать в браузере не ту html-страничку, а адрес_своего_сайта/test.php как тут же все выскакивает...
Но хотелось, чтобы кто-то опытной сказал это подробно, четко и "навсегда")!
1) на загружаемой html-страничке (одной социальной сети, где скрипты запрещены) добавляем строчку:
<img src="адрес_своего_сайта/test.php">
2) test.php есть
<?php
print ('Тест');
?>
Результат - нулевой.
Я-то понимаю, что это связано со способом вызова скрипта, потому как стоит набрать в браузере не ту html-страничку, а адрес_своего_сайта/test.php как тут же все выскакивает...
Но хотелось, чтобы кто-то опытной сказал это подробно, четко и "навсегда")!
Спустя 4 минуты, 9 секунд (20.09.2010 - 17:49) Invis1ble написал(а):
Кэт
Цитата |
на загружаемой html-страничке (одной социальной сети, где скрипты запрещены) добавляем строчку |
так ты добавляешь в уже сформированный html на своем компе, а формируется html сервером соцсети, т.е. скриптом. Поэтому ничего работать не будет. ИМХО, надо тебе разобраться с основами работы Internet
Спустя 5 минут, 5 секунд (20.09.2010 - 17:54) Кэт написал(а):
"формируется html сервером соцсети"
Немножко несогласна: например, Я могу вставить ссылку на каритнку в Инете и сервер соцсети такое попускает: картинка реально подгружается и высвечивается - кто тогда сформировал эту страничку? Я + Сервер...
Немножко несогласна: например, Я могу вставить ссылку на каритнку в Инете и сервер соцсети такое попускает: картинка реально подгружается и высвечивается - кто тогда сформировал эту страничку? Я + Сервер...
Спустя 1 минута, 30 секунд (20.09.2010 - 17:56) FatCat написал(а):
При вызове картинки, твоё print ('Тест'); отдается не браузеру, а апачу, чтобы апач отдал файл. Так как файла Тест апач не находит, ты получаешь в браузер пустоту с 404-м кодом. В браузере это выглядит как отсутствующая картинка.
Спустя 12 минут, 16 секунд (20.09.2010 - 18:08) Кэт написал(а):
Значит все эти бодрые слова в руководствах типа
"То есть, фактически, мы просто сформировали нашим PHP скриптом некий текст, который выглядит, как нужный нам код"
на самом деле нужно остудить фразой: "ЭТО СРАБОТАЕТ НЕ ПРИ ВСЯКОМ СПОСОБЕ ЗАПУСКА СКРИПТА" ????????????????
"То есть, фактически, мы просто сформировали нашим PHP скриптом некий текст, который выглядит, как нужный нам код"
на самом деле нужно остудить фразой: "ЭТО СРАБОТАЕТ НЕ ПРИ ВСЯКОМ СПОСОБЕ ЗАПУСКА СКРИПТА" ????????????????
Спустя 5 минут, 1 секунда (20.09.2010 - 18:13) Invis1ble написал(а):
Цитата |
Так как файла Тест апач не находит |
немножко поправлю, видимо FatCat имел ввиду
так как сервер соцсети файл test.php не находит...
Спустя 2 минуты, 2 секунды (20.09.2010 - 18:15) Invis1ble написал(а):
Кэт
сработает, просто сервер соцсети "не видит" твой test.php. Т.е. если бы test.php находился на машине сервера, а не на твоей, то скрипт бы работал (по крайней мере запускался)
сработает, просто сервер соцсети "не видит" твой test.php. Т.е. если бы test.php находился на машине сервера, а не на твоей, то скрипт бы работал (по крайней мере запускался)
Спустя 3 часа, 23 минуты, 19 секунд (20.09.2010 - 21:38) Админ написал(а):
Цитата |
на загружаемой html-страничке (одной социальной сети, где скрипты запрещены) добавляем строчку: |
по моему ответ уже есть в вопросе.
Спустя 1 час, 4 минуты, 54 секунды (20.09.2010 - 22:43) Nord написал(а):
Цитата (Кэт) |
Скрипт в студию? 1) на загружаемой html-страничке (одной социальной сети, где скрипты запрещены) добавляем строчку: <img src="адрес_своего_сайта/test.php"> 2) test.php есть <?php print ('Тест'); ?> Результат - нулевой. Я-то понимаю, что это связано со способом вызова скрипта, потому как стоит набрать в браузере не ту html-страничку, а адрес_своего_сайта/test.php как тут же все выскакивает... Но хотелось, чтобы кто-то опытной сказал это подробно, четко и "навсегда")! |
Все правильно, текст в таком случае и не должен отображаться.
Проведите эксперимент: Создайте текстовый файл с содержимым "Тест"(то, что выдает php-скрипт) и откройте его просмотрщиком картинок. Текст "Тест" там не появится, а именно это вы требуете от браузера.
Чтобы появился текст, данные должны выводится в формате изображения. Попробуйте вместо print('Тест'), написать:
echo "\x42\x4d\x66\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x28\x00";
echo "\x00\x00\x14\x00\x00\x00\x0a\x00\x00\x00\x01\x00\x01\x00\x00\x00";
echo "\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
echo "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\x00\xFF\xFF";
echo "\xF0\x00\xFF\xFF\xF0\x00\xBB\xAA\xF0\x00\xBB\xAA\xF0\x00\xBB\xAA";
echo "\xF0\x00\x89\xA6\xF0\x00\xAF\xFC\x80\x00\x8F\xBE\xF0\x00\xFF\xFF";
echo "\xF0\x00\xFF\xFF\xF0\x00";
А чтобы изменить html-код нужно использовать javascript
Спустя 1 час, 43 минуты, 19 секунд (21.09.2010 - 00:27) Админ написал(а):
блин читайте больше ( и хоть думайте головой ) - не уж не понятно , что пост - полная ахиннея
Спустя 2 часа, 25 минут, 39 секунд (21.09.2010 - 02:52) aH6y написал(а):
Цитата (Кэт @ 20.09.2010 - 17:22) |
Здравствуйте! Есть страница, на которой php-скрипт вызывается как картинка, т.е. <img src="адрес сайта/имя_скрипта.php"> Но этот скрипт не выполняет некоторых своих функций: операторы echo (print) вовсе не формируют дополнительный html-код на страничке, как хотелось бы. ПОЧЕМУ? |
потому как php файлы будут обрабатываться только если они находяться на сервере. иначе следует пользоваться js
Спустя 7 часов, 38 минут, 10 секунд (21.09.2010 - 10:30) Кэт написал(а):
Админ писал: "блин читайте больше ( и хоть думайте головой ) - не уж не понятно , что пост - полная ахиннея"
1) Я и без напоминаний знаю, что на все вопросы можно найти все ответы путем чтения. Вот только скорость будет не та.
2) А насчет "ахинея", так я, во-первых, в разделе для новичков.
3) Во-вторых, я не виновата, что на мой вопрос вместо 1 четкого ответа пошли несколько нечетких. Я думала, что в этом разделе постоянно дежурит какй-то НеНовичок...
Короче, пишу еще раз предельно просто и ясно.
- ЕСЛИ вы возьмете Денвер, где вы полный хозяин
- Кинете в корневую скрипт mytest.php содержания
<?php
print ('Тест');
?>
- И вызовите его из index.html путем включения строки
<img src="mytest.php">
ТО:
- скрипт запуститься без всяких проблем!
- если вы в нем добавочно напишите "какую-то работу на сервере" (что-то с файлами и проч.), то он все сделает без запинки!
- но ни 1 символа на index.html ни print, ни echo не добавят...
- при этом никакой ошибки (типа не найдена картинка) не происходит! более того, высвечивается какая-то серая картинка (по умолчанию?), размер котрой дополнительно можно менять добавочно задав width и heigth типа
<img src="mytest.php" width = "10" heigth = "15" >
Я знаю, что дело в способе вызова скрипта. Но я думала, что кто-то знает все тонкие шестеренки этого дела; может, к примеру, рассказать почему не фиксируется ошибка (когда вместо файла картинки нагло подсовываем php), почему отображается какое-то серое изображение и т.д.
И ругайте не меня, а, к примеру, автора статьи http://phpfaq.ru/na_tanke "Самые основы. Как работает PHP".
Цитирую: "Результатом работы скрипта на PHP в большинстве случаев является обычный текст. Текст HTML страницы. Которая отдается браузеру и показывается им, как обычный HTML. Вы сами можете в этом убедиться, написав в скрипте
<? echo "Привет, <b>Вася!</b>"; ?>;
А потом просмотрев в браузере исходный текст полученной страницы. Никаких тегов PHP там нет! Только
Привет, <b>Вася!</b>"
Наглое вранье!!!!!!!!!!!!!! Почему никто не скажет: результат работы php-скрипта ОПРЕДЕЛЯЕТСЯ СПОСОБОМ ЕГО ВЫЗОВА!!!!!!!!!!!!!!!!!!!!
1) Я и без напоминаний знаю, что на все вопросы можно найти все ответы путем чтения. Вот только скорость будет не та.
2) А насчет "ахинея", так я, во-первых, в разделе для новичков.
3) Во-вторых, я не виновата, что на мой вопрос вместо 1 четкого ответа пошли несколько нечетких. Я думала, что в этом разделе постоянно дежурит какй-то НеНовичок...
Короче, пишу еще раз предельно просто и ясно.
- ЕСЛИ вы возьмете Денвер, где вы полный хозяин
- Кинете в корневую скрипт mytest.php содержания
<?php
print ('Тест');
?>
- И вызовите его из index.html путем включения строки
<img src="mytest.php">
ТО:
- скрипт запуститься без всяких проблем!
- если вы в нем добавочно напишите "какую-то работу на сервере" (что-то с файлами и проч.), то он все сделает без запинки!
- но ни 1 символа на index.html ни print, ни echo не добавят...
- при этом никакой ошибки (типа не найдена картинка) не происходит! более того, высвечивается какая-то серая картинка (по умолчанию?), размер котрой дополнительно можно менять добавочно задав width и heigth типа
<img src="mytest.php" width = "10" heigth = "15" >
Я знаю, что дело в способе вызова скрипта. Но я думала, что кто-то знает все тонкие шестеренки этого дела; может, к примеру, рассказать почему не фиксируется ошибка (когда вместо файла картинки нагло подсовываем php), почему отображается какое-то серое изображение и т.д.
И ругайте не меня, а, к примеру, автора статьи http://phpfaq.ru/na_tanke "Самые основы. Как работает PHP".
Цитирую: "Результатом работы скрипта на PHP в большинстве случаев является обычный текст. Текст HTML страницы. Которая отдается браузеру и показывается им, как обычный HTML. Вы сами можете в этом убедиться, написав в скрипте
<? echo "Привет, <b>Вася!</b>"; ?>;
А потом просмотрев в браузере исходный текст полученной страницы. Никаких тегов PHP там нет! Только
Привет, <b>Вася!</b>"
Наглое вранье!!!!!!!!!!!!!! Почему никто не скажет: результат работы php-скрипта ОПРЕДЕЛЯЕТСЯ СПОСОБОМ ЕГО ВЫЗОВА!!!!!!!!!!!!!!!!!!!!
Спустя 39 минут, 39 секунд (21.09.2010 - 11:10) twin написал(а):
Вы не кипятитесь, сударыня. Просто Вам не понятен механизм клиент-серверных взаимодействий. По этому и такой вопрос.
Вы чего ожидаете от скрипта? Чтобы он передал что то непотребное в парсер изображений?
Попробуйте в mytest.php поместить такой текст:
А вообще совершенно непонятна цель Ваших телодвижений... Мне кажется, что рыть надо несколько в иную сторону.
Вы чего ожидаете от скрипта? Чтобы он передал что то непотребное в парсер изображений?
Попробуйте в mytest.php поместить такой текст:
<?php
$string = 'The result of the script';
$im = imagecreatetruecolor(400, 50);
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);
imagefill($im, 0, 0, $white);
imagestring($im, 5, 33, 4, $string, $black);
header('Content-type: image/png');
imagepng($im);
А вообще совершенно непонятна цель Ваших телодвижений... Мне кажется, что рыть надо несколько в иную сторону.
Спустя 1 час, 28 минут, 57 секунд (21.09.2010 - 12:39) sergeiss написал(а):
Цитата (Кэт @ 20.09.2010 - 18:22) |
Есть страница, на которой php-скрипт вызывается как картинка, т.е. <img src="адрес сайта/имя_скрипта.php"> Но этот скрипт не выполняет некоторых своих функций: операторы echo (print) вовсе не формируют дополнительный html-код на страничке, как хотелось бы. |
Прочитал я вопрос, прочитал ответы... Некоторые были даже близко к правильному

Правильный ответ: в таком скрипте НИЗЗЯ (!!!) вывести одновременно картинку и код html-странички!
Если на картинке нужно вывести текст, то тогда смотрим то, что написал twin. А если надо вывести код после картинки, то меняем восприятие и делаем другой алгоритм. В последнем поможем, если надо.
Опиши чуть подробнее, что же надо. И не надо вот этих вот воплей типа
Цитата (Кэт @ 21.09.2010 - 11:30) |
Наглое вранье!!!!!!!!!!!!!! |

Потому что непонимание со стороны читателя не является враньём со стороны автора.
Спустя 5 часов, 39 минут, 48 секунд (21.09.2010 - 18:19) Кэт написал(а):
Так, успокаиваюсь и рассказываю. С благодарностью, поскольку ВЫ все вместе сделали для меня большой прорыв.
1) Многие имеют свою странички в соцсетях. И там очень многое запрещено, как правило. В частности скрипты любого вида.
2) Зачем скрипты? А очень хочется узнать о посетителях своей странички))) Для этого нужно соорудить счетчик посещений - без скриптов никак.
3) Любой продвинутый счетчик посещений состоит из серверной части (предполагается, что мы имеем также свой сайт (сервер) с разрешенными скриптами) - php-скрипт и клиентской части - java-скрипт
4) Условие игры такое: на страничке в соцсети из посторонего разрешены только внешние изображения. Вот при этом условии и надо думать, как скрытно)))!!! подстроить посетителю такое, чтобы каким-то чудом незаметно для него заворочались, заработали наши скрипты при прсмотре страницы.
5) Завести скрипт на сайте оказалось просто - разрешен тэг <img> и он молча проглатывает подстановку вместо адреса картинки адрес серверного скрипта. Но так много не узнаешь о посетителе - нужен скрипт на страничке соцсети, java-скрипт, а он запрещен...
6) Поэтому-то я и пыталась соорудить динамически своим php-скриптом java-скрипт там, где он запрещен... Увы...
7) Но случилось чудо: оказывается у разрешенного тэга <img> разрешена java-скрипт обработка событий!!!!!!!!!!!!!!!!!!!!!!!!!! Т.е. java-скрипт нельзя, в внутри тэга <img> - сколько угодно!!!!!!!!!!!!!!!!!!!!!!! Я счастлива, пишу
<img src='явно не картинка' onerror="javascript: ...всякие прекрасные функции явы..."> Ибо тихое и ласковое незаметное onerror всегда со мной...
8) Осталось акккккуууууратненько из явы позвать мой серверный php и... держись мои посетители!!!!!!!!!!!!!!))))))))))))))))))))))))))))
1) Многие имеют свою странички в соцсетях. И там очень многое запрещено, как правило. В частности скрипты любого вида.
2) Зачем скрипты? А очень хочется узнать о посетителях своей странички))) Для этого нужно соорудить счетчик посещений - без скриптов никак.
3) Любой продвинутый счетчик посещений состоит из серверной части (предполагается, что мы имеем также свой сайт (сервер) с разрешенными скриптами) - php-скрипт и клиентской части - java-скрипт
4) Условие игры такое: на страничке в соцсети из посторонего разрешены только внешние изображения. Вот при этом условии и надо думать, как скрытно)))!!! подстроить посетителю такое, чтобы каким-то чудом незаметно для него заворочались, заработали наши скрипты при прсмотре страницы.
5) Завести скрипт на сайте оказалось просто - разрешен тэг <img> и он молча проглатывает подстановку вместо адреса картинки адрес серверного скрипта. Но так много не узнаешь о посетителе - нужен скрипт на страничке соцсети, java-скрипт, а он запрещен...
6) Поэтому-то я и пыталась соорудить динамически своим php-скриптом java-скрипт там, где он запрещен... Увы...
7) Но случилось чудо: оказывается у разрешенного тэга <img> разрешена java-скрипт обработка событий!!!!!!!!!!!!!!!!!!!!!!!!!! Т.е. java-скрипт нельзя, в внутри тэга <img> - сколько угодно!!!!!!!!!!!!!!!!!!!!!!! Я счастлива, пишу
<img src='явно не картинка' onerror="javascript: ...всякие прекрасные функции явы..."> Ибо тихое и ласковое незаметное onerror всегда со мной...
8) Осталось акккккуууууратненько из явы позвать мой серверный php и... держись мои посетители!!!!!!!!!!!!!!))))))))))))))))))))))))))))
Спустя 11 минут, 57 секунд (21.09.2010 - 18:31) twin написал(а):
На счет 7-го пункта не уверен... Я не юзаю вконтакт, не имею представления что там происходит. Но ни один владелец сайта в здравом уме и рассудке не позволит выполнять javascrbpt в теге.
Хотя задача решаема.
Хотя задача решаема.
Спустя 14 часов, 44 минуты, 47 секунд (22.09.2010 - 09:16) Кэт написал(а):
Все нормально: эта развеселая соцсеть не "Вконтакте" и я уже проверила черновичек - РАБОТАЕТ!!! Надеюсь к вечеру все аккуратненько напишу, протестирую и ПРЕДСТАВЛЮ ЗДЕСЬ!!!
Спустя 31 минута, 5 секунд (22.09.2010 - 09:47) drouZ написал(а):
я честно говоря считал всегда, что если вы позиционируете пхп-скрипт как изображение, то нужно генерировать изображение с соответствующим хедером, даже можно реврайт мод прилепить, и назвать sccript.jpeg чтобы не палить контору. Поправьте меня, если я не прав.
Спустя 4 минуты, 48 секунд (22.09.2010 - 09:51) twin написал(а):
ход мысли верный.
Спустя 1 час, 11 минут, 13 секунд (22.09.2010 - 11:03) SlavaFr написал(а):
оff тopic:
не по теме, но может кто и незнал, что иногда можно поместить маленькие графики прямо в хтмл-техт .
не по теме, но может кто и незнал, что иногда можно поместить маленькие графики прямо в хтмл-техт .
<img src="data:image/gif;base64,<?php echo base64_encode(file_get_contents('http://phpforum.ru/html/emoticons/biggrin.gif'))?>" />
Спустя 5 часов, 56 минут, 22 секунды (22.09.2010 - 16:59) Кэт написал(а):
Увы...
Мне нужна всего-навсего одна функция Явы на страничке, где все между <script> и </script> автоматом вытирается злобными)) админами.
Я хотела использовать черный ход - события, в частности onerror, в тэге <img>
<img src="явно не картинка" onerror="функция Явы">
Оказалось, что моя фукция упирается ногами и рогами; она уже почти забодала меня...
Всего-то надо (в простейшем случае):
document.write('<img src="test.php?width='+screen.width+'">')
НО:
- у самой функции уже использованы одинарные и двойные кавычки для четкого разграничения входящих туда вещей; поэтому, когда впихиваешь все это дело в еще одни кавычки (двойные), то начинается дурдом...
- ради интереса я написала отдельную функцию
<script type="text/javascript">
function jstest()
{
document.write('<img src="test.php?width='+screen.width+'">');
}
</script>
и тогда внешне все просто onerror="jstest()"
ВСЕ ЗАРАБОТАЛО... С ОДНИМ ЛИШЬ НЕДОСТАТКОМ: ТАКОЕ ВЫПОЛНЕНИЕ ФУНКЦИИ jstest() В ОТЛИЧИЕ ОТ ЕЕ ВЫПОЛНЕНИЯ В ТЕЛЕ "НОРМАЛЬНОГО СКРИПТА" ПРИВОДИТ К ПОЛНОМУ ОЧИЩЕНИЮ ТЕКУЩЕГО ОКНА(((((((((((
Вот так, сначала я споткнулась на том, что результаты работы php-скрипта очень даже зависят от способа его вызова; теперь аналогично - результаты работы javascript-функции зависят от способа ее вызова.............................
Или все можно будет найти какие-то еще 3-и кавычки и все закавычить как надо??? Я ведь чувствую, что такое взбрык выдала мне document.write именно из-за кавычек.....................
Мне нужна всего-навсего одна функция Явы на страничке, где все между <script> и </script> автоматом вытирается злобными)) админами.
Я хотела использовать черный ход - события, в частности onerror, в тэге <img>
<img src="явно не картинка" onerror="функция Явы">
Оказалось, что моя фукция упирается ногами и рогами; она уже почти забодала меня...
Всего-то надо (в простейшем случае):
document.write('<img src="test.php?width='+screen.width+'">')
НО:
- у самой функции уже использованы одинарные и двойные кавычки для четкого разграничения входящих туда вещей; поэтому, когда впихиваешь все это дело в еще одни кавычки (двойные), то начинается дурдом...
- ради интереса я написала отдельную функцию
<script type="text/javascript">
function jstest()
{
document.write('<img src="test.php?width='+screen.width+'">');
}
</script>
и тогда внешне все просто onerror="jstest()"
ВСЕ ЗАРАБОТАЛО... С ОДНИМ ЛИШЬ НЕДОСТАТКОМ: ТАКОЕ ВЫПОЛНЕНИЕ ФУНКЦИИ jstest() В ОТЛИЧИЕ ОТ ЕЕ ВЫПОЛНЕНИЯ В ТЕЛЕ "НОРМАЛЬНОГО СКРИПТА" ПРИВОДИТ К ПОЛНОМУ ОЧИЩЕНИЮ ТЕКУЩЕГО ОКНА(((((((((((
Вот так, сначала я споткнулась на том, что результаты работы php-скрипта очень даже зависят от способа его вызова; теперь аналогично - результаты работы javascript-функции зависят от способа ее вызова.............................
Или все можно будет найти какие-то еще 3-и кавычки и все закавычить как надо??? Я ведь чувствую, что такое взбрык выдала мне document.write именно из-за кавычек.....................
Спустя 2 часа, 13 минут, 42 секунды (22.09.2010 - 19:13) twin написал(а):
Есть такая хитрая весчь, как eval(), что касаемо кавычек.
Спустя 2 часа, 39 минут, 39 секунд (22.09.2010 - 21:52) Nord написал(а):
Цитата |
Оказалось, что моя фукция упирается ногами и рогами; она уже почти забодала меня... Всего-то надо (в простейшем случае): document.write('<img src="test.php?width='+screen.width+'">') НО: - у самой функции уже использованы одинарные и двойные кавычки для четкого разграничения входящих туда вещей; поэтому, когда впихиваешь все это дело в еще одни кавычки (двойные), то начинается дурдом... |
Можно обойтись и только одинарными

document.write('<img src=\'test.php?width='+screen.width+'\'>')
или, если хочется вывести именно в двойных кавычках:
document.write('<img src=\x22test.php?width='+screen.width+'\x22>')
22 - шестнацеричный код кавычек. При выполнении кода \x22 заменятся на "
Хотя, я думаю, onerror все равно происходит после загрузки документа, поэтому экран все равно очистится
Чтобы не очищался, нужно искать изменяемый объект в DOM. Если у него есть id, то тупо через document.getElementById(id)
Спустя 10 минут, 7 секунд (22.09.2010 - 22:03) twin написал(а):
У меня стойкое ощущение, что все можно решить совсем без крови javascript.
Только задача слишком туманна.
Только задача слишком туманна.
Спустя 11 часов, 24 минуты, 51 секунда (23.09.2010 - 09:27) Кэт написал(а):
Спасибо, ребята, буду пробовать!
А насчет того, что можно обойтись без скриптов и туманности задачи проясняю.
Все счетчики посещений одинаковые, ниже привожу код заслуженного счетчика от liveinternet (точнее, его клиентскую часть).
<script type="text/javascript"><!--
document.write("<a href='http://www.liveinternet.ru/click' "+
"target=_blank><img src='//counter.yadro.ru/hit?t52.6;r"+
escape(document.referrer)+((typeof(screen)=="undefined")?"":
";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?
screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+
";"+Math.random()+
"' alt='' title='LiveInternet: показано число просмотров и"+
" посетителей за 24 часа' "+
"border='0' width='88' height='31'><\/a>")
//--></script>
В этом скрипте ссылка неважна, важно то, что вызывается изображение на сервере счетчика (которое вполне может быть и не изображением) и через адресную строку ему передается инфа, которую наскребли функции явы (экран, адрес текущей страницы и проч.)
Соорудить такое на своей соцсети-страничке я не могу - между <script> и </script type> все автоматом вытирается... Вот я и борюсь за то, чтобы при запрете ява-скриптов на страничке их все же можно было выполнить; обработка событий (в тэге <img>) моя последняя надежда.
Оказывается, что ява-функции малость взбрыкивают, когда их из "нормального тела" пересаживаешь в тэг <img> на обработку событий - именно так, мои руки здесь не при чем: я ведь обошла проблему кавычек, создав отдельную функцию jstest() - она нормально работает в "нормальном теле" и, зараза, дополнительно очищает мне текущую страничку в тэге <img>... Буду искать, может браузер...
А насчет того, что можно обойтись без скриптов и туманности задачи проясняю.
Все счетчики посещений одинаковые, ниже привожу код заслуженного счетчика от liveinternet (точнее, его клиентскую часть).
<script type="text/javascript"><!--
document.write("<a href='http://www.liveinternet.ru/click' "+
"target=_blank><img src='//counter.yadro.ru/hit?t52.6;r"+
escape(document.referrer)+((typeof(screen)=="undefined")?"":
";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?
screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+
";"+Math.random()+
"' alt='' title='LiveInternet: показано число просмотров и"+
" посетителей за 24 часа' "+
"border='0' width='88' height='31'><\/a>")
//--></script>
В этом скрипте ссылка неважна, важно то, что вызывается изображение на сервере счетчика (которое вполне может быть и не изображением) и через адресную строку ему передается инфа, которую наскребли функции явы (экран, адрес текущей страницы и проч.)
Соорудить такое на своей соцсети-страничке я не могу - между <script> и </script type> все автоматом вытирается... Вот я и борюсь за то, чтобы при запрете ява-скриптов на страничке их все же можно было выполнить; обработка событий (в тэге <img>) моя последняя надежда.
Оказывается, что ява-функции малость взбрыкивают, когда их из "нормального тела" пересаживаешь в тэг <img> на обработку событий - именно так, мои руки здесь не при чем: я ведь обошла проблему кавычек, создав отдельную функцию jstest() - она нормально работает в "нормальном теле" и, зараза, дополнительно очищает мне текущую страничку в тэге <img>... Буду искать, может браузер...
Спустя 4 минуты, 22 секунды (23.09.2010 - 09:32) twin написал(а):
Задача не прояснилась. Что нужно то получить с этой странички?
Спустя 3 часа, 35 минут, 38 секунд (23.09.2010 - 13:07) Кэт написал(а):
Так, проблема, в общем-то, решена и я хочу кроме "Спасибо" дать отчет для всех, кто старался помочь мне.
Начну с конца. Вот примитивная, но
работающая клиентская часть моего счетчика посещений
<img src="мой сайт/test.gif" width="0" height="0" id="counter" onload="document.getElementById('counter').src='мой сайт/test.php?width='+screen.width+'&height='+screen.height;">
0) мы на страничке соцсети будем использовать разрешенный тэг <img>; не ради изображения, а ради того, что там внутри можно испоьзовать запрещенный ява-скрипт-код
1) src="мой сайт/test.gif" width="0" height="0" - грузим картинку с нашего сайт; ее никто не заметит, так как мы задали нулевые размеры; да и саму картинку обычно делают размером 1 пиксель и прозрачную
2) id="counter" - нужно для последующего...
3а) onload="... " - когда картинка загрузится, то для нее возникает событие "load" НА ОБРАБОТКУ КОТОРОГО МОЖНО вместо ... ПОСТАВИТЬ ЯВА-СКРИПТ-ФУНКЦИИ
3б) мне нужна была такая функция, в которой фигурировал бы адрес, src, чтобы я могла направить на адрес серверной части моего счетчика (запустить ее); оказалось, что document.write в тэге <img> малость дуреет, window.open не дуреет, но открывает дополнительное окно (которое не закрыть)...
3в) без шума и пыли сработала функция document.getElementById().src=... - я толком не знаю, что это такое, но у нее есть адрес, она работает, никак не обнаруживает себя
4) 'мой сайт/test.php?width='+screen.width+'&height='+screen.height
это я указываю адрес серверной части своего счетчика и ПЕРЕДАЮ В С ПОМОЩЬЮ СТАНДАРТНЫХ ФУНКЦИЙ ЯВА-СКРИПТ ШИРИНУ И ВЫСОТУ МОНИТОРА!!! МОЖНО ПЕРЕДАТЬ ЕЩЕ РЯД ПАРАМЕТРОВ - ВОТ ИЗ-ЗА ЧЕГО ТАКИЕ МУКИ: КРОМЕ КАК ЯВА-СКРИПТОМ ВРОДЕ НЕЛЬЗЯ ПОЛУЧИТЬ ТАКИЕ "ХАРАКТЕРИСТИКИ ПОСЕТИТЕЛЯ"!!!!!!!!!!!!
5) ну и само собой - выполнение document.getElementById('counter').src='мой сайт/test.php?width='+screen.width+'&height='+screen.height ЗАПУСКАЕТ мой test.php, который имеет $_GET['width'] $_GET['height'] и много-много другого...
Ранее я хотела использовать событие onerror, но дело в том, что часто сваливалась в зацыкливание... боюсь, что все, что я пишу внутри тэга <img> "неправильно" и именно это было причиной. Ничего страшного - onload тоже выполняется автоматом.
Начну с конца. Вот примитивная, но
работающая клиентская часть моего счетчика посещений
<img src="мой сайт/test.gif" width="0" height="0" id="counter" onload="document.getElementById('counter').src='мой сайт/test.php?width='+screen.width+'&height='+screen.height;">
0) мы на страничке соцсети будем использовать разрешенный тэг <img>; не ради изображения, а ради того, что там внутри можно испоьзовать запрещенный ява-скрипт-код
1) src="мой сайт/test.gif" width="0" height="0" - грузим картинку с нашего сайт; ее никто не заметит, так как мы задали нулевые размеры; да и саму картинку обычно делают размером 1 пиксель и прозрачную
2) id="counter" - нужно для последующего...
3а) onload="... " - когда картинка загрузится, то для нее возникает событие "load" НА ОБРАБОТКУ КОТОРОГО МОЖНО вместо ... ПОСТАВИТЬ ЯВА-СКРИПТ-ФУНКЦИИ
3б) мне нужна была такая функция, в которой фигурировал бы адрес, src, чтобы я могла направить на адрес серверной части моего счетчика (запустить ее); оказалось, что document.write в тэге <img> малость дуреет, window.open не дуреет, но открывает дополнительное окно (которое не закрыть)...
3в) без шума и пыли сработала функция document.getElementById().src=... - я толком не знаю, что это такое, но у нее есть адрес, она работает, никак не обнаруживает себя
4) 'мой сайт/test.php?width='+screen.width+'&height='+screen.height
это я указываю адрес серверной части своего счетчика и ПЕРЕДАЮ В С ПОМОЩЬЮ СТАНДАРТНЫХ ФУНКЦИЙ ЯВА-СКРИПТ ШИРИНУ И ВЫСОТУ МОНИТОРА!!! МОЖНО ПЕРЕДАТЬ ЕЩЕ РЯД ПАРАМЕТРОВ - ВОТ ИЗ-ЗА ЧЕГО ТАКИЕ МУКИ: КРОМЕ КАК ЯВА-СКРИПТОМ ВРОДЕ НЕЛЬЗЯ ПОЛУЧИТЬ ТАКИЕ "ХАРАКТЕРИСТИКИ ПОСЕТИТЕЛЯ"!!!!!!!!!!!!
5) ну и само собой - выполнение document.getElementById('counter').src='мой сайт/test.php?width='+screen.width+'&height='+screen.height ЗАПУСКАЕТ мой test.php, который имеет $_GET['width'] $_GET['height'] и много-много другого...
Ранее я хотела использовать событие onerror, но дело в том, что часто сваливалась в зацыкливание... боюсь, что все, что я пишу внутри тэга <img> "неправильно" и именно это было причиной. Ничего страшного - onload тоже выполняется автоматом.
Спустя 3 часа, 16 минут, 39 секунд (23.09.2010 - 16:24) Кэт написал(а):
А чтобы вы мне больше поверили, я предлагаю вам посмотреть один из простеньких "камешков", найденных по дороге.
Вставьте на страничку скриптик:
<script type="text/javascript">
document.write ("");
</script>
Будет "ничего", как и должно быть для функции document.write ("").
А теперь вставьте эту же функцию в тэг <img>, например, так
<img src="адрес любой реальной картинки" onclick=document.write ("")>
У вас загрузится картинка, а функция сработает по клику на ней; кликните!!!... ничего страшного не произойдет)))
А ведь кроме onclick есть еще всякие onmouseover (попробуйте!) и прочее.
Так что можно найти уйму своих применений для этого мгновенного исчезновения содержимого странички С ЭКРАНА
Вставьте на страничку скриптик:
<script type="text/javascript">
document.write ("");
</script>
Будет "ничего", как и должно быть для функции document.write ("").
А теперь вставьте эту же функцию в тэг <img>, например, так
<img src="адрес любой реальной картинки" onclick=document.write ("")>
У вас загрузится картинка, а функция сработает по клику на ней; кликните!!!... ничего страшного не произойдет)))
А ведь кроме onclick есть еще всякие onmouseover (попробуйте!) и прочее.
Так что можно найти уйму своих применений для этого мгновенного исчезновения содержимого странички С ЭКРАНА
Спустя 2 минуты, 55 секунд (23.09.2010 - 16:27) twin написал(а):
Можно адрес этого сайта? Чтобы случайно туда не попасть... Если они такое пропускают, мало ли еще там чего.
Спустя 3 минуты, 4 секунды (23.09.2010 - 16:30) Rand написал(а):
Кэт, это XSS чистой воды. Так можно и кукисы украсть.
Спустя 1 час, 53 минуты, 42 секунды (23.09.2010 - 18:24) Кэт написал(а):
Ребята! Я вовсе не хакер, а пушистый кролик!
Все это (счетчики посещений) давно и мощно проводят и яндекс, и рамблер, и..., и особенно его величество гугл. Неслышно и невидимо))
И многие блогерры давным-давно понаставили их себе (и молчат). А я решила сделать свой собственный и полумолчу).
Когда у меня заработал счетчик (только серверная часть), я с огромным удивлением обнаружила, что 80% ко мне захотят не регистрируясь в соцсети! И вообще, есть все-таки какое-то утешение, когда некто Аноним напишет тебе гадость при этом типа из Африки он, а ты видишь, что это твоя родная Жмеринка)
А об XSS первый раз слышу, не говорите мне ничего такого, а то начну узнавать...
Все это (счетчики посещений) давно и мощно проводят и яндекс, и рамблер, и..., и особенно его величество гугл. Неслышно и невидимо))
И многие блогерры давным-давно понаставили их себе (и молчат). А я решила сделать свой собственный и полумолчу).
Когда у меня заработал счетчик (только серверная часть), я с огромным удивлением обнаружила, что 80% ко мне захотят не регистрируясь в соцсети! И вообще, есть все-таки какое-то утешение, когда некто Аноним напишет тебе гадость при этом типа из Африки он, а ты видишь, что это твоя родная Жмеринка)
А об XSS первый раз слышу, не говорите мне ничего такого, а то начну узнавать...
Спустя 45 минут, 8 секунд (23.09.2010 - 19:09) twin написал(а):
Счетчик ты сама, своими руками ставишь на свой сайт. А если есть возможность затолкать JS на страницу чужого, это XSS и есть. Ты то пушистая, а вот кто то может и нет.
Куки пусть воруют, мне они с этого сайта что шли, что ехали. Но можно и похлеще сделать какушку.
Куки пусть воруют, мне они с этого сайта что шли, что ехали. Но можно и похлеще сделать какушку.