Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Odwołanie do innego folderu
Forum PHP.pl > Forum > Przedszkole
matius71
Witajcie,

Jestem raczej początkujący więc wybaczcie ale nie potrafię sobie poradzić z pozoru banalną rzeczą.

Mam plik members.php który jest w głównym folderze na serwerze. Chciałem w nim zrobić link w który jak się kliknie to przeniesie użytkownika do pliku w podkatalogu jednak co bym nie zrobił to sypie błędami.

Czyli z:
CODE
localhost/memberpage.php


Do:
CODE
localhost/test/register.php


i teraz w pliku memberpage.php wstawiłem:
CODE
<a href="test/register.php">Register page</a>


Po kliknięciu na stronie pojawia mi się błąd:
CODE
Warning: require(includes/config.php): failed to open stream: No such file or directory in D:\XAMPP\htdocs\test\register.php on line 1

Fatal error: require(): Failed opening required 'includes/config.php' (include_path='D:\XAMPP\php\PEAR') in D:\XAMPP\htdocs\test\register.php on line 1


Linia 1 w register.php:

CODE
<?php require('includes/config.php');
viking
Poczytaj o ścieżkach absolutnych i relatywnych. W podfolderze x/x osnosi się do podfolder/x/x/
viking
Skoro działa znaczy że jest dobrze. Powinieneś wszystko przepuszczać przez index.php. i możesz poczytać o mvc.
matius71
hahaha dobra nie działa, po prostu nie skasowałem pliku z głównego katalogu który nazywał się tak samo thumbsdownsmileyanim.gif
viking
Czyli kolejny powód żeby swój kod uporządkować. Do małego projektu możesz spróbować http://slimframework.com/
matius71
Ale czemu muszę stosować jakieś skrypty ja chce tylko uporządkować pliki umieszczając je w podfolderach tongue.gif Problem jest taki że jak to robie to wywala mi błędy. Gdyby te same pliki były w głównym katalogu serwera to działają normalnie.
trzczy
Komunikat błędu pokazuje, że nie można znaleźć pliku config.php.

Sporządź zastepczy plik config.php w klilku wersjach. Każdą z wersji umieść w odpowiednich katalogach. Znaczy się w katalogach, które mozna podejrzewać o to, że tam funkcja include będzie szukać pliku. Niech każdy plik config.php zawiera treść
  1. echo "taka/lokalizacja/pliku/";

Oczywiście z odpowiednią lokalizacją. Do inkludowania pliku config.php zastosuj include zamiast require.

Odpal swój skrypt i zobacz, jaka lokalizacja się wyświetli. Takie ręczne testy najlepiej uczą.
matius71
Ok, jak do każdego podkatalogu skopiowałem plik config i zmieniłem ścieżki do plików (te które musiałem bo wywalało błędy) to wszystko działa ale da się tak żebym miał jeden plik config? Bo tak naprawdę wszędzie gdzie mam ścieżki do jakiegoś pliku musiałem dodać
../podkatalog/nazwa_pliku.php

zamiast

nazwa_pliku.php
trzczy
Czekaj, zatem dla tego twojego wątku na forum, gdzie problem był tylko z jednym przypadkiem require, odpowiedź już masz, czyli wiesz, gdzie powinien być config.php zlokalizowany, tak? To go tam umieść i pozostałe pliki config.php wywal.
matius71
Na początku miałem wszystkie pliki w głównym katalogu, potem postanowiłem zrobić katalog "test" do którego wrzuciłem plik "registration.php" i pojawił się błąd który jest w pierwszym poście. Potem skopiowałem plik "config.php" do katalogu "test", tak jak napisałeś. W pliku registration.php zmieniłem

z:
CODE
<?php require('config.php');


na:
CODE
<?php require('../test/config.php');


i wtedy pokazało błąd że w linii 33 i 34 jest błąd.

Linia 33 i 34:
CODE
include('classes/user.php');
include('classes/phpmailer/mail.php');


zmieniłem na:
CODE
include('../classes/user.php');
include('../classes/phpmailer/mail.php');


potem pokazał się błąd że w pliku registration.php w linii 130 jest błąd.

Linia 130:
CODE
require('layout/header.php');


Zmieniłem na:
CODE
require('../layout/header.php');


I to chyba wszystko tongue.gif Ogólnie to podchodzi pod prowizorkę ale działa biggrin.gif wszędzie gdzie były jakieś błędy, chodziło o to że ścieżka do plików nie miała tego ../ niestety nie wiem jak temu zaradzić żeby to było jakoś bardziej profesjonalnie no ale tak jak jest, tak działa o dziwo tongue.gif

Wie ktoś może jak zrobić żebym nie miał miliona plików config? biggrin.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.