Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Узнать имя сайта 
:(
    Опции темы
DiMoN_TD
Дата 13.10.2008, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 16.12.2007

Репутация: нет
Всего: нет



Добрый день!
Извините, если пишу не туда, но тем не менее проблема существует и мне кажется она решаема с помощью JS.
Итак. У меня есть скрипт на посторонем сервисе. Я клиенту даю небольшой кусок кода, по типу:

Код

<script type="text/javascript" src="http://somedomain.ru/script.js"></script>


Можно ли каким-то образом в этом script.js прописать некий код (какой?), чтобы узнать имя и адрес URL на котором этот скрипт запустился. И еще вопрос. Каким образом можно общаться между файлами *.js и *.php, т.е. в конечном итоге что мне нужно:

1) Клиент вставляет мою ссылку на скрипт.
2) При загрузке его странички загружается мой скрипт и уже там, в зависимости от название его сайта (т.е. я сначала должен получить имя его сайта, выполнить некий php-скрипт, и выдать результат в js-код) допустим сделать некое действие.

Буду признателен, если подскажете!
Заранее спасибо!

 smile 
PM MAIL   Вверх
ksnk
Дата 13.10.2008, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Вот так, например...
Код

<?php
header('Content-type: text/javascript; charset=windows-1251');
function pps(&$x){return empty($x)?'':$x;}
?>
alert('Hello! You\'r from "<?=preg_replace(
    array("/\r\n|\n|\r/s","/'/"),array('\n','"'),
    print_r(parse_url( pps($_SERVER["HTTP_REFERER"])),true)
)?>"');



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
DiMoN_TD
Дата 13.10.2008, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 16.12.2007

Репутация: нет
Всего: нет



ksnk, 
Ну. тоже выход, но мне немного не то нужно.
Итак.
Сделал файл script.php:

Код

<?
$name = "somename";

if ($name){
$script = <<<HERE

<script type="text/javascript">
    alert("$name");
</script>

HERE;

echo $script;
}
?>


На стороне клиента выдал код:

Код

<script type="text/javascript" src="http://somdomain.ru/script.php"></script>


Так вот.. У клиента скрипт не срабатывает и не выдает алерта. Хотя допустим у себя на сайте запускаю этот скрипт и алерт выдается. В чем тут может быть проблема?

Заранее спасибо!
PM MAIL   Вверх
bars80080
Дата 14.10.2008, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



может быть проблема в разных доменах и политике безопасности?
PM MAIL WWW   Вверх
ksnk
Дата 14.10.2008, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



DiMoN_TD, Предлагается поискать несколько принципиальных отличий моего скрипта от этого smile


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
DiMoN_TD
Дата 14.10.2008, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 16.12.2007

Репутация: нет
Всего: нет



ksnk, 
нет нет. у тебя все ок, но видишь я ниже описал проблему, что у клиента данный скриптне груузится - хз почему (
bars80080, 
та вроде ничего такого не должно блокировать.
PM MAIL   Вверх
ksnk
Дата 14.10.2008, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



DiMoN_TD, Что будет, если вызвать javaScript файл с таким содержимым
Код

<script type="text/javascript">
    alert("$name");
</script>

и что будет, если содержимое такое
Код

    alert("$name");

?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
DiMoN_TD
Дата 14.10.2008, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 16.12.2007

Репутация: нет
Всего: нет



ksnk, 
    Никакой разницы нет. Но на Стороне Клиента, когда я ему включаю :

Код

<script type="text/javascript" src="http://somdomain.ru/script.php"></script>


Данный скрипт не работает!

Вот в чем проблема.
Я и спрашиваю - почему такое случается?
PM MAIL   Вверх
sTa1kEr
Дата 14.10.2008, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Товарищ не понимает, товарищу надо объяснить (с)

DiMoN_TD, разница есть, если вы не видите ее по посту ksnk, то вот вам еще два примера JS кода для сравнения:
Код

eval('<script type="text/javascript">alert("$name");</script>');

Код

eval('alert("$name");');


PM MAIL   Вверх
DiMoN_TD
Дата 14.10.2008, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 16.12.2007

Репутация: нет
Всего: нет



ksnk, 
Хм.. а хотя ведь разница есть.
Сегодня попробую на деле это.

Добавлено через 44 секунды
sTa1kEr, 
дада.. туплю smile
По идее это должно заработать! smile
PM MAIL   Вверх
DiMoN_TD
Дата 14.10.2008, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 16.12.2007

Репутация: нет
Всего: нет



Да, именно так все и было smile
Скрипт заработал - всем спасибо! smile
PM MAIL   Вверх
DiMoN_TD
Дата 14.10.2008, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 16.12.2007

Репутация: нет
Всего: нет



Приветствую Вас.
По названию темы Вы наверное подумали, что тут все просто. А вот и нет!
Какая у меня получается ситуация:

Тут задействованы три лица:

1) Сервисная сторона
2) Вебмастер
3) Клиент.

