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

Форум PHP

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

 

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

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

тема: Вставка контента с другого сайта
 
 автор: Гость   (30.05.2005 в 12:17)
 
 

Есть сайт xxx.ru и yyy.ru.
предположим на сайте xxx.ru я создаю страницу index.php и хочу чтобы брался контект со страницы yyy.ru/index.php.
Да, я могу вставить код
include "http://yyy.ru/index.php";
. Это работает, но мне необходимо передать некие параметры на страницу http://yyy.ru/index.php и исходя из этого построить какой-то другой динамический контент. Непосредственно передача параметров методом GET работает, но необходимо чтобы было типа вот такого

$perem1 = "1";
$perem2 = "2";
include "http://yyy.ru/index.php";


Чтобы две переменные $perem1 и $perem2 были видны на странице http://yyy.ru/index.php как переменные.

Возможно ли такое?

Через сокеты вообще не пойму как передать переменные.

Подскажите пожалуйста...

   
 
 автор: denvor   (30.05.2005 в 12:58)   письмо автору
 
   для: Гость   (30.05.2005 в 12:17)
 


$perem1 = "1"; 
$perem2 = "2"; 
include "http://yyy.ru/index.php?perem1=$perem1&perem2=$perem2";


если я правильно понял...

   
 
 автор: cheops   (30.05.2005 в 13:04)   письмо автору
 
   для: denvor   (30.05.2005 в 12:58)
 

А вообще да, передайте их через параметры...

   
 
 автор: cheops   (30.05.2005 в 13:02)   письмо автору
 
   для: Гость   (30.05.2005 в 12:17)
 

Как работать с сокетами описывается в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=600
Вот обращение к сайту www.xxx.ru/index.php
<?php 
  $fp 
fsockopen("www.xxx.ru"80$errno$errstr30); 
  if (!
$fp
  { 
    echo 
"$errstr ($errno)<br />\n"
  } else { 
    
$out "GET /index.php HTTP/1.1\r\n"
    
$out .= "Host: www.xxx.ru\r\n"
    
$out .= "Connection: Close\r\n\r\n"

    
fwrite($fp$out); 
    while (!
feof($fp)) { 
        echo 
fgets($fp128); 
    } 
    
fclose($fp); 
  } 
?> 

Для того, чтобы передать параметры m=1&n=2 их следует доабавить после метода GET
<?php 
  $fp 
fsockopen("www.xxx.ru"80$errno$errstr30); 
  if (!
$fp
  { 
    echo 
"$errstr ($errno)<br />\n"
  } else { 
    
$out "GET /index.php?m=1&n=2 HTTP/1.1\r\n"
    
$out .= "Host: www.xxx.ru\r\n"
    
$out .= "Connection: Close\r\n\r\n"

    
fwrite($fp$out); 
    while (!
feof($fp)) { 
        echo 
fgets($fp128); 
    } 
    
fclose($fp); 
  } 
?>

   
 
 автор: Гость   (03.06.2005 в 12:10)
 
   для: cheops   (30.05.2005 в 13:02)
 

Предположим я использую file_get_contents, include или сокеты. Могу ли я на сайте yyy.ru узнать с какого сайта был запрос?

   
 
 автор: cheops   (03.06.2005 в 12:16)   письмо автору
 
   для: Гость   (03.06.2005 в 12:10)
 

Т.е. отличить сокет или скрипт от обычного посетителя? Или имеется ввиду что-то другое?

   
 
 автор: Гость   (03.06.2005 в 12:45)
 
   для: cheops   (03.06.2005 в 12:16)
 

код вот такой в скрипте xxx.ru/index.php

include "yyy.ru/index.php";


я хочу узнать yyy.ru/index.php с какого сайта был запрос. Т.е. в конечном счете мне нужно получить, что запрос был с сайта xxx.ru

   
 
 автор: cheops   (03.06.2005 в 12:57)   письмо автору
 
   для: Гость   (03.06.2005 в 12:45)
 

Узнать точный адресе сайта вряд ли получится.
В первую очередь следует проверить элемент суперглобального массива
$_SERVER["HTTP_USER_AGENT"]

Если там будет что-то вроде PHP или не будет ничего, значит к скрипту обращается другой сервер (но эта строка может подделываться, поэтому гараний тут быть не может).
Затем следует узнать IP-адрес, обратившегося сервера
$_SERVER["REMOTE_ADDR"]

и восстановить его домен при помощи функции gethostbyaddr
<?php
  gethostbyaddr
($_SERVER["REMOTE_ADDR"]);
?>

Это решение сработает не всегда и не со всеми, но возможно поможет вам.

   
Rambler's Top100
вверх

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