Doğru Cevap
-
Öncelikle mantık son derece sakıncalı. include ile değişken gönderilmesi güvenlik açısından sakat.
Template sistemi için madem php'ye izin verilecek, bir php class'ına devredin işi derim. Kullanıcı include yazmasın da,
echo $this->include('dosya.php', array('veri' => 1));
şeklinde kullansın. dosya.php'de de $this->veri şeklinde ulaşabilsin. Zend_View'i araştırmanı tavsiye edebilirim bu konuda...
Cevaplar
-
include edilen dosya zaten mevcut kodunla aynı sayfaya dahil edilecektir. dolayısıyla değişkeni göndermek yerine, include satırından önce;
$veri = 1;
ifadesi de aynı işi görecektir. Saygılarımla...-
drengarc
öncelikle teşekkürler. bu include işlemini yapmaya çalıştığım cms'de kullanıcılardan bu include kodunu template kodları arasına sokmasını istiyorum. dolayısıyla mümkün olduğunca kısa tutmak için tek include işleminde bu mümkün mü merak ediyorum. aksi taktirde değişkeni önceden atamak durumunda kalacağım dediğiniz gibi. iyi günler.12 yıl önce yazılmış -
madpoet
Kısa / uzun olmasından öte global değişkenlerin kullanılması sakıncalıdır. Yani config, db gibi standart şeylerin global olarak kullanılması "bana göre" kabul edilebilirken benim çalıştığım hiçbir yabancı danışman onları bile kabul etmiyor. Değişkenlerin global kullanılması ileride geri dönülmesi mümkün olmayan baş ağrıları yaratabilir, değişkenler her zaman çakışabilir zira...
Ayrıca sonradan kod incelendiğinde değişkenin nerede set edildiğini bulmak zor olacağı için elinizi kolunuzu bağlayabilir...12 yıl önce yazılmış
-
-
include("http://denemesite.com/dosya.php?veri=1");
şeklinde istediğini yapabilirsin.
Tercih edilen bir yöntem değildir ve çoğu sunucu bu özelliğe izin vermez. -
$veri = 1;
include('dosya.php');
dersen,
dosya.php içerisinden $veri değişkenine ulaşabilirsin. -
İlla GET ile değer alsın dersende, $_GET["veri"]'yi dosya.php'nin içinde tanımla, dosya.php'yi include ettiğinde sayfayada ?veri=foo gibi istek geldiğinde alabilirsin.
a.phpinclude "b.php";
b.phpecho "b.php dosyasi.. ".$_GET["veri"];