merhaba arkadaşlar.
php ile web projelerinde ana dizinin altında bulunan alt dizinlerdeki sayfalarda include yaptığımda /yapamadığımda genelde sorun yaşıyorum.daha doğrusu örneğin üst.php yi include etsem ana dizinde üstün içindeki css ler çalışırken ana dizin altın daki başka bir klasörden üstü include edince üstün içindeki include ettiklerim çalışmıyor
sorun yol sorunu.
çözümü ise base url galibada ben bunu kullanamadım..
yardımlarınızı bekliyorum.. nasıl kullanacağım hususunda.
html+php+css alt klasörlerden include edememe sorunu
8
●4.197
- 22-07-2014, 00:35:07Kimlik doğrulama veya yönetimden onay bekliyor.
- 22-07-2014, 00:58:28hocam
anadizinde
index.php
ana dizindeki klasörler
-css
-stil.css
-ekle
-ust.php
-altsayfa
-sayfa1.php
hocam şimdi bu örnekten yola çıkarak
üst.php ' ye stil.css i include ediyorum.
index.php ' ye de ust.php yi include ediyorum.
burada sıkıntısız çalışıyor..
fakat,
altsayfa klasöründe ust.php 'yi
include(../ekle/ust.php) deyince include ediyor, fakat içindeki stil.css dosyasını dahil etmiyor - 22-07-2014, 01:38:00Bu konumda kolaylaştırma ifadeleri (./ veya ../) çakıştığından doğru ifadeyi yakalamanız gerekiyor. Fakat bu yöntem için tavsiyem path dahilinde bir include işlemi yapmanız. Yani ana dizin ile.mustafayilmaz28 adlı üyeden alıntı: mesajı görüntüle
Örneğin:
'/home/cpanel-kullaniciadi/public_html/' şeklinde tam isim belirterek yapabilirsiniz.
veya birçok scriptin kullandığı yöntem:
1. Scriptin ana dizininde (index.php misal) bu kodu çalıştırarak bu scriptin tam yolunu almak.
define( 'ROOT_DIR', dirname(__FILE__) );
2. Alt yollarda çalışacak include veya benzeri işlevleri alınan bu tam yol değerini kullanarak çalıştırmak.
include( ROOT_DIR.'/include/functions.php' );
- 22-07-2014, 03:55:44hocam benim belirttiğim yapıda hangisinde kullanayım tam olarak.
en üst dizinde bulunan index.php de kullanmak zorundamıyım yoksa ekle dizini içindeki üst.php de kullansam olurmu?1 seçeneği - 22-07-2014, 10:53:08Hocam olay şu: ust.php'de css dosyasının yolunu css/stil.css olarak belirlemişsiniz. Bu yol ana dizin içindeki php dosyaları için doğru. css dosyasının çekildiği ust.php, index.php gibi ana dizinde yer alan bi' php dosyasına include edildi ise çalışır, ama altsayfa dizini içindeki sayfa1.php dosyasından include edildi ise stil dosyasının yolu yanlış olacaktır. css/stil.css değil de ../css/stil.css şeklinde olması gerekir.
Bunun için yapabilecekleriniz
-@exselansTR_'nin dediği gibi bir sabit tanımlamak olabilir.
-ana dizin yolunun parametre olarak gönderildiği bir fonksiyon olabilir.
-ust.php'yi include etmeden önce ana dizin yolunu belirten bir değişken oluşturulup stil dosyaları vs. çekerken bu değişken kullanılabilir.
-Tüm dosyalar url'den delen isteğe göre index.php içine include edilebilir (böylece dosyalar hep ana dizin konumuna göre okunur). Yani index.php'yi görsel tabanlı değil, sadece hangi dosyanın gösterileceğini belirten koordine merkezi olarak kullanırsınız ki bence hoş olan da budur.
Edit: Bir de base konusu varmış.
htaccess dosyasında "RewriteBase /" satırı ekler, index.php, header.php veya uygun yer hangi dosyanızda ise oraya
<base href="<?php echo $siteurl; ?>/" />
kodunu ekerseniz "okuncak dosyaları çekerken ilk / işaretini kullanmaya gerek kalmaz", mesela localde xxx isimli bir klasörde çalışıyorsanız "RewriteBase /xxx/" derseniz $siteurl değikeninde de bu yolu belirtirseniz site içi dosyalar için /xxx/ şeklinde başlayan yollar kullanmanıza gerek kalmaz - 22-07-2014, 16:12:31Arkadaşın da dediği gibi sadece / işareti koyunCanArs12 adlı üyeden alıntı: mesajı görüntüle
sizin dizini belirtirken kullandığınız
include("../blabla.css")
bu satırdaki .. işaretinin anlamı bir önceki dizin anlamına geliyor sen zaten en üst dizinde isen bir üst e daha çıkmana gerek yok...
şöyle bir yapı olsa idi alt klasörden üst klasör e çıkıp oradaki bir php i include etmek isteseydin
o zaman .. komutu işe yarayacaktı ama alt dizine gireceksen buna gerek yok