|
|
|
| помогите пожалуйста решить такую проблему:
имеется html-страница. при загрузке её(в тэг body можно записать событие onload например) необходимо чтобы в пхп-файлы выполнился некоторый простейший код(передавать переменные не требуется).
у меня ход мысли примерно такой:
в начале html-файла подключить js-фаил(<script language="JavaScript" type="text/javascript" src="123.js"></script>). в этом фаиле написать js-функцию, которая будет пинать нужный мне пхп-файл. в вышеуказанном событии onclick вызывать эту функцию...
самому реализовать эту схему не получается, да и не уверен возможно ли это в принципе.
буду благодарен за любые подсказки. заранее спасибо
ps
что пхп выполняется на стороне сервера знаю | |
|
|
|
|
|
|
|
для: cyklop
(06.02.2010 в 14:02)
| | так по onload или по onclick?
посмотрите, как встраивается счетчик посещений на РНР на страницу (через Java-script) | |
|
|
|
|
|
|
|
для: elenaki
(06.02.2010 в 14:42)
| | onload.
смотрел. вот к пример код счетчика рамблера.
<!-- begin of Top100 code -->
<script id="top100Counter" type="text/javascript" src="http://cnt.rambler.ru/top100.jcn?1849301"></script><noscript><a href="http://top100.rambler.ru/home?id=1849301" target="_blank"><img src="http://cnt.rambler.ru/top100.cnt?1849301" alt="Rambler's Top100" width="81" height="63" border="0" /></a></noscript>
<!-- end of Top100 code -->
|
здесь в атрибуте источника прописан путь к какому то файлу. но это не пхп-файл. я пробовал воспроизвести такую же структуру и обратиться к моему пхп-файлу. такой код не сработал. в чем ошибка можете подсказать? может я что то в принципе не такпонял? | |
|
|
|
|
|
|
|
для: cyklop
(06.02.2010 в 17:04)
| |
<!-- Web-Analiser Pro (Commercial) -->
<script language="javascript" type="text/javascript"><!--
wajs="1.0";wad=document;wan=navigator;war=escape(parent.document.referrer);
wad.cookie="wa=1";
wac=2;if(wad.cookie) {wac=1;}waf=2;if(self!=top) {waf=1;}
want=2;if(wan.appName.substring(0,2)=="Mi") {want=1;}
//--></script><script language="javascript1.1" type="text/javascript"><!--
wajs="1.1";waj=2;if(wan.javaEnabled()) {waj=1;}
//--></script><script language="javascript1.2" type="text/javascript"><!--
wajs="1.2";was=screen;if(want==1) {wacol=was.colorDepth;}
else {wacol=was.pixelDepth;} waw=was.width;wah=was.height;
watm=(new Date()).getTimezoneOffset();
watl=escape(wad.title);
//--></script><script language="javascript1.3" type="text/javascript"><!--
wajs="1.3";
//--></script><script language="javascript" type="text/javascript"><!--
escape(document.referrer)
wa="<img border=0 width=1 height=1 src=http://www.сайт.com/pro/stats.php";
wa+="?wajs="+wajs;wa+="&war="+war;wa+="&wac="+wac;
wa+="&waf="+waf;wa+="&waj="+waj;wa+="&wacol="+wacol;
wa+="&watl="+watl;wa+="&watm="+watm;
wa+="&waw="+waw;wa+="&wah="+wah;wa+=">";wad.write(wa);
//--></script><noscript>
<img border="0" width="1" height="1" src="http://www.сайт.com/pro/stats.php" alt="">
</noscript>
<!-- Web-Analiser Pro -->
|
а в stats.php делаете, что хотите... | |
|
|
|
|
|
|
|
для: cyklop
(06.02.2010 в 14:02)
| | 1. В конце страницы (перед закрывающим тегом </BODY>) поместите любой из трёх перечисленных тегов:
<iframe style="display: none" src="your_file.php"></iframe>
<img style="display: none" src="your_file.php">
<input type="image" style="display: none" src="your_file.php">
|
2. В скриптовом блоке поместите функцию, коя осуществит HTTP-запрос:
onload = function ()
{
var H = (navigator.appName == 'Microsoft Internet Explorer') ?
(new ActiveXObject ('Microsoft.XMLHTTP')) : (new XMLHttpRequest ());
H.open ('get', 'your_file.php'); send (null);
}
|
| |
|
|
|
|
|
|
|
для: АЯ
(06.02.2010 в 22:32)
| | извиняюсь за тупизм, но примерно вот такой код, написанный мной, отказывается работать
index.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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>123</title>
</head>
<body>
<script type="text/javascript">
onload = function ()
{
var H = (navigator.appName == 'Microsoft Internet Explorer') ? (new ActiveXObject ('Microsoft.XMLHTTP')) : (new XMLHttpRequest ());
H.open ('get', 'http://FDGDFGDGD/stats.php'); send (null);
}
</script>
<!-- содержание страницы-->
<iframe style="display: none" src="http://FDGDFGDGD/stats.php"></iframe>
</body>
</html>
|
stats.php
<?
echo("запись в БД");
?>
|
подскажите в чем ошибка... | |
|
|
|
|
|
|
|
для: cyklop
(07.02.2010 в 00:31)
| | Ошибок здесь ДВЕ.
Обе - мои.
Во-первых, я имел в виду ДВА РАЗНЫХ способа.
То есть можно использовать или теги, или HTTP-запрос.
А вы сделали и то, и другое :-)
Во-вторых, во втором способе я пропустил 2 символа.
Надо было H.send (null), а я написал просто send (null)
В качестве извинения за мои ошибки держите две ссылки, кои я специально только что сделал для вас.
Первый способ - запуск PHP-файла с использованием невидимого тега <IFRAME>
Второй способ - запуск PHP-файла с использованием HTTP-запроса.
В обоих случаях запускаемый PHP-файл делает запись в логфайле.
Код этого PHP-файла есть на обеих страницах.
Ссылка для просмотра логфайла также есть на каждой странице. | |
|
|
|
|
|
|
|
для: АЯ
(07.02.2010 в 03:17)
| | о! огромное всем спасибо! код работает
у меня самого не хватило бы терпения так подробно всё объяснить) | |
|
|
|
|
|
|
|
для: cyklop
(06.02.2010 в 14:02)
| | Если вы формируете эту страницу, что мешает по запросу этой страницы перед ее отдачей сначала выполнить этот пхп-код и потом отдать страницу? | |
|
|
|
|
|
|
|
для: GeorgeIV
(07.02.2010 в 11:00)
| | есть причины. сам код находится в БД на удаленной машине. пхп-интерпретатор там не установлен | |
|
|
|
|
|
|
|
для: cyklop
(07.02.2010 в 13:20)
| | Какая разница! Перед отдачей страницы тянете оттуда код и исполняете | |
|
|
|
|
|
|
|
для: GeorgeIV
(08.02.2010 в 10:36)
| | нельзя, там какая то совсем хитрая для меня система. но такой простой способ не сработает | |
|
|
|
|
|
|
|
для: GeorgeIV
(07.02.2010 в 11:00)
| | Для GeorgeIV
Поначалу и я задался таким же вопросом, но потом представил себе - а вдруг необходимо различить две возможные ситуации: передачу страницы в окно браузера и иной способ (например, браузерное сохранение файла). Перечитав начальное сообщение и увидев слова "в тэг body можно записать событие onload", понял, что, видимо, автору это и надо. | |
|
|
|
|
|
|
|
для: АЯ
(08.02.2010 в 21:26)
| | Все равно мне непонятно, если можно стянуть и запустить этот файл после отправки клиенту хиртрым запросом от клиента, почему нельзя это сделать сразу? | |
|
|
|
|
|
|
|
для: GeorgeIV
(09.02.2010 в 18:33)
| | Повторяю.
Мне, положим, надо знать количество клиентов, РЕАЛЬНО ОТКРЫВШИХ И ПОЛНОСТЬЮ ЗАГРУЗИВШИХ мою страницу В ОКНЕ БРАУЗЕРА.
Никакой серверный скрипт, посланный ДО отправки страницы по запросу, или ВМЕСТЕ с этой отправкой, или СРАЗУ ПОСЛЕ отправки НЕ МОЖЕТ ЗНАТЬ - что будет делать клиент с получаемым файлом.
Мей би, клиент не дождется полной загрузки и перейдёт на кроватка.ру,
м.б. клиент сохранял мою страницу как ссылку,
м.б. у клиента отключится интернет в процессе загрузки моего файла,
м.б. он отключит вообще свой комп и вовсе не увидит страницы,
м.б. HTTP-запрос послан серверной программой...
Только скрипт, запускаемый из тела браузерной страницы, может однозначно свидетельствовать - страница отобразилась в браузере.
Даже если клиент стянул файл хитрым способом и открыл потом, то я получу информацию о том - не "когда он стянул", а КОГДА он его ОТКРЫЛ в браузере. Что мне и надо было. | |
|
|
|
|
|
|
|
для: АЯ
(09.02.2010 в 20:02)
| | ок, понятно | |
|
|
|