Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] "twarda" sciezka plikow na serwerze?
sakul55
post
Post #1





Grupa: Zarejestrowani
Postów: 39
Pomógł: 4
Dołączył: 27.03.2011

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


witam,
jak zrobic jakos twarde sciezki do plikow?

mam np
localhost/index.php
localhost/model/test.php
localhost/model/db.php
localhost/model/aaa.php

i tak:

db.php to laczenie z baza (ktore trzeba zaincludowac do index.php i aaa.php) i za kazdym wywolaniem on includuje do siebie plik db.php. i tu sie zaczyna problem. bo jak wpisze include ./model/aaa.php to plik test.php tego nie lapie, a jak wpisze include ./aaa.php to znowu index.php nie lapie.

jak to moge rozwiazac?

Ten post edytował sakul55 28.03.2011, 00:57:28
Go to the top of the page
+Quote Post
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Pytanie pierwsze, co to są twarde ścieżki?


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
sakul55
post
Post #3





Grupa: Zarejestrowani
Postów: 39
Pomógł: 4
Dołączył: 27.03.2011

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


a jak ci odpowiem co to jest to dasz mi rozwiazanie?
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


A i owszem. smile.gif

Błąd leży w samej logice Twojej "aplikacji", gdyż to przez index powinno przechodzić każde żądanie, które zostanie obsłużone przez router. etc.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
thek
post
Post #5





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Ścieżka bezwzględna?

A może warto byś wiedział, że przy include bierze się pod uwagę, jako podstawową, ścieżkę pliku najwyżej w wywołaniach? Czyli jeśli masz a.php, który zawiera b.php, a ten ma wewnątrz c.php to jeśli c.php ma coś jeszcze to musisz patrzeć tak, jakbyś był nadal w a.php i względem niego ścieżkę ustawiać. Wtedy znajdzie.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Fifi209
post
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Swoją drogą, jeżeli includujesz do indexu to połączenie z bazą czy co to tam jest, to do drugiego nie musisz już tego robić, bo już raz to zrobiłeś...

@up
Oczywiście, że tak. Jednak autor ma swoją nazwę i chciałem znać jej definicję. ;p

Ten post edytował fifi209 28.03.2011, 00:43:36


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
sakul55
post
Post #7





Grupa: Zarejestrowani
Postów: 39
Pomógł: 4
Dołączył: 27.03.2011

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


wiec sam nie wiem co to jest, dlatego napisalem w cudzyslowiach tongue.gif

wiem mniej wiecej jak to dziala z tymi sciezkami, ale znalazlem taka klase, ktora jest rozbita na czesci i sie wlasnie tak bez sensu includuje. myslalem, ze da sie to jakos ze sciezkami zrobic. po prostu wszystko bylo w jednym folderze i dzialalo ok, a jak wyciagnalem index.php i dalem do wczesniejszego folderu to sie posypalo ze sciezkami, bo dziala albo dla tego, albo dla tego.
a jakby zrobic jakiegos IFa i jesli nie zaincluduje to zamiast wywalac bledy przejdzie do else i wtedy zainkluduje z innej sciezki? tylko jak to rozpoznac?

w sumie jak to wszystko polacze to bedzie dzialalo, bo od razu bedzie wszystko co potrzebne, no ale moze zna ktos inny, lepszy sposob wink.gif

napisze moze jeszcze raz jak to wyglada.

-index.php
---/model/
---db.php
---aaa.php
---test.php

pliki index.php i test.php aby dzialac musza zainkludowac plik DB.php, a ten musi zainkludowac do siebie test.php. tylko jak juz zainkluduje go do index.php to musi posiadac sciezke include(/model/aaa.php), a jesli zainkluduje go do test.php to sciezka musi byc include(aaa.php).

Ten post edytował sakul55 28.03.2011, 00:55:52
Go to the top of the page
+Quote Post
Crozin
post
Post #8





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Bo ścieżek względnych się nie używa - zawsze prowadzą do mniejszych lub większych problemów. Możesz sobie zdefiniować jakąś stałą wspomagającą podwanie pełnych ścieżek:
  1. define('APP_DIR', '/path/to/my/app');
  2.  
  3. // ----------
  4.  
  5. require APP_DIR . '/model/db.php';
  6. require APP_DIR . '/model/aaa.php';
