Как получить информацию о сервере из xml-запроса от клиента - PullRequest
0 голосов
/ 11 декабря 2011

Могу ли я получить информацию, с какого веб-сайта поступил запрос на чтение XML-файла на моем веб-сервере, и вставить в базу данных эту информацию из запроса?

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


"вслепую" Я пытаюсь сделать с .htaccess, но ничего не получилось :( когда я вызываю text.php:

<?php
$myFile = "save.txt";
$fh = fopen($myFile, 'a') or die("can't open file");
$stringData = $_SERVER['REMOTE_ADDR']." : ".$_SERVER['REQUEST_TIME']."\n";

fwrite($fh, $stringData);
fclose($fh);

 $xml = file_get_contents('test.xml');
    header("Content-Type:text/xml");  
    echo $xml;
?>

он положил мне информацию о файле save.txt, с которого идет IP-адрес. Могу ли я узнать, с какого веб-адреса поступает звонок? И как исправить, чтобы вызвать XML-файл вместо php-файла?

1 Ответ

2 голосов
/ 11 декабря 2011

возможно, вы хотите попробовать использовать суперглобальный $ _SERVER ['HTTP_REFERER'].Попробуйте повторить его, чтобы увидеть, что он содержит, и вы поймете, как он работает.Поместите ссылку на этот скрипт на форуме или в другом домене и нажмите, чтобы увидеть результаты.

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

РЕДАКТИРОВАТЬ:

Я вижу, что у вас есть XMLфайл.Хорошо, вы должны работать с htaccess и обрабатывать этот запрос с помощью другого сценария, и в этом сценарии используйте $ _SERVER ['HTTP_REFERER'].

ИЛИ: сделайте это php-файлом, который будет запрашиваться.И сделайте все, чтобы сохранить ту информацию, которая вам нужна, например, домен реферера, и в конце файла прочитать то, что вам нужно (fread, file_get_contents, file и т. Д.), Настоящий файл XML и вывести его ... еслиу вас есть проблемы с этим, попробуйте сначала установить заголовок, используя header (): http://www.php.net/manual/en/function.header.php, чтобы он выглядел (и чувствовал) как настоящий xml-файл.Я думаю, что правильный заголовок будет text / xml или лучше: application / rss + xml.

<?php
    file_put_contents('save.txt', $_SERVER['HTTP_REFERER'].PHP_EOL);
    $xml = file_get_contents('test.xml');
    header('application/rss+xml');
    echo $xml;
?>

сохраните файл как test.php

, затем создайте другой файл someonewhousethescript.html, поместите его в ту же папку, вставьте в него ссылку на test.php (после того, как выВ случае с .htaccess вы должны связаться непосредственно с test.xml).

и перейти к mrakodol.info/someonewhousethescript.html, щелкнуть ссылку

и посмотреть в save.txt.Там вы, скорее всего, увидите mrakodol.info/someonewhousethescript.html, это то, что, я думаю, вы хотели.

И если вы действительно хотите сохранить расширение до .xml, вы всегда можете использовать apache mod-rewrite.Если необходимо, я предоставлю образец.

Что касается расширения, то создайте новый файл в этой папке (корневая папка сайта, как кажется) и назовите его .htaccess, и в нем напишитеследующие строки:

RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^GET$ [NC]
RewriteRule test.xml test.php [NC]
...