Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Свой информер


Автор: abalich 18.7.2007, 09:26
Как мне сделать свой информер???
Ну допустим кто-то на сайте(своём) вставляет PHP код -- который отображает инфу которая прописана в каком-то файле на моем серваке и отображает инфу из моей SQL базы!!! smile 

Автор: Всемогущий 18.7.2007, 10:13
напрашивается использование XML,
но если нужно быстро то можно извлечь информацию из бд скриптом на вашем сервере,превратить её в массив
серилизовать и с помощю Curl послать другому скрипту.

Устраивает?

Автор: abalich 18.7.2007, 10:28
Всемогущий, можешь показать на примере -- !!!!!!!!

Автор: Всемогущий 18.7.2007, 11:00
Код

<?php
//первая часть самая лёгкая
$result=mysql_query('select now()');
while ($line = mysql_fetch_array($result)) {
      $vopros[]=$line;

 }
//получаем данные годные для передачи
$otvet=serialize ( $vopros ) ;
 //если есть возможность сжимаем
//$otvet= gzcompress($otvet, 9);
echo $otvet ;



?>

<?php
  //второй файл ,тот которому нужны чужие данные
  $cUrl = curl_init();
  $urlAddress = 'http://адрес';
  if (($html = urlGetContents($cUrl, $urlAddress)) === false) {
    print "Адрес <b>".$urlAddress."</b> в данный момент недоступен";
    } else {
    //если архивировали разархивируем
    //  $html=gzuncompress($html);
    $html=unserialize ( $html) ;
    print_r( $html);
    }
    curl_close($cUrl);
















    /**
     * This function get http file (GET - method)
     *http://forum.vingrad.ru/index.php?showtopic=163191&view=findpost&p=1193647
     *
     * @param    resource    $cUrl            Дескриптор возвращенный curl_init()
     * @param    string           $url           url для открытия
     * @param    int             $port        порт через который открывать (default 80)
     * @param    int             $timeout      timeout
     * @return string
     *
     * @access public
     */
function urlGetContents(& $cUrl, $url, $port = 80, $timeout = 5, $errCount = 1)
{
    curl_setopt($cUrl, CURLOPT_URL, $url);
    curl_setopt($cUrl, CURLOPT_PORT, $port);
    curl_setopt($cUrl,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($cUrl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)");
    curl_setopt($cUrl, CURLOPT_TIMEOUT, $timeout);
    $content = curl_exec($cUrl);
    if (curl_getinfo($cUrl,CURLINFO_HTTP_CODE) != 200) {
        return (($errCount < 2) ? urlGetContents($cUrl, $url, $port, $timeout, ++$errCount) : false);
    } else {
        return $content;
    }
}
?>

Автор: abalich 18.7.2007, 12:16
Всемогущий, --- спасибо!!

Автор: abalich 18.12.2007, 13:31
Всемогущий, Он мне такой еррор пишет
 Fatal error: Call to undefined function: curl_init() in z:\home\bets\www\get.php on line 3

Автор: Feldmarschall 18.12.2007, 13:36
Всемогущий, ты уверен, что для информеров следует что-то "посылать другому скрипту"?

abalich, давай-ка ты кроме махания транспарантами, сначала хотя бы пояснишь - как должен выглядеть информер, который ты хочешь. Желательно на примере. Можно дать ссылку.

Автор: abalich 18.12.2007, 14:07
Feldmarschall, информер - не как картинка (ОБЫЧНО), а как HTML код.
т.е. пользователь регистриуется на моем сайте и получает свой PHP код.

Он вставляет его в свою страницу на его сайте.
Этот код обращается к моему серверу (т.е. к другому РHP на моем серваке) и передает какой-то параметр
Например его логин и пароль.

А мой скрипт в зависимости от его логина и пароля выводим HTML код.

Таким образом на его сайте появляется HTML код.

Мне нужно показать только механизм. Остальное я сам сделаю.

Автор: Astraller 18.12.2007, 14:11
abalich, а может проще:
Скрипт который у клиента:
Код

<php
echo file_get_contents("http://[ваш_сайт].ru/script.php?id=10");
?>

А собственно основываясь на id ваш скрипт выдаст нужную инфу. Вариант не защищен но прост как черт.

Автор: Feldmarschall 18.12.2007, 14:11
php код:
Код

echo file_get_contents("http://site.ru/informer.php?password=parol");


Хотя лично я никогда не стану вставалять в свой сайт PHP код каких бы-то ни было других сайтов.

Автор: Astraller 18.12.2007, 14:15
Feldmarschall, собственно вы не "вставляете", а "выводите" результат действия скриптов, но никак не сами скрипты, вы же не include делаете. smile 

Автор: abalich 18.12.2007, 14:38
file_get_contents("http://site.ru/informer.php?password=parol");

В данный момент я и использую такой вариант.
Можно еще и по RSS выводить (но он мне не подхотит)

Но он Выводит все что выведет мой сайт.
Без возможности корректировки выводимой информации.
Я еще забыл написать, что выводимую инфу можно редактировать переменныйми например.
$COLOR = "#FF0000"; //Цвет ссылок



Автор: Astraller 18.12.2007, 14:40
abalich, 
Код

file_get_contents("http://site.ru/informer.php?password=parol&link_color=FF0000");

Высшая математика? smile 


Или как вариант - хранить в базе привязанные к id/login&password данные содержащие все настройки. И выдавать сформированный блок (как это делает AdSense)

Автор: Feldmarschall 18.12.2007, 14:43
Забавно.
Как эта тема развивается.

Сначала человек просит пример информера. Причем не уточнает - какой именно информер его интересует. Графический, Iframe, XML...
После того, как он уточняет свои желания и ему дают код, он объясняет, что этот код у него уже есть и он им пользуется.
Интересно - почему сразу нельзя описать ситуацию? Почему разу нельзя было написать про необходимость настройки?
Интересно - а сколько ещё будет таких уточнений?

Если требуется настройка, то отдавай XML.

Или придумай сам, свой собственный формат данных, с настройками.
Все равно никто, кроме тебя не знает - что, кроме $COLOR тебе надо настраивать.


Автор: abalich 18.12.2007, 15:04
Feldmarschall, Я просто тему НАЧАЛ писать давно.
И сейчас её решил продолжит, а не начанать новую.
---
Будет ДВА параметра 
$COLOR_LINK
$COLOR_TEXT

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)