|
TwojePC.pl © 2001 - 2026
|
 |
A R C H I W A L N A W I A D O M O Ś Ć |
 |
| |
|
[OT] PHP - problem z include , OzA 27/10/04 15:13 witam
problem mam następujący:
na serwerze AAA jest plik BBB.php a w nim ustawiona zmienna $CCC=1
chciałbym w pliku na serwerze DDD pobrać informację jaką wartość ma zmienna $CCC w pliku BBB.php na serwerze AAA
na obu serwerach zmienna allow_url_fopen jest ustawiona na ON ON
na serwerze DDD mam plik EEE.php a w nim linijkę include (\"http://AAA/BBB.php\");
niestety zostaje wyświetlony komunikat:
Warning: main(): Failed opening \'http://AAA/BBB.php\' for inclusion (include_path=\'.:/:/usr/pear\') in /EEE.php on line 3
ktoś mi pomoże jak można ściągnąc informację o wartości zmiennej w zdalnym pliku na zdalnym serwerze?
HeeeeeellllllpppppppI sniffed Coke...
but the ice cubes
got stuck in my nose - hmmm , akustyk 27/10/04 15:18
http://pl.php.net/manual/en/function.include.php
i czytac od:
"If "URL fopen wrappers" are enabled..."http://akustyk.magma-net.pl - No co ty robisz... , pachura 27/10/04 15:20
Zmień nazwę BBB.php na BBB.inc. Skrypt nie będzie parsowany przez moduł PHP.
Ale wiedz że to co robisz jest na 99% kompletnie chore i należy to rozwiązać zupełnie inaczej... m.in. dlatego że przy otwieraniu strony WWW moduł PHP musi się łączyć z innym serwerem, co zajebiście spowalnia, nie mówiąc o wystawianiu całemu światu zawartości Twoich skryptów (w środku mogą być np. hasła).- hmm , akustyk 27/10/04 15:33
wlasnie dlatego wrzuca sie takie rzeczy w *.php a nie *.inc, zeby nie bylo wystawiania calemu swiatu danych. a w include-owanym pliku mozna dodac bramke logiczna sprawdzaja ustawienie pewnej zmiennej. i jesli nie przejdzie isset($zmienna), dla zmiennej zdeklarowanej w skrypcie glownym, to include-owany skrypt wywala blad exitem.
a ze wolne, to sie zgodze. no, ale jesli trzeba...http://akustyk.magma-net.pl - Tak się nie da, według mnie... , pachura 27/10/04 15:48
Nie wyobrażam sobie konstrukcji takiej bramki logicznej. Nie da się wyłączyć wykonywania pliku .PHP od pewnego momentu a tylko wysyłanie go "as is". Plik BBB.php zostanie wykonany przez serwer www na hoście AAA, a dopiero potem wysłany jako include, ale to już nie będzie kod PHP tylko wynik jego działania... poza tym, BBB.php nie będzie miał dostępu do zmiennych z EEE.php, a jedynie do zmiennych GET/POST.
Od biedy możnaby napisać coś takiego:
if (!isset($_REQUEST['jestem_skryptem'])) die();
echo <<<__EOF__
// tutaj kod do zaincludowania
// ale trzeba escape'ować dolary etc.
// więc bez sensu i tak
__EOF__;
- hmm , akustyk 27/10/04 15:56
masz racje. jesli plik jest wyciagany ze zdalnego serwera do przetworzenia na biezacym to jest tak jak piszesz.
w taki sposob jak napisalem, trzeba by po prostu wywolac zapytanie z serwera biezacego na zdalny o __wynik__ pliku BBB.php. czyli nie tresc. a to jest bez sensu, bo wtedy zadnych zmiennych PHP sie juz nie wykorzysta.
jedyne rozsadne rozwiazanie to w takim przypadku jakas transakcja SSL. a to juz malo, ze bezsensowne, co jeszcze katastrofalne z punktu widzenia szybkosci...http://akustyk.magma-net.pl - trochę wyjaśnień , OzA 27/10/04 16:05
otóż plik BBB.php nie mogę zmienić na .inc, bo ja tylko z niego odczytuję. Plik potrzebny jest do całej masy innych skryptów pisanych przez kolegę na jego serwerze (serwer newsów). Zmieniając plik na INC musiałby kolega cały system newsów przerobić - ODPADA
plik BBB.php nazywa się w oryginale config.php Absolutnie nic nie wyświetla Zawiera 15 linijek zmiennych z których jest mi potrzebna właśnie jedna więc o czas wykonania config.php nie musimy się aż tak bać bo przypisać 15 zmiennym jakąś wartość to dla serwera pryszcz
a.d. pachura z 15:48 -> nic nie kumam co napisałeś
co to jest to "jestem skryptem". domyślam się że trzeba to wpisać do pliku BBB.php na serwerze AAA czyli u kolegi. jednak jak wspomniałem na początku nie jest to możliwe, plik istnieje ponad rok i zbyt dużo od niego zależy by go zmieniać.
jeśli się nie da to napiszcie że NIEMOŻLIWE a jeśli możliwe to w pliku EEE.php można pisać 1000 linijek kodu byleby nie ruszać BBB.php
czekam na sugestieI sniffed Coke...
but the ice cubes
got stuck in my nose - hmm , akustyk 27/10/04 16:16
sugestia: zrobic kopie pliku na wlasnym serwerze. jezeli plik BBB.php sie czesto zmienia, to napisac skrypt pobierajacy go np. wget-em i wstawic do cron-ahttp://akustyk.magma-net.pl - taaa... jasne... , OzA 27/10/04 16:20
troszkę jaśniej?I sniffed Coke...
but the ice cubes
got stuck in my nose
- No więc... , pachura 27/10/04 17:09
"Zmieniając plik na INC musiałby kolega cały system newsów przerobić - ODPADA"
Przecież może po prostu go skopiować do tego samego katalogu jako .inc i tyle...
"o czas wykonania config.php nie musimy się aż tak bać bo przypisać 15 zmiennym jakąś wartość to dla serwera pryszcz"
Wydaje mi się że jesteś początkującym programistą i nie rozumiesz za bardzo tych mechanizmów... spowalniać będzie połączenie jednego serwera www z drugim, nawiązywane za każdym razem...
"jeśli się nie da to napiszcie że NIEMOŻLIWE a jeśli możliwe to w pliku EEE.php można pisać 1000 linijek kodu byleby nie ruszać BBB.php"
Chodzi o to że nie jesteś w stanie dobrać się do kodu PHP w pliku BBB.php bo serwer www na zdalnym hoście WYKONUJE go i wypluwa tylko wynik, a nie niespardowany kod PHP. Proste?
- hmm , akustyk 27/10/04 16:25
a co jest niejasne? skopiowac chyba umiesz? wpisac w Google wget i cron chyba tez?http://akustyk.magma-net.pl - dobra... dobra... , OzA 27/10/04 16:37
wiele razy był poruszany ten wątek: "google to google tamto"
ja jestem na forum TPC a nie na forum google!
nie jestem leniem bo zanim zadałem to pytanie na forum TPC męczyłem się z googlami i innymi forami ładnych parę godzin ale nie przyniosło skutku.
źle szukałem? nie sądzę, wszystko w necie jest opisane ogólnikowo a ja raczej swój problem traktuję wyjątkowo (zresztą jak większość boardowiczów). w google nikt nie napisał, że nie da się odczytać jaką wartość ma zmienna na zdalnym serwerze tylko są informacje że include działa zdalnie. na tym koniec.
zadałem je tu i bo pomyślałem że otrzymam odpowiedź choćby od samego DYD lub webmastera TPC.
nie jest mi jej w stanie nikt dać? OK. dziękuję za same chęci.
ale odpowiedź typu "poszukaj na google" rozbraja, serio :/
recpect
no offenceI sniffed Coke...
but the ice cubes
got stuck in my nose - jaka wersje PHP macie? , Grocal 27/10/04 18:05
cytat z opisu funkcji include()
"PHP w wersji starszej niż 4.3.0, pracujące pod kontrolą systemów Windows, nie obsługują dostępu do zdalnych plików w tej funkcji, nawet jeśli opcja allow_url_fopen jest włączona."
tak to wyglada w Twoim przypadku (tak bym interpretowal wyskakujacy blad)
A do tego - tak jak napisal pachura - nawet jesli mechanizm includowania zadziala, to w miejsce include Twojego skryptu wejdzie WYNIK parsowania pliku .php na serwerze kolegi...
Innymi slowy jezeli u kolegi jest plik z taka trescia (i jest pelnoprawnym plikiem php parsowanym przez phpa po stronie serwera):
// plikkolegi.php
$zmienna = 'test';
echo 'Nic ci sie tu nie wpisze';
a w Twoim pliku bedzie:
// twojplik.php
include ('http://serwer.com/plikkolegi.php');
to w miejsce tego include pojawi sie napis >>Nic ci sie tu nie wpisze<<
jezeli jednak plik kolegi NIE BEDZIE parsowany przez phpa tylko po wpisaniu w przegladarke wyswietli swoja tresc, to include sie uda i bedziesz mial w jego miejscu dokladnie tresc pliku kolegi. Niestety nie jest to tak b. bezpieczne...
Ot i cala filozofia! I nie denerwuj sie tak OzA... zycie jest za krotkie ;)Na pewno, na razie, w ogóle...
Naprawdę, naprzeciwko, stąd...
Ortografia nie gryzie! - respect , OzA 27/10/04 23:11
wersja 4.3.3
a jeśli się uniosłem to przepraszam ale naprawde denerwują mnie odpowiedzi typu "...google..."
szacuneczek wszystkim
i podziękowaniaI sniffed Coke...
but the ice cubes
got stuck in my nose - wszystko gra OzA - don't worry! , Grocal 28/10/04 19:35
123 Gooood Job!Na pewno, na razie, w ogóle...
Naprawdę, naprzeciwko, stąd...
Ortografia nie gryzie!
|
|
|
|
 |
All rights reserved ® Copyright and Design 2001-2026, TwojePC.PL |
 |
|
|
|