Przynajmniej nigdy nie będziesz miał problemu ze ścieżkami.
Go to the top of the page
+Quote Post
sakul55
post
Post #9





Grupa: Zarejestrowani
Postów: 39
Pomógł: 4
Dołączył: 27.03.2011

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


dzieki, ale nie bardzo wiem czym zastapic to /path/to/my/app .. uzywam WAMPa. localhost nie dziala
no i czy to nie beda wlasnie sciezki wzgledne?
Go to the top of the page
+Quote Post
CuteOne
post
Post #10





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


jeżeli na tą stronę wchodzisz poprzez http://localhost/index.php:

index.php
  1. define('APP_PATH', realpath(dirname(__FILE__)));
  2.  
  3. require APP_PATH . '/model/db.php';


Go to the top of the page
+Quote Post
sakul55
post
Post #11





Grupa: Zarejestrowani
Postów: 39
Pomógł: 4
Dołączył: 27.03.2011

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


ciagle jakies bledy, nie ma sensu sie w to bawic tak skoro i tak sie nie powinno takich sciezek uzywac. sprobuje to jakos polaczyc.
probowalem jeszcze zrobic IF od SERVER REQUEST i na podstawie tego rozpoznawac, ale znowu mi nie lapie klas i takie to bez sensu.
dzieki za zainteresowanie

jakos sobie poradzilem, ale boje sie, ze rozwalilem cala strukture. powie mi ktos czy tak to moze dzialac?


- index.php
-- /pliki/
-- wyswietl.php
-- dodaj.php
-- edytuj.php
-- layout.php

--/model/
--db.php

w index.php po prostu wrzucilem HEADER LOCATION: wyswietl.php, ktore mi wyswietla wszystkie dane z bazy. do wyswietl.php, dodaj.php , edytuj.php na koncu inkluduje layout.php i tak te pliki wyswietlam.
dziala mi wszystko ok, tylko czy to jest zgodne ze standardami, czy cos? jak to google bedzie interpretowalo itp? mozna w index.php robic headera? bo jak w index.php robilem include /pliki/wyswietl.php to wtedy mi nie lapalo sesji i te pliki sie gubily o czym wczesniej pisalem, a teraz jest wszystko ok. tylko czy tak moze byc?

aha, wszystko dzialalo poprawnie jak plik db.php byl na tym samym poziomie co index.php, ale na najnizszym poziomie takich plikow chyba sie nie powinno trzymac?


to jednak musi byc zly sposob, bo tak sie chyba nie powinno robic. ja juz sie chyba poddaje.
wszystkie pliki sa na jednym poziomie, czyli

- index.php
- secure.php
- login.php
- common.php
- request.php
- session.php
- user.php

i dziala wszystko OK. teraz jak chce to przerobic, zeby w glownym katalogu byl tylko plik index.php a reszta tak:

- index.php
---/model/
--- common.php
--- request.php
--- session.php
--- user.php

---/pliki/
--- secure.php
--- login.php

pozmienialem sciezki w require, a mimo to po prostu lapie sesji w pliku index.php. cos tam pewnie trzeba zmienic w kodzie, tylko co? chcialbym miec jakis porzadek w tych folderach i w glownym katalogu zostawic tylko index.php, a reszte wladowac do folderow, a z tym sie mecze, ciagle przerabiam i mam juz dosc. nie wiem czemu ta sesja nie wychodzi folder wyzej.
prosze o pomoc

Ten post edytował sakul55 28.03.2011, 17:19:22
Go to the top of the page
+Quote Post
wmatusiak
post
Post #12





Grupa: Zarejestrowani
Postów: 25
Pomógł: 7
Dołączył: 27.03.2011
Skąd: Kęty

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


Ja to robię tak
  1. require_once(dirname(__FILE__) . '/plik_w_tym_samym_katalogu_co_ten_plik.php');
  2. require_once(dirname(__FILE__) . '/../plik_w_katalogu_wyrzej.php);


Jeśli wszędzie w kodzie tak jest to jak by nie łączył te pliki ze sobą będzie ok wink.gif
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 Aktualny czas: 20.08.2025 - 08:06