Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: выполнить пхп-код внешнего файла. с перезагрузской страницы
 
 автор: cyklop   (06.02.2010 в 14:02)   письмо автору
 
 

помогите пожалуйста решить такую проблему:
имеется html-страница. при загрузке её(в тэг body можно записать событие onload например) необходимо чтобы в пхп-файлы выполнился некоторый простейший код(передавать переменные не требуется).

у меня ход мысли примерно такой:
в начале html-файла подключить js-фаил(<script language="JavaScript" type="text/javascript" src="123.js"></script>). в этом фаиле написать js-функцию, которая будет пинать нужный мне пхп-файл. в вышеуказанном событии onclick вызывать эту функцию...

самому реализовать эту схему не получается, да и не уверен возможно ли это в принципе.

буду благодарен за любые подсказки. заранее спасибо

ps
что пхп выполняется на стороне сервера знаю

  Ответить  
 
 автор: elenaki   (06.02.2010 в 14:42)   письмо автору
 
   для: cyklop   (06.02.2010 в 14:02)
 

так по onload или по onclick?
посмотрите, как встраивается счетчик посещений на РНР на страницу (через Java-script)

  Ответить  
 
 автор: cyklop   (06.02.2010 в 17:04)   письмо автору
 
   для: 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 -->


здесь в атрибуте источника прописан путь к какому то файлу. но это не пхп-файл. я пробовал воспроизвести такую же структуру и обратиться к моему пхп-файлу. такой код не сработал. в чем ошибка можете подсказать? может я что то в принципе не такпонял?

  Ответить  
 
 автор: elenaki   (06.02.2010 в 17:11)   письмо автору
 
   для: 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 делаете, что хотите...

  Ответить  
 
 автор: АЯ   (06.02.2010 в 22:32)   письмо автору
 
   для: 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);
}

  Ответить  
 
 автор: cyklop   (07.02.2010 в 00:31)   письмо автору
 
   для: АЯ   (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("запись в БД");
?>


подскажите в чем ошибка...

  Ответить  
 
 автор: АЯ   (07.02.2010 в 03:17)   письмо автору
 
   для: cyklop   (07.02.2010 в 00:31)
 

Ошибок здесь ДВЕ.
Обе - мои.

Во-первых, я имел в виду ДВА РАЗНЫХ способа.
То есть можно использовать или теги, или HTTP-запрос.
А вы сделали и то, и другое :-)

Во-вторых, во втором способе я пропустил 2 символа.
Надо было H.send (null), а я написал просто send (null)


В качестве извинения за мои ошибки держите две ссылки, кои я специально только что сделал для вас.
Первый способ - запуск PHP-файла с использованием невидимого тега <IFRAME>
Второй способ - запуск PHP-файла с использованием HTTP-запроса.

В обоих случаях запускаемый PHP-файл делает запись в логфайле.
Код этого PHP-файла есть на обеих страницах.
Ссылка для просмотра логфайла также есть на каждой странице.

  Ответить  
 
 автор: cyklop   (07.02.2010 в 13:19)   письмо автору
 
   для: АЯ   (07.02.2010 в 03:17)
 

о! огромное всем спасибо! код работает

у меня самого не хватило бы терпения так подробно всё объяснить)

  Ответить  
 
 автор: GeorgeIV   (07.02.2010 в 11:00)   письмо автору
 
   для: cyklop   (06.02.2010 в 14:02)
 

Если вы формируете эту страницу, что мешает по запросу этой страницы перед ее отдачей сначала выполнить этот пхп-код и потом отдать страницу?

  Ответить  
 
 автор: cyklop   (07.02.2010 в 13:20)   письмо автору
 
   для: GeorgeIV   (07.02.2010 в 11:00)
 

есть причины. сам код находится в БД на удаленной машине. пхп-интерпретатор там не установлен

  Ответить  
 
 автор: GeorgeIV   (08.02.2010 в 10:36)   письмо автору
 
   для: cyklop   (07.02.2010 в 13:20)
 

Какая разница! Перед отдачей страницы тянете оттуда код и исполняете

  Ответить  
 
 автор: cyklop   (08.02.2010 в 19:14)   письмо автору
 
   для: GeorgeIV   (08.02.2010 в 10:36)
 

нельзя, там какая то совсем хитрая для меня система. но такой простой способ не сработает

  Ответить  
 
 автор: АЯ   (08.02.2010 в 21:26)   письмо автору
 
   для: GeorgeIV   (07.02.2010 в 11:00)
 

Для GeorgeIV
Поначалу и я задался таким же вопросом, но потом представил себе - а вдруг необходимо различить две возможные ситуации: передачу страницы в окно браузера и иной способ (например, браузерное сохранение файла). Перечитав начальное сообщение и увидев слова "в тэг body можно записать событие onload", понял, что, видимо, автору это и надо.

  Ответить  
 
 автор: GeorgeIV   (09.02.2010 в 18:33)   письмо автору
 
   для: АЯ   (08.02.2010 в 21:26)
 

Все равно мне непонятно, если можно стянуть и запустить этот файл после отправки клиенту хиртрым запросом от клиента, почему нельзя это сделать сразу?

  Ответить  
 
 автор: АЯ   (09.02.2010 в 20:02)   письмо автору
 
   для: GeorgeIV   (09.02.2010 в 18:33)
 

Повторяю.
Мне, положим, надо знать количество клиентов, РЕАЛЬНО ОТКРЫВШИХ И ПОЛНОСТЬЮ ЗАГРУЗИВШИХ мою страницу В ОКНЕ БРАУЗЕРА.
Никакой серверный скрипт, посланный ДО отправки страницы по запросу, или ВМЕСТЕ с этой отправкой, или СРАЗУ ПОСЛЕ отправки НЕ МОЖЕТ ЗНАТЬ - что будет делать клиент с получаемым файлом.
Мей би, клиент не дождется полной загрузки и перейдёт на кроватка.ру,
м.б. клиент сохранял мою страницу как ссылку,
м.б. у клиента отключится интернет в процессе загрузки моего файла,
м.б. он отключит вообще свой комп и вовсе не увидит страницы,
м.б. HTTP-запрос послан серверной программой...

Только скрипт, запускаемый из тела браузерной страницы, может однозначно свидетельствовать - страница отобразилась в браузере.

Даже если клиент стянул файл хитрым способом и открыл потом, то я получу информацию о том - не "когда он стянул", а КОГДА он его ОТКРЫЛ в браузере. Что мне и надо было.

  Ответить  
 
 автор: GeorgeIV   (10.02.2010 в 10:46)   письмо автору
 
   для: АЯ   (09.02.2010 в 20:02)
 

ок, понятно

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования