Перейти к содержимому


Пользователь месяца
Ixman Ixman 1-й за Октябрь
Очков активности: 693 0 тем, 33 сообщения, 14 баллов репутации
Сайт: o5cat.ru
ТОП самых активных за этот месяц
  • Фотография ShowPrint
    #1

    ShowPrint (ShowPrint.ru)
    Очков активности: 96 Вне конкурса за определение пользователя месяца

  • Фотография Ixman
    #2

    Ixman (o5cat.ru)
    Очков активности: 85.5 Вне конкурса за определение пользователя месяца

  • Фотография yuran
    #3

    yuran (yurbol.ru)
    Очков активности: 82.5 0 тем, 55 сообщений, 1 балл репутации

  • Фотография BLIK
    #4

    BLIK
    Очков активности: 51 Вне конкурса за определение пользователя месяца

  • Фотография Mandarin
    #5

    Mandarin
    Очков активности: 51 0 тем, 34 сообщения, 1 балл репутации

  • Фотография WGN
    #6

    WGN (worldgamenews.com)
    Очков активности: 45 Вне конкурса за определение пользователя месяца

  • Фотография pozitron123
    #7

    pozitron123
    Очков активности: 31.5 2 темы, 15 сообщений, 1 балл репутации

  • Фотография алексс
    #8

    алексс
    Очков активности: 27 2 темы, 12 сообщений, 1 балл репутации

  • Фотография Андрей WPMasterKZ
    #9

    Андрей WPMasterKZ (wpmaster.kz)
    Очков активности: 19.5 0 тем, 13 сообщений, 1 балл репутации

  • Фотография Scool
    #10

    Scool (stostory.ru)
    Очков активности: 19.5 3 темы, 4 сообщения, 1 балл репутации

  • Показать весь ТОП 10
Поддержите форум! =)
Апдейты
  • Яндекс ИКС: 31.10.2018
  • Яндекс выдача: 15.11.2018
Топ 5 участников по репутации


  • Закрытая тема Тема закрыта

Подключение внешнего JS-файла, сгенерированного с помощью PHP

#1 Power

Power
  • Неактивные
  • 24 сообщений
  • Репутация: 0
0

Отправлено 24 December 2010 - 17:55

Мне необходимо к странице подсоединить внешний php файл, который бы генирировал блок ссылок. Для этого я сделал следующее:
<script language="JavaScript" src="link.php"></script>
Структура файла link.php проста, он генирирует ссылки и с помощью document.write(); прописывает эти ссылки в документ.
Но на экран к сожалению ничего не выводится.
Если вместо РНР файла прикреплять JS файл, то все работает отлично.
<script language="JavaScript" src="link.js"></script>
Но мне надо, чтобы к странице подгружался именно РНР файл, т.к. он еще взаимодействует с БД.
Если послать заголовок типа:
header('Content-Type: text/javascript; charset=utf-8');
То это ничего не дает.
Пожалуйста, помогите? Как нужно правильно сделать?

 

 

  • 0

#2 admin

admin
  • Пользователь PRO
  • 5275 сообщений
  • Репутация: 55

Отправлено 24 December 2010 - 18:01

Power, зачем это всё выдумывать?
Чем вас не устраивает использования include() для вставки php кода с файла?
  • 0

#3 Power

Power
    Topic Starter
  • Неактивные
  • 24 сообщений
  • Репутация: 0

Отправлено 24 December 2010 - 18:06

Просто это код будет размещен на нескольких сайтах. Поэтому include не подходит.
  • 0

#4 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 24 December 2010 - 18:39

Файл PHP никак - сервер его просто не отдаст. Если бы все было так просто, то запросто можно было бы воровать скрипты и ломать сайты :)
  • 0


#5 yury

yury
  • Пользователь
  • 642 сообщений
  • Репутация: 188

Отправлено 24 December 2010 - 21:58

Power,
вы сами то видите, что делаете? Хотите подключить php-файл, а команду пишите для подключения Javascript.
Для включения php-файлов в ваш код используется команда (внимание, сюрприз!) на языке php:

<?php
include "link.php";
?>


И еще. Разберитесь, пожалуйста, в разнице между серверными языками (к коим относится php) и клиентскими языками (к которым относится Javascript):
разница между ними в том, что
* инструкции php написаны для веб-сервера и выполняются тогда, когда сервер формирует html файл согласно инструкциям php, ДО того как отослать этот файл клиенту.
* а инструкции Javascript предназначены для клиента, т.е. браузера (IE, FF, Opera и проч.) и, соответственно, выполняются, когда html файл уже пришел на компьютер пользователя.

Т.е. эти скрипты строго разнесены и по времени и по месту выполнения.


  • 0

#6 Power

Power
    Topic Starter
  • Неактивные
  • 24 сообщений
  • Репутация: 0

Отправлено 25 December 2010 - 12:48

