İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Bir Elseif Problemi

OsmanAtabey

0
İyinet Üyesi
Katılım
26 Mart 2005
Mesajlar
922
Reaction score
4
PHP:
elseif ($varsa == true and $kontrol[0] != 'sayfa') { $git = "hata"; }

Url içinde sayfa kelimesi varsa sayfalandırmayı yap yoksa şunu yap gibi bir kontrolüm var. Yukarıdaki elseif kısmı bunu yapıyor. Fakat benim bu kontrolü hem sayfa hemde page için kullanmam gerekiyor.

Kısacası :

domain/kategori?sayfa=5 dendiğinde
ve
domain/baska_bir_kategori?page=3 dendiğinde sayfalandırma sorunsuz çalışsın.


Aşağıdaki şekilde denedim fakat tek bir kontrolü kabul ediyor ve diğerini tanımıyor.

PHP:
elseif ($varsa == true and $kontrol[0] != 'sayfa' or $varsa == true and $kontrol[0] != 'page') { $git = "hata"; }
 

OsmanAtabey

0
İyinet Üyesi
Katılım
26 Mart 2005
Mesajlar
922
Reaction score
4
Kendim sorup kendim cevap vermiş olucam :) or yerine and yeterliymiş

PHP:
elseif ($varsa == true and $kontrol[0] != 'sayfa' and $varsa == true and $kontrol[0] != 'page') { $git = "hata"; }
 

metadige

0
İyinet Üyesi
Katılım
23 Aralık 2005
Mesajlar
354
Reaction score
4
Arkadaşım Sorunu çözmüşsün zaten ama bilgi olarak yazıyım bulunsun. Or bilindiği gibi veya demektir. Yorumlayıcı or ile yazılan şartlara bakar, belirtilen şartlardan herhangi biri doğru ise true dönderir. O nedenle şaşırıp yanlış kullanılmaması gerekir. Küçük bir örnek, diyelim bir sayının 5 ile 10 arasında olup olmamasına bakacağız:

PHP:
//Doğru kullanım
$sayi = 7;
if($sayi > 5 && $sayi < 10) echo 'Sayı 5 ten büyük, 10 dan küçük';
else  echo 'Şart Sağlanmadı';

echo '<br /><br />';

//Yanlış kullanım
$sayi = 3;
if($sayi > 5 || $sayi < 10) echo 'Sayı 5 ten büyük, 10 dan küçük';
else echo 'Şart Sağlanamadı';
 

Invictus

0
İyinet Üyesi
Katılım
4 Şubat 2010
Mesajlar
328
Reaction score
8
Konum
istanbul
şöyle olması gerekmez mi? ben mi yanlış anladım :s

PHP:
elseif ($varsa == true and ($kontrol[0] != 'sayfa' or $kontrol[0] != 'page')) {
    $git = "hata";
}
 

OsmanAtabey

0
İyinet Üyesi
Katılım
26 Mart 2005
Mesajlar
922
Reaction score
4
Invictus maalesef o şekilde diğer kategori ve alt kategori sayfaları bile göremiyorum + sayfalandırma bölümüne ulaşamıyorum.

Aslında şu anda and ile yaptığım şekil bile yetersiz benim için çünkü page ile sayfalandırma yapan bölüme sayfa yazdığımda kabul ediyor.( Tam tersi de aynı şekilde ) Halbuki page haricinde bir girdi olduğunda hatalı bölüme yollamasını istiyorum.

Örnek :

domain/kategori?page=3 yerine domain/kategori?sayfa=3 yazarsak
Url üzerinde : domain/kategori?sayfa=3 şeklinde görünüyor fakat sayfalandırma yapılarak domain/kategori?page=1 sayfasındaki veriler ekrana basılıyor. Kısacası sayfa değişkenini kabul ediyor normal olarak.
 

metadige

0
İyinet Üyesi
Katılım
23 Aralık 2005
Mesajlar
354
Reaction score
4
Arkadaşım yukarıda ilk sorduğuna bakılırsa, invictusun söylediği şekilde yapman yeterlidir. Ama son mesajında farklı bir şey söylemişsin.

Eğer page değişkeni ile ayrı, sayfa değişkeni ile ayrı sayfalama yapıyorsan, ona göre ayırman lazım yaptığın yerde. Sanırım dil seçimine göre yapmaya çalışıyorsun, çünkü kodların diğer kısımlar görünmediğinden ve sen de daha açık söylemediğinden bilemiyoruz, yanılıyorsam söyle.

Yani Diyelim page ile ingilizce, sayfa ile türkçe seçili iken yapıyorsan eğer. Ya sayfalama yapan yerde farklı kodlar kullanıyorsundur, o zaman zaten tek değişkene göre kontrol yaparsın. Ya da önce Get' den gelmesini istediğin değeri belirtirsin, geldiğinde de ona göre kontrol yaparsın. Senin yazdığın kısma uyarlarsak:

PHP:
$sayfa = ($dil=='tr') ? 'sayfa' : 'page'; //olması gereken değikeni belirtirsin

if(diğer şartların neyse){
....
....
}
elseif($varsa == true and $kontrol[0] != $sayfa){
 $git = "hata";
}
 

OsmanAtabey

0
İyinet Üyesi
Katılım
26 Mart 2005
Mesajlar
922
Reaction score
4
metadige Herşey tek sayfadan idare ediliyor. Url parçalara bölünüyor ve sayfalandırmaya ait parça söylediğin gibi 2 ayrı dil seçeneğinde kullanılıyor. Dil seçeneğine ait kodların içinde GET ile ilgili parça alınarak sayfalandırma yapılıyor.

Yaptığım kodlamada herşey if ve elseif 'lere göre işlediği için sonradan eklenen şeyleri entegre etmede zorlanıyorum. Çünkü bir yeri yaptım derken diğer bir taraftan sorun çıkabiliyor. Şimdilik bu şekilde idare edeyim daha sonra senin dediğin mantıkla yapmaya çalışırım. Teşekkürler.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst