Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: GLOBAL dla stałej
Forum PHP.pl > Forum > PHP
LamaMASTER
Witam,
Potrzebuję bardzo szybko odpowiedzi, kurcze czasu nie ma, a kombinuję już długo. Mam plik.php:
  1. <?php
  2. define('_LOL', '1.0');
  3.  
  4. include('http://strona.pl/check.php');
  5. ?>

a teraz w check.php:
  1. <?php
  2. $lol = _LOL;
  3. if ($lol == '1.0') {
  4. echo 'Git';
  5. }
  6. ?>

Niestety check.php w ogóle nie wyczuwa stałej _LOL, tak jakby jej nie było. Sprawdzałem if (!defined i echo _LOL.
Co mogę zrobić, żeby ten plik widział tą stałą? Próbowałem zmienić include w readfile, ale brak efektu.
Może trzeba tu użyć czegoś typu global?
LBO
Dzieje się tak ponieważ include'ujesz juz przeparsowany plik php - źródło html.
LamaMASTER
No to lekko mówiąc mam problem. Da się temu jakoś zaradzić nie zmieniając zawartości plik.php, a jedynie check.php? Niestety taka jest sytuacja sad.gif
LBO
Oczywiście, że się da smile.gif Przepraszam, że nie wyjaśniłem. Inkluduj pliki php, wzgledm twojego skryptu plik.php.
Jezeli check.php znajduje się w tym samym katalogu wystarczy, że zrobisz tak:
  1. <?php
  2. include('check.php');
  3. ?>
LamaMASTER
No tyle to ja wiem, ale mój includowany plik jest na innym serwerze...
LBO
Nom, skoro potrzebujesz na siłę kodu php z innego serwera, to zmień nazwę check.php na check.txt (*.txt nie jest interpretowany przez php) i include'uj ten plik. Chociaż dla mnie to bez sensu, przeczy zasadom bezpiecznego programowania.
LamaMASTER
No niestety nie mogę zmienić w żaden sposób plik.php - jedynie zmiana check.php sad.gif
LBO
plik check.php
  1. <?php
  2. echo('<?php
  3. $lol = _LOL;
  4. if ($lol == '1.0') {
  5. echo 'Git';
  6. }
  7. ?>');
  8. ?>

albo wygodniejsza opcja:
  1. print <<<PHP_CODE
  2. <?php
  3. $lol = _LOL;
  4. if ($lol == '1.0') {
  5. echo 'Git';
  6. }
  7. ?>
  8. PHP_CODE;

dodaj ukośniki przed znaki dolara (nazwy zmiennych), bo niestety edytor forum, je usuwa :/
LamaMASTER
Działa!!!!!!!!!!!!!!!!!! Wielkie dzięki!!!! Radość taka jak teraz przeżywają Włosi biggrin.gif

Jesteś wielki biggrin.gif Stawiam piwo jak będzie okazja winksmiley.jpg

Prośba do administracji: dać mu admina biggrin.gif

edit

Drugiej opcji nie musiałem używać smile.gif
LBO
Cytat
Prośba do administracji: dać mu admina

Właśnie tobie powiedziałem, jak zrobić jedna z najgłupszych rzeczy smile.gif ja bym siebie wyrzucił na miejscu modów (nospor, nie czytaj tego tongue.gif)
LamaMASTER
Ale przy okazji uświadomiłeś mi, że include plików z innego serwera działa inaczej winksmiley.jpg Teraz już będę wiedział smile.gif
W każdym razie jest to tylko plik sprawdzający wersję no i mogę się zabezpieczyć, wystarczy do tego echo:
if (!defined('_LOL') {
die('access denied');
}
i wtedy jak ktoś plik otworzy bezpośrednio to po ptokach winksmiley.jpg Mogę też if (eregi('check.php', $PHP_SELF) biggrin.gif

W każdym razie dzięki i pozdrawiam serdecznie!

edit

no if defined nie zadziała - też wyświetlane, a jak dam normalnie to jedynie eregi biggrin.gif

edit

No i problem mam jeszcze, nie wiem czemu nie działa:
if (eregi('check.php', $PHP_SELF)) nawet jeżeli $PHP_SELF jest jako global smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.