Так вот. Сервисная сторона выдает Вебмастеру некий кусок кода (который генерируется соответственно на стороне моего сервиса). Вот подобный код:


Код

<script type="text/javascript" src="http://myservice.ru/script/"></script>



Так вот. Этот код Вебмастер устанавливает себе на сайт. Теперь моя задача. Узнать имя сайта Вебмастера, у которого запустился мой скрипт, это делается впринципе на моей стороне легко : $_SERVER["HTTP_REFERER"].
А проблема состоит в том, что мне нужно узнать с какого сайта зашел Клиент на сайт Вебмастера. Но тут мой скрипт не сможет узнать, т.к. для него рефералом является сайт Вебмастера. Так вот хотел спросить, можно ли с помощью JS+PHP каким-то образом узнать имя сайта, с которого я пришел на сайт Вебмастера?

Заранее благодарю за ответ. Я думаю над этим вопросом уже не раз бились в поисках правильного ответа, но к сожалению я ничего путного в инете не нашел

PM MAIL   Вверх
ksnk
Дата 14.10.2008, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



DiMoN_TD, Ну, тот-же реферер, только на JavaScript'е
Код

<?php
function pps(&$x){return empty($x)?'':$x;}

if(!empty($_GET['banner'])){
  header('Content-type: image/gif');

  readfile('banner.gif'); 
  // пишем в базу
  // $_GET['ref'] и $_SERVER["HTTP_REFERER"]
  exit ;
}

header('Content-type: text/javascript; charset=windows-1251');
?>
document.write('<div><img src="http://myservice.ru/script/?banner="'+Math.random()+'&ref='+encodeURIComponent(document.referrer)+'" alt=""></div>');



Это сообщение отредактировал(а) ksnk - 14.10.2008, 17:48


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
sTa1kEr
Дата 14.10.2008, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



DiMoN_TD, для каждого вебмастера генерировать уникальный URL и по нему и определять на какой сайт зашел посетитель.
На пример для конкретного вебмастера присвоить id, тогда URL будет http://myservice.ru/script/?id=1234567890 и в самом скрипте соответственно:
Код

<?php
$id = intval($_GET['id']);
?>

var id = <?= $id ?>;

// ... дальше везде в запросах подставляем этот id


Добавлено через 3 минуты и 1 секунду
Я бы настоятельно советовал использовать реферер исключительно для сбора статистических данных, но не в коем случае не завязывать на нем логику, т.к. реферер - это крайне не надежные данные.

Это сообщение отредактировал(а) sTa1kEr - 14.10.2008, 17:49
PM MAIL   Вверх
DiMoN_TD
Дата 15.10.2008, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 16.12.2007

Репутация: нет
Всего: нет



sTa1kEr, 
Я тоже об этом подумал, и решил сделать именно по такой схеме.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1915 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.