Форум SAPE.RU

Форум SAPE.RU (http://forum.sape.ru/index.php)
-   Разработка и сопровождение сайтов (http://forum.sape.ru/forumdisplay.php?f=29)
-   -   включение удалённого файла (http://forum.sape.ru/showthread.php?t=9838)

Asterada 07.03.2008 00:37

включение удалённого файла
 
Есть такая проблема! Существует некий файл xxx.php, который содержит в себе обычные текстовые ссылки и находится на сайте №1. Существует некий сайт №2, на котором стоит DLE. Необходимо, чтобы DLE отображала файл xxx.php с сайта №1 на своих страницах. Как это сделать?

Stri4 07.03.2008 00:47

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

Где-то так наверно.

serviceru 07.03.2008 00:50

А вот и нет!

Asterada 07.03.2008 00:51

вобще-то вставка выглядит так

<?php
include ("http://xx.ru/xxx.php");
?>

Но чтото не хочет работать

serviceru 07.03.2008 00:59

На DLE шаблоны (а это нужно вписать в шаблон) написаны на html и html не поймет вас если вы это напишете, а вот движок у DLE yfисан на php!
Эта проблема которая написана в первом посте случилась со мной! Так вот чтобы шаблон dle выполнял php код нужно в файле index.php самого движка найти строку:
Код:

echo $tpl->result['main'];
и заменить ее на:
Код:

eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php ');
после этого мы сможем в шаблон dle (в файл main.tpl) включить следующий код:
Код:

<? include("http://xxx.ru/xxx.php"); ?>
При этом шаблон начинает понимать это подключени, но проблема в том что вылезает ошибка что типо файл не может быть подключен, или чтото вроде этого! Ну вот собственно сама ошибка:
Код:

Warning: include(): URL file-access is disabled in the server configuration in C:\AppServ\www\DLE\index.php(195) : eval()'d code on line 320 Warning: include(http://web-max.ru/001001.php): failed to open stream: no suitable wrapper could be found in C:\AppServ\www\DLE\index.php(195) : eval()'d code on line 320 Warning: include(): Failed opening 'http://web-max.ru/001001.php' for inclusion (include_path='.;C:\php5\pear') in C:\AppServ\www\DLE\index.php(195) : eval()'d code on line 320
Заранее благодарен за помощь!

tpnetman 07.03.2008 01:01

Удаленно нельзя никак:( но если оба домена на одном хостинге и у Вас в одном профиле находятся оба сайта - то в принципе возможно

Например

ввв.сайт1.ру находится в /сайт1/
ввв.сайт2.ру находится в /сайт2/

то скрипт с сайт1 можно проинклюдить в сайт2 как include "../сайт1/ххх.пхп"

Asterada 07.03.2008 01:04

да уж прям нельзя... я жутко в этом сомневаюсь...

tpnetman 07.03.2008 01:06

Цитата:

Сообщение от asterada (Сообщение 97878)
да уж прям нельзя... я жутко в этом сомневаюсь...

так бы все друг у друга конфигурационные файлы к движкам воровали бы:)

serviceru 07.03.2008 01:08

ну для таких вещей как конфигурационные файлы есть защита!

Stri4 07.03.2008 01:11

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

Stri4 07.03.2008 02:17

В php крнфигурации сервера этот параметр -
allow_url_fopen
должен быть в состоянии "on"

V!rus 07.03.2008 12:31

На сайте N1 выставляем права 777 на файл. В файле на сайте N2 вставляем <?php
include("http://site/xxx.php");
?>
все
----------
Меня за такое хостер наказывал, т.к. с моим трафиком и без кэширования вызывало очень большую нагрузку на сервер. Скриптик который вставляет и кэширует могу продать :)

Stri4 07.03.2008 13:13

Цитата:

Сообщение от V!rus (Сообщение 98041)
На сайте N1 выставляем права 777 на файл...

Это не обязательно, если allow_url_fopen "off", то никакие права не помогут, а файл инклудится и с правами 644.

V!rus 07.03.2008 14:24

ну я по крайней мере так вставлял..

MadGreen 07.03.2008 15:07

объясняю как делать правильно:
1. Файл должен быть доступен по запросу из адресной строки браузера
2. Если первый пункт выполнен пишем такую конструкцию:

$content = file_get_contents("http://www.другой сайт.ru/file.txt")

дальше с переменной $content проделываем что нужно..

izograv 07.03.2008 15:19

MadGreen, ну почти правильно все, только уже говорили про php.ini, там должно быть разрешен доступ к удаленным файлам (или на уровне сервера бывает запрет на некоторые порты). Если на виртуальном хостинге хостер подобное закрыл (грамотно), обойти нельзя никак.

MadGreen 07.03.2008 15:44

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

zhegloff 07.03.2008 15:48

Цитата:

Сообщение от asterada (Сообщение 97863)
Есть такая проблема! Существует некий файл xxx.php, который содержит в себе обычные текстовые ссылки и находится на сайте №1. Существует некий сайт №2, на котором стоит DLE. Необходимо, чтобы DLE отображала файл xxx.php с сайта №1 на своих страницах. Как это сделать?

Внешние коннекты на хостинге 2 открыты?

Если да, то file_get_contents или curl юзаем, если закрыты, тогда другие варианты :)

Stri4 07.03.2008 15:56

Цитата:

Сообщение от MadGreen (Сообщение 98125)
izograv, такой хостер идет лесом сразу. если пользователю режется необходимый, как я считаю, функционал внешних обращений то нафиг он такой нужен.

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

MadGreen 07.03.2008 16:00

это и так понятно. но есть хостеры которые и по запросу не открывают...

Asterada 07.03.2008 22:07

Цитата:

Сообщение от MadGreen (Сообщение 98125)
izograv, такой хостер идет лесом сразу. если пользователю режется необходимый, как я считаю, функционал внешних обращений то нафиг он такой нужен.

возможность исходящих соединений включена (100%) разрешены любые внешние обращения...


Часовой пояс GMT +3, время: 04:46.

Работает на vBulletin® версия 3.8.7.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
SAPE.RU — система купли-продажи ссылок с главных и внутренних страниц сайтов.