yury, конечно спасибо за подробное объяснение. Все, что Вы написали я знаю.
Кстати Вы немного не правы, с помощью
<script language="JavaScript" src="путь до файла"></script>
Можно подключать любые файлы и JS и PHP и тд. Эта конструкция просто подгружает в текущий документ внешний файл.
Все рекламные коды работают именно по такому принципу.

ЗЫ: кстати я разобрался в чем была моя ошибка.
  • 0

#7 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 25 December 2010 - 13:49

А можно полюбопытствовать в чем была ошибка? Просто я впервые слышу, что можно с помощью конструкции javascript подключать любый файлы, а тем более PHP :) Ну не могу я поверить в то, что сервер вот запросто так отдает куда-то вне серверный код. Можно пример кода, в котором бы подключался файл PHP с другого домена и выводилось значение переменной подключаемого файла? С нетерпением жду ответа ;)
  • 0


#8 Power

Power
    Topic Starter
  • Неактивные
  • 24 сообщений
  • Репутация: 0

Отправлено 25 December 2010 - 15:26

Нет, естественно сервер не отдает исходный код РНР файла. Он выводит лишь только результат обработки, а после с помощью функции document.write(); это прописывается в основной документ. Вот и все.
Это полностью заменяет фрейм. Т.к. фрейм тоже может подгружать файлы.
ЗЫ: ошибка заключалась в том, что забыл поставить скобку }
  • 0

#9 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 25 December 2010 - 16:46

Я же просил пример кода :)
Ок, я сам набросал код, а Вы просто немного подправьте что надо в файле, в котором подключается внешний скрипт:
подключаемый файл inc.php, находящийся по адресу http://test1.ru/inc.php:
<?php
$a = "Это текст из подключаемого файла другого домена";
echo $a;
?>
Файл, в который подключаем - test.php - расположен просто на локалхосте - http://localhost/test.php
<html>
<head>
<script type="text/javascript" src="http://test1.ru/inc.php"></script>
</head>
<body>
<script type="text/javascript">
document.write(что же здесь надо прописать, чтобы вывести результат выполнения внешнего PHP-кода?);
</script>
</body>
</html>
Сделал по Вашему рецепту. Как при помощи метода document.write вывести значение переменной $a?
Опять же, с нетерпением жду ответа ;)
  • 0


#10 Power

Power
    Topic Starter
  • Неактивные
  • 24 сообщений
  • Репутация: 0

Отправлено 25 December 2010 - 18:32

Вы меня не поняли
Файл inc.php
<?php
$a = "Это текст из подключаемого файла другого домена";
echo "document.write('".$a."')";
?>
Файл к которому подключаем inc.php
<html>
<head>
<title>Пример</title>
</head>
<body>
<script type="text/javascript" src="http://test1.ru/inc.php"></script><!-- Здесь выводится значение переменной $a, тобиж на экране монитора мы увидем "Это текст из подключаемого файла другого домена" -->
</body>
</html>

  • 0

#11 gaaarfild

gaaarfild
  • Неактивные
  • 596 сообщений
  • Репутация: 0

Отправлено 25 December 2010 - 19:36

Как язык
<script type="[b]text/javascript[/b]" src="http://test1.ru/inc.php"></script>
может включать в себя код PHP?
Надо просто прямо в html делать <?php include("http://test1.ru/inc.php"); ?>
  • 0

#12 Power

Power
    Topic Starter
  • Неактивные
  • 24 сообщений
  • Репутация: 0

Отправлено 25 December 2010 - 19:55

Посмотрите код любой рекламной компании и вы увидите, что они подключают именно РНР
Вот например код Так.ру
<script type="text/javascript" charset="UTF-8" src="http://z680.takru.com/in.php?id=ХХХХХХ"></script>
Они подгружают файл in.php, передавая ему id пользователя
А вот содержимое файла in.php
document.writeln('<a href="http://www.tak.ru" class="takru"><b>а�аПаЛаАб�аЕаНаНаАб� а аЕаКаЛаАаМаА:</b></a>'+
'<br>-&nbsp;<a href="http://z680.takru.com/cl.php?key=1775181169616310564676280698489193632165201748995" class="takru" target=_blank onclick="java script: f92464(this);">New Casino4crazy, free games, а�аГб�аОаВб�аЕ аАаВб�аОаМаАб�..</a><br>-&nbsp;<a href="http://z680.takru.com/cl.php?key=1614181160316210564676282958789662507132189242194" class="takru" target=_blank onclick="java script: f92464(this);">а�аАаК аВб�аИаГб�аАб�б� аВ б�б�аЛаЕб�аКб�? а�аЕаГаКаО! ..</a><br>-&nbsp;<a href="http://z680.takru.com/cl.php?key=1773181169216310564676281790998537976063236139104" class="takru" target=_blank onclick="java script: f92464(this);">а аАаБаОб�аА аНаА аДаОаМб� аОб� 20 000 б�б�аБаЛаЕаЙ. а�аЕб�аЕаПаЕб�аАб�аКаА ..</a><br>-&nbsp;<a href="http://z680.takru.com/cl.php?key=1768182138616310564676285569508229163050454832567" class="takru" target=_blank onclick="java script: f92464(this);">а б�б�б�аКаИаЙ б�б�аП (б�аКаАб�аАб�б�)</a><br>-&nbsp;<a href="http://z680.takru.com/cl.php?key=1663181163416210564676286464582043580484996573768" class="takru" target=_blank onclick="java script: f92464(this);">аЂаОб�аГаОаВаЛб� аНаА аЄаОб�аЕаКб�. а�аОаНб�б� 30% аОб� б�б�аМаМб� аДаЕаПаОаЗаИ..</a><br>-&nbsp;<a href="http://z680.takru.com/cl.php?key=1580181158016310564676280482154174711612109698421" class="takru" target=_blank onclick="java script: f92464(this);">а�аАб�аАаБаОб�аАаЙ $10 аВ б�аАб�</a><br>-&nbsp;<a href="http://z680.takru.com/cl.php?key=1759182130616310564676285759145588125798751103268" class="takru" target=_blank onclick="java script: f92464(this);">а�аОаНб�б� Forex FBS аБаЕаЗ аПаОаПаОаЛаНаЕаНаИб� 5$! а�аОаНб�б� 25% ..</a>'+
''); function f92464(a96807) {a96807.href += "662467";}

