Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> define, a zasięg dostępu
adam_krk
post 25.07.2009, 11:34:22
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 25.07.2009

Ostrzeżenie: (0%)
-----


Witam

Mam problem z zasięgiem stałych define.

Plik: http://localhost/test/include/config.inc.php

  1. <?php
  2.    define('BASE_URI','test/');
  3.    define('BASE_URL','http://localhost/');
  4. ?>


Plik: http://localhost/test/include/header.inc.php

  1. <html>
  2. <head>
  3.    <link href="<?php echo BASE_URL.BASE_URI.'include/style.css'; ?>" />
  4. </head>
  5. <body>
  6. Coś
  7. </body>
  8. </html>


Plik scalający powyższe: http://localhost/test/index.php

  1. <?php
  2.    require_once('./include/config.inc.php');
  3.    require_once(BASE_URL.BASE_URI.'include/header.inc.php');
  4. ?>


Problem w tym, że w pliku index.php stałe BASE_URL i BASE_URI są widoczne, natomiast w header.inc.php nie są.
W źródle strony index.php po otwarciu go w przeglądarce widać:

  1. <link href="BASE_URLBASE_URIinclude/style.css" />
  2. </head>
  3. Coś
  4. </body>
  5. </html>


Specjalnie by rozwiązać ten problem wyciąłem resztę kodu, ale się nie udało.
Pewnie nie ma to znaczenia, ale tuż przed kodowaniem włączyłem opcję 'allow_url_include' w php.ini.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
erix
post 25.07.2009, 11:41:55
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Nie ma znaczenia.

Zapamiętaj, że kod jest wykonywany od góry do dołu, a jeśli stała nie jest wcześniej zadeklarowana - PHP wyświetla po prostu jej nazwę (wsteczna kompatybilność). Stałe mają zasięg globalny, więc lepiej po prostu sprawdź kolejność wczytywania plików.
Powód edycji: pogrubienie dla ~wookieb ;p


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
wookieb
post 25.07.2009, 11:42:46
Post #3





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




  1. <?php
  2. require_once('include/header.inc.php');
  3. ?>


Erix, przecież doskonale widzisz, że kolejność jest dobra wieć co świrujesz?


// Pomógł++
// ayeo


Ten post edytował ayeo 25.07.2009, 12:07:31


--------------------
Go to the top of the page
+Quote Post
adam_krk
post 25.07.2009, 11:46:05
Post #4





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 25.07.2009

Ostrzeżenie: (0%)
-----


  1. <?php
  2.   require_once('./include/config.inc.php');
  3. // stałe BASE_URL i BASE_URI są znane, poniżej plik "localhost/test/include/header.inc.php" jest dołączany
  4.   require_once(BASE_URL.BASE_URI.'include/header.inc.php');
  5. // ... ale w header.inc.php już nie są znane... dlaczego?
  6. ?>


Ten post edytował adam_krk 25.07.2009, 11:48:03
Go to the top of the page
+Quote Post
erix
post 25.07.2009, 11:48:28
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A sprawdź w header.inc.php, czy są przez defined" title="Zobacz w manualu PHP" target="_manual (na wszelki wypadek winksmiley.jpg).


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
wookieb
post 25.07.2009, 11:49:53
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Adam_krk najpierw sprawdź co ci podałem a potem gadaj. Erix też.


--------------------
Go to the top of the page
+Quote Post
adam_krk
post 25.07.2009, 11:53:16
Post #7





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 25.07.2009

Ostrzeżenie: (0%)
-----


wookieb, działa. (nie zauważyłem zmiany w odpowiedzi)

Dlaczego działa, a dlaczego nie działało?
Go to the top of the page
+Quote Post
wookieb
post 25.07.2009, 11:54:36
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Jak podałeś ades bezwzgledny to tak jakbys odpalił ten plik prosto z przegladarki.


--------------------
Go to the top of the page
+Quote Post
adam_krk
post 25.07.2009, 11:56:36
Post #9





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 25.07.2009

Ostrzeżenie: (0%)
-----


Rozumiem. Dzięki za pomoc
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 06:10