Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] ścieżkowanie
Forum PHP.pl > Forum > Przedszkole
MadManix
1. mam domenę domena.com

2. utworzyłem subdomenę adm.domena.com

3. mam skrypt w php, którego pełna ścieżka wygląda tak:
/var/www/vhosts/domena.com/adm.domena.com/private/magazyn2/logowanie0.php

4. żeby wejść na ten skrypt przez przeglądarkę, wpisuję taki adres: http://adm.domena.com/private/magazyn2/logowanie0.php

5. w katalogu magazyn2 są jeszcze 3 pliki takie jak 1818.jpg, cookie.txt i connect.php

6. jeżeli zawartość skryptu logowanie0.php wygląda tak:
  1. <?php
  2. echo echo '<img src="/private/magazyn2/1818.jpg" width="100px">';
  3. ?>

to wszystko jest ok, obrazek się wyświetla

7. jeżeli zawartość skryptu logowanie0.php wygląda tak:
  1. <?php
  2. echo file_get_contents("/private/magazyn2/cookie.txt");
  3. ?>

to zawartość cookie.txt już się nie pokazuje. Pliku nie może otworzyć.
AH01071: Got error 'PHP message: PHP Warning: file_get_contents(/private/magazyn2/cookie.txt): failed to open stream: No such file or directory in /var/www/vhosts/domena.com/adm.domena.com/private/magazyn2/logowanie0.php

8. jeżeli zawartość skryptu logowanie0.php wygląda tak:
  1. <?php
  2. require_once "/private/magazyn2/connect.php";
  3. ?>

to też lipa
AH01071: Got error 'PHP message: PHP Warning: require_once(/private/magazyn2/connect.php): failed to open stream: No such file or directory in /var/www/vhosts/domena.com/adm.domena.com/private/magazyn2/logowanie0.php on line 10\nPHP message: PHP Fatal error: require_once(): Failed opening required '/private/magazyn2/connect.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/vhosts/domena.com/adm.domena.com/private/magazyn2/logowanie0.php


Czy może ktoś wyjaśnić czemu obrazki są inaczej traktowane przez php niż inne pliki?
oraz co zrobić aby inne pliki były traktowane jak obrazki?
dublinka
  1. __FILE__

Mozesz uzyc do wstawienia aktualnej sciezki
MadManix
Przenoszę całą witrynę internetową na nowy serwer. Plików jest bardzo dużo. Chciałbym uniknąć edytowania każdego pliku i dopisywania __FILE__
dublinka
Cytat(MadManix @ 28.09.2019, 05:29:01 ) *
Przenoszę całą witrynę internetową na nowy serwer. Plików jest bardzo dużo. Chciałbym uniknąć edytowania każdego pliku i dopisywania __FILE__

Dziala czy dalej nie
MadManix
w moim przypadku nie działa
Tomplus
Ja widzę że zamiast pobierać pliki względną ścieżką używasz bezwzględnej.

Użyj ścieżkę bez /

Dwa. Dlaczego do panelu admina masz tak długą ścieżkę. Możesz użyć sub domenę na ścieżkę gdzie masz logowanie.php
MadManix
Akurat w tym przypadku, ścieżka bez / faktycznie zadziała.
Ale jeżeli będę chciał zrobić require_once "connect.php" w jakimś innym pliku np. o takiej ścieżce: http://adm.domena.com/private/magazyn2/towary/plik.php
to będzie szukał go w /towary, natomiast plik connect.php znajduje się w /magazyn2

Robię przeniesienie na nowy serwer. Na starym serwerze były tak porobione katalogi. Plików jest dużo. Nie chcę edytować każdego.

Tutaj chyba przydałoby się ustawić jakoś document root, tylko nie wiem w którym miejscu się to ustawia.

To jest serwer VPS na homecloud, CentOS 7
genko
A w taki sposób?

  1. ini_set('include_path',ini_get('include_path').':/var/www/vhosts/domena.com/adm.domena.com');

questionmark.gif https://www.a2hosting.com/kb/developer-corn...p-include-paths

Plus masz podwójne echo: echo echo '<img src="/private/magazyn2/1818.jpg" width="100px">';
MadManix
ten sposób już próbowałem. Również nie działa.

Echo - tak, widziałem
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-2024 Invision Power Services, Inc.