C помощью функции document.writeln() ссылки прописываются в файл. И кто еще мне скажет, что я не прав.
  • 0

#13 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 25 December 2010 - 22:42

C помощью функции document.writeln() ссылки прописываются в файл. И кто еще мне скажет, что я не прав.

Я скажу... в частности, по примеру Так.ру - в показанном примере нет вообще кода PHP. Есть метод document.write, который принадлежит языку JavaScript, но уж никак не PHP и при помощи этого метода выводятся на экран ссылки... а при чем здесь PHP - не понимаю, честно говоря :) То, как Вы подключаете файл - это изврат (даже странно, что такое работает). Почему не сделать по нормальному все это - ссылки помещаем в файл javascript и его и подключаем:
подключаемый файл inc.js на сайте http://test1.ru/inc.js:
document.write("<a href='link1.php'>Link 1</a> <br /> <a href='link2.html'>Link 2</a>");
файл, куда подключаем test.php по адресу http://localhost/test.php:
<html>
<head>
<title>Пример</title>
<script type="text/javascript" src="http://test1.ru/inc.js"></script>
</head>
<body>
</body>
</html>

  • 0


#14 yury

yury
  • Пользователь
  • 642 сообщений
  • Репутация: 188

Отправлено 26 December 2010 - 09:24

Power,
* сравниваем две цитаты
первоначальный текст:

Мне необходимо к странице подсоединить внешний php файл, который бы генирировал блок ссылок. Для этого я сделал следующее:
<script language="JavaScript" src="link.php"></script>

через сутки, когда вы уже сами нашли свою ошибку:

Нет, естественно сервер не отдает исходный код РНР файла. Он выводит лишь только результат обработки, а после с помощью функции document.write(); это прописывается в основной документ.

* принимаем во внимание, что телепатией посетители этого форума, как правило, не обладают и не могут догадаться, что, на самом деле, вы хотели подключить не php-файл, а js-файл, который генерируется скриптом на php.
* принимаем во внимание, что содержимого link.php вы не привели, за исключением фразы "Структура файла link.php проста"

Внимание, вопрос: каким образом посетители данного форума (не имея возможности прочесть ни ваши мысли ни ваши php-файлы) могли вам помочь? ;)
  • 0

#15 Power

Power
    Topic Starter
  • Неактивные
  • 24 сообщений
  • Репутация: 0

Отправлено 26 December 2010 - 12:46

Почему не сделать по нормальному все это - ссылки помещаем в файл javascript

Потому, что ссылки динамически меняются с помощью РНР и записываются в БД. А JS, как вы должны знать, не работает с БД, поэтому приходится страдать такой фигней.

То, как Вы подключаете файл - это изврат (даже странно, что такое работает).

<script type="text/javascript" charset="UTF-8" src="http://z680.takru.com/in.php?id=ХХХХХХ"></script>
У так.ру работает же, почему у меня не должно работать :)
Они ведь тоже подключают РНР файл.

Внимание, вопрос: каким образом посетители данного форума (не имея возможности прочесть ни ваши мысли ни ваши php-файлы) могли вам помочь? ;)

Это моя ошибочка, сорри! Я просто плохо объяснил.
ЗЫ: давайте просто останемся при своих мнения и не будим мусорить в этом топике.
  • 0

#16 ZiTosS

ZiTosS
  • Неактивные
  • 5148 сообщений
  • Репутация: 8

Отправлено 29 December 2010 - 21:58

Power, топик разделил и перенес, тему закрою, т.к. вопрос решен.
  • 0

robot

robot
  • Пользователь PRO
  • 2652 сообщений
  • Репутация: 85


Похожие темы

  Название темы Автор Статистика Последнее сообщение

Оформление форума – IPBSkins.ru