Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php5.3.8]Undefined variable / include(), Xampp 1.7.7
fr33d0m
post 11.10.2011, 01:58:39
Post #1





Grupa: Zarejestrowani
Postów: 132
Pomógł: 4
Dołączył: 22.10.2010

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


Tworzyłem spory portal w Krasnalu, który sprawnie śmigał. Przeniosłem się na XAMPPA i wywala mi błędy z którymi nie mogę sobie poradzić. Nie wiem czy wynikają z konfiguracji php.ini, wersji PHP 5.3.8 czy z winy XAMPPA...
Będę wdzięczny za wyjaśnienie i pomoc aby to posklejać w całość:
plik php.ini
  1. register_globals = On
  2. safe_mode = On
  3. ; jesli cos jeszcze potrzbne z php.ini to wstawię


plik cfg.php
  1. $http = 'http://localhost/nnde'; // adres domeny
  2. echo ' |cfg.php = '.$http.' |';


plik ludzie.php
  1. <?php
  2. include('http://'.$_SERVER['SERVER_NAME'].'/nnde/admin/cfg.php'); // config
  3. echo " |ludzie.php = $http |";
  4. $UrlCSS = ''.$http.'/ogloszenia/spolecznosc/css/ludzie.css'; // CSS lokalny
  5. $UrlCSS_sposob2 = '../.../ogloszenia/spolecznosc/css/ludzie.css'; // to działa
  6. include('../.../load/head.php'); // CSS <head> <body>
  7. ?>

Ścieżki:
C:\xampp\htdocs\nnde\admin\cfg.php
C:\xampp\htdocs\nnde\load\head.php
C:\xampp\htdocs\nnde\ogloszenia\spolecznosc\css\ludzie.css
C:\xampp\htdocs\nnde\ogloszenia\spolecznosc\ludzie.php


I oto wynik jaki wyświetla:
[APACHE] pobierz, plaintext
  1. |cfg.php = <a href="http://localhost/nnde" target="_blank">http://localhost/nnde</a> |
  2. Notice: Undefined variable: http in C:\xampp\htdocs\nnde\ogloszenia\spolecznosc\ludzie.php on line 3
  3. |ludzie.php = |
  4. Notice: Undefined variable: http in C:\xampp\htdocs\nnde\ogloszenia\spolecznosc\ludzie.php on line 4
  5.  
  6. Warning: include() [function.include]: Unable to access ../.../load/head.php in C:\xampp\htdocs\nnde\ogloszenia\spolecznosc\ludzie.php on line 6
  7.  
  8. Warning: include(../.../load/head.php) [function.include]: failed to open stream: No such file or directory in C:\xampp\htdocs\nnde\ogloszenia\spolecznosc\ludzie.php on line 6
  9.  
  10. Warning: include() [function.include]: Failed opening '../.../load/head.php' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\nnde\ogloszenia\spolecznosc\ludzie.php on line 6
[APACHE] pobierz, plaintext


Moje pytanie: dlaczego nie mogę odczytać zmiennej $http w pliku ludzie.php mimo, że includuje plik cfg.php gdzie ta zmienna $http jest zainicjowana? i dlaczego wszystko tak dziwnie się posypało mimo, że w Krasnalu działało?


--------------------
UWAGA! Stwierdzono naruszenie paragrafu §33 ustawy ACTA. Podpis użytkownika został usunięty.
Go to the top of the page
+Quote Post
vee
post 11.10.2011, 07:03:22
Post #2





Grupa: Zarejestrowani
Postów: 64
Pomógł: 5
Dołączył: 16.08.2011

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


  1. include('http://'.$_SERVER['SERVER_NAME'].'/nnde/admin/cfg.php'); // config

nie da Ci deklaracji zmiennej $http tylko:
Kod
|cfg.php = <a href="http://localhost/nnde" target="_blank">http://localhost/nnde</a> |


jeśli tylko taka forma pliku wchodzi w grę to musisz zastanowić się nad jakimś parsowaniem ewentualnie.

Ten post edytował vee 11.10.2011, 07:04:09
Go to the top of the page
+Quote Post
mortus
post 11.10.2011, 07:45:46
Post #3





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Nie chodzi tutaj o formę pliku, a o to, że w include używasz adresu url. Powoduje to, że plik jest najpierw interpretowany przez PHP i to wygenerowana zawartość (efekt działania skryptu cfg.php) jest wstawiana do pliku. Argumentem funkcji include powinna być ścieżka względna lub bezwzględna do pliku cfg.php na serwerze, czyli w Twoim przypadku coś takiego:
  1. include 'admin/cfg.php';
Go to the top of the page
+Quote Post
fr33d0m
post 11.10.2011, 10:47:57
Post #4





Grupa: Zarejestrowani
Postów: 132
Pomógł: 4
Dołączył: 22.10.2010

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


Dziękuje mortus za szczegółowe wyjaśnienie. Teraz już chyba wszystko działa. smile.gif

  1. include('../../admin/cfg.php'); // config


Ps. dziwne tylko, że Krasnal poprawnie interpretował taką ścieżkę do pliku cfg.php ('../.../admin/cfg.php') - dlatego postanowiłem skorzystać z alternatywnego linka poprzez $_SERVER.

Pozdrawiam


--------------------
UWAGA! Stwierdzono naruszenie paragrafu §33 ustawy ACTA. Podpis użytkownika został usunięty.
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: 25.07.2025 - 09:51