Türkiye'nin En Eski Webmaster Forumu İyinet'e Hoşgeldiniz!

Tuhaf bi durum var switch fonksiyonu çalışmıyor

BordoMavi

0
Onaylı Üye
Üye
Katılım
31 Ekim 2007
Mesajlar
176
Açılan Konu
16
Tepki puanı
0
Konum
Hirçın Sulardan
PHP:
<?
switch($icerik){
case hizmetler:
echo "hizmetler buraya eklenecek";
break;

case hakkimizda:
echo "hakkımızda buraya eklenecek";
break;

case iletisim:
echo "iletişim bilgileri buraya eklenecek";
break;

}
?>
kodum yukarda verdiğim şekilde herhangi bir hata yok. kod dün çalışıyordu fakat bugün sadece ftpsine girip bikaç düzenleme yaptım ve linklere tıkladığımda urller case lere gidiyor fakat caselerin içeriği sayfada hiçbir şekilde görüntülenmiyor. 4 ayrı bilgisayardan denedim firefox ve internet explorerda kullandım fakat sürekli durum aynı daha önceden yapmış olduğum bir site vardı orası içinde aynı durum geçerli ftpye girdikten sonra şuan admin panelindeki caselerin hiç biri ekrana basılmıyor. ayrıca 2 farklı hosttada denedim. sayfalarda herhangi bir kod eklenmesi veya dizinde farklı bir dosyada yok sabah 11 den beri uğraşıyorum birşey bulamadım başına gelen biri varsa yardımcı olursa sevinirim veya ne yapacağımı bilen biri şimdiden teşekkürler
 

zbahadir

0
Onaylı Üye
Üye
Katılım
19 Mart 2006
Mesajlar
2,416
Açılan Konu
23
Tepki puanı
0
Konum
Trabzon
Kodlarda bir sorun yok;
$icerik değişkenine atanan verilerde bir sorun olabilir.
scwitch fonksiyonunun hemen üstünde;
echo $icerik;
şelinde görüntüleyerek içeriğin doğru gelip gelmediğini test edebilirsiniz.
 

yagmayok

1
Onaylı Üye
Üye
Katılım
25 Ocak 2005
Mesajlar
7,131
Açılan Konu
304
Tepki puanı
86
Eğer sorunu halledemediyseniz birde şu şekilde deneyin ?

PHP:
<?

function hizmetler(){
 ?>
hizmetler bölümü
<?  }

function hakkimizda(){
 ?>
hakkımızda bölümü

<?  }
function iletisim(){	
?>
iletişim bölümü

<?
}
switch($_GET['icerik']){

case "hizmetler";
hizmetler();
break;

case "hakkimizda";
hakkimizda();
break;

case "iletisim";
iletisim();
break;

}
?>
 

BordoMavi

0
Onaylı Üye
Üye
Katılım
31 Ekim 2007
Mesajlar
176
Açılan Konu
16
Tepki puanı
0
Konum
Hirçın Sulardan
gelen değişkenlerde bir proıblem yok her zaman yaptığım gibi index.php?icerik=hizmet şeklinde çağırıyorum ve test etmek içinde sadece echoyla ekrana yazı yazdırıyorum fakat ne yazıkki hiç bir şekilde ekranda yazılar görüntülenmiyor. tuhaf olan şu switche default değerini atadığımda o ekranda görünüyor. ayrıca switch yerine if ile kontrol yaptım fakat ne olduysa çalışan kod bir türlü çalışmıyor @yagmayok senin verdiğin çalıştı fakat daha önce yüzlerce defa yazdığım aynı kod hatta çalıştığını gördüğüm kod şuan çalışmıyor.

düzeltme:
$_GET[] kullanınca herhangi bir problem çıkarmıyor şuan için bu bana yeterli teşekkür ederim @yagmayok
 

yagmayok

1
Onaylı Üye
Üye
Katılım
25 Ocak 2005
Mesajlar
7,131
Açılan Konu
304
Tepki puanı
86
İlk verdiğiniz kodda yer alan echo $icerik; yaptığınızda hizmet, hakkimizda vs... çıkıyordu dimi ?
 

Grafix

0
Onaylı Üye
Üye
Katılım
16 Aralık 2006
Mesajlar
1,153
Açılan Konu
81
Tepki puanı
0
Konum
Bursa
sorun case değerini tırnak içine almaman.

PHP:
case hizmetler:
echo "hizmetler buraya eklenecek";
break;

şeklinde değil,

PHP:
case "hizmetler":
echo "hizmetler buraya eklenecek";
break;

şeklinde kullanman gerekiyor.
 

BordoMavi

0
Onaylı Üye
Üye
Katılım
31 Ekim 2007
Mesajlar
176
Açılan Konu
16
Tepki puanı
0
Konum
Hirçın Sulardan
@grafix cevap için teşekkür ederim fakat $icerik değişkenini $_GET['icerik'] yapmadığım sürece caseleri hiçbir şekilde görmüyor daha öncedende tırnaksız kullanıyordum fakat çalışıyordu 2 gündür çalışmıyor sadece.

@yagmayok echoyu yalnız kullandığımda herhangi bir sorun yaşamıyordum ama değişkeni $_GET[] ile kullanmadığımda içerik hiç bir şekilde görüntülenmiyor. neyse bu çözüm şimdilik bana yeterli hepinize teşekkür ederim.
 

BordoMavi

0
Onaylı Üye
Üye
Katılım
31 Ekim 2007
Mesajlar
176
Açılan Konu
16
Tepki puanı
0
Konum
Hirçın Sulardan
uzun zaman sonra sorunu çözdüm aslında sorun register globals ın kapalı olmasından kaynaklanıyormuş. diğer arkadaşlarında işine yarar diye yeni bir konu açmadan çözümünü yazıyorum. sayfanın en tepesinde bir yere

$icerik = $_REQUEST['icerik'];

şeklinde yazdığımızda sorun ortadan kalkıyor.
 

Angelo

0
Onaylı Üye
Üye
Katılım
13 Aralık 2004
Mesajlar
9,603
Açılan Konu
164
Tepki puanı
106
Konum
AZ
register_globals zaten artık kullanılmayan bir özellik, tüm kodları _GET, _REQUEST e uygun yazmakta fayda var.
 
Üst