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

0
Onaylı Üye
Üye
Katılım
31 Ekim 2007
Mesajlar
176
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
 
0
Onaylı Üye
Üye
Katılım
18 Mart 2006
Mesajlar
2,416
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.
 
1
Onaylı Üye
Üye
Katılım
24 Ocak 2005
Mesajlar
7,131
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;

}
?>
 
0
Onaylı Üye
Üye
Katılım
31 Ekim 2007
Mesajlar
176
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
 
1
Onaylı Üye
Üye
Katılım
24 Ocak 2005
Mesajlar
7,131
Tepki puanı
86
İlk verdiğiniz kodda yer alan echo $icerik; yaptığınızda hizmet, hakkimizda vs... çıkıyordu dimi ?
 
0
Onaylı Üye
Üye
Katılım
15 Aralık 2006
Mesajlar
1,153
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.
 
0
Onaylı Üye
Üye
Katılım
31 Ekim 2007
Mesajlar
176
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.
 
0
Onaylı Üye
Üye
Katılım
31 Ekim 2007
Mesajlar
176
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.
 
0
Onaylı Üye
Üye
Katılım
12 Aralık 2004
Mesajlar
9,603
Tepki puanı
106
Konum
AZ
register_globals zaten artık kullanılmayan bir özellik, tüm kodları _GET, _REQUEST e uygun yazmakta fayda var.
 
Geri
Üst