|
Yazan
|
Konu: Her gün Farklı bir linke yönlendirmek (Okunma Sayısı 308 defa)
|
|
can
|
Merhaba Arkadaşlar, Benim sıkıntılı bir sorunum var, belki de çok basit bir şey ama o kadar uğraşmama rağmen çözemedim. Şimdi iki tane link var elimde. Birisi indexara.php, diğeri indexara1.php. Ben sayfa açıldığında bir gün birine diğer gün diğerine yönlendirmek istiyorum. İlk etapta basit bir mantıkla şöyle bir şey yaptım. $gun = date("j");
if($gun % 2 == 0 ) {
echo "indexara"; echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara.php">';
}
else{
echo "indexara1"; echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara1.php">';
}
Buradaki mantığım tek çift gibi düşünüp günleri her gün farklı bir linke yönlendirme yapmaktı. Ama işte sorun burada başladı bir ay 31 çektiği zaman tek oluyor ve sonrasında gelen 1 de tek olduğu için aynı link 2 gün boyunca yönlenmiş oluyor. Bunu da çözmek için bu sefer $once = date("d",mktime(0, 0, 0, date("m"), 0, date("Y")));
Bir önceki ayın son gününün ne olduğunu buldum ve tek ise bu sefer link sırasını değiştirdim. Ama bu sefer de başka sorun çıktı. Üst üste 31 çeken Temmuz ve Ağustos ayı gelince bu sefer önce gördüğü 31 e göre değiştirdiği linkler hem kendisi hem de önceki 31 olunca bir sonraki ayda yine aynı olarak geliyor. Yani 31 Ağustos da indexara.php geliyorsa 1 eylülde de indexara.php geliyor.... İşin içinden çıkamadım. Hergün yönlenen linkin değiştiği ve hiç bir gün aynı linkin gelmediği şekilde nasıl yaparım bunu?  ?
|
|
|
|
|
Logged
|
|
|
|
|
can
|
Bir anda forumda gözükmez oldu konu?? Belki cevap yazarsam düzelir diye umuyorum...
|
|
|
|
|
Logged
|
|
|
|
mukremin
Mükremin
PHP Öğrencisi
Offline
Mesaj Sayısı: 116
En büyük sermaye TECRÜBEDIR.
|
Selam aklima söyle bir sey geldi umarim isini görür <?php $gun = date("d"); $tek_gun = array("01","03","05","07","09","11","13","15","17","19","21","23","25","27","29","31"); $cift_gun = array("02","04","06","08","10","12","14","16","18","20","22","24","26","28","30"); if(in_array($gun,$tek_gun)){ header("Location: indexara.php"); } if(in_array($gun,$cift_gun)){ header("Location: indexara1.php"); } ?>
Hadi kolay gelsin.
|
|
|
|
|
Logged
|
Bana hakkı soran oğul haber al aşık sazından, Göğsü peygamber ağacı kılıfı ALİ bezinden.
|
|
|
|
can
|
Teşekkürler Mükremin kardeş, tam olarak benim bulduğum çözümün aynısını yazmışsın.... Ama bu da işimizi çözmüyor. Şimdi ayın 31. de tek arrayine girdi indexara.php yi gösterdi ertesi gün ayın 1. i yine tek array e girer ve yine indexara.php ye gider. Ben işte 31. de indexara.php ye gidince ayın 1. de indexara1.php ye gitmesini sağlamaya çalışıyorum. Yani hiç bir gün aynı sayfaya gitmeyecek her gün farklı sayfa. Sağolasın, aramaya devam 
|
|
|
|
« Son Düzenleme: 02, 2008, 07:11:09 am Gönderen: can »
|
Logged
|
|
|
|
|
can
|
Gerçekten çok komik, yahu kendi sorduğum soruya gülüyorum. İşte insanın bazen beyni duruyor yoğunluktan çözüm çok kolay her gün ayrı link istiyorsak..... <?php
$gun = date("l"); switch($gun){ case "Monday": echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara.php">'; break; case "Tuesday": echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara1.php">'; break; case "Wednesday": echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara.php">'; break; case "Thursday": echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara1.php">'; break; case "Friday": echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara.php">'; break; case "Saturday": echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara1.php">'; break; case "Sunday": echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara.php">'; break; default: echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara.php">'; break; }
?>
Ama gün sayıları ile de mutlaka çözülebilmeli bu ona da taktım arıyorum  )
|
|
|
|
« Son Düzenleme: 02, 2008, 07:38:01 am Gönderen: can »
|
Logged
|
|
|
|
mukremin
Mükremin
PHP Öğrencisi
Offline
Mesaj Sayısı: 116
En büyük sermaye TECRÜBEDIR.
|
evet anladim orasini hic düsünmemistim  ama vermis oldugun örnek cok mantikli aylarla yaparsan burayada yazda bizde bilelim.
|
|
|
|
|
Logged
|
Bana hakkı soran oğul haber al aşık sazından, Göğsü peygamber ağacı kılıfı ALİ bezinden.
|
|
|
|
can
|
Son bulduğum da şişti  Bu sefer de pazardan sonra pazartesi yine aynı link geliyor yani pazar ile pazartesinin linkleri aynı oluyor bu seferde. Hem ay hem günleri birleştireyim dedim bu sefer de her ay gelen gün değişiyor bi de ayın sonu tek mi çift mi haydi bakalım karıştı yine iş  ))) Vallahi bir mantık geliştirsem yazarım da mantığını bulamıyorum bulabilen olursa söylesin, sanırım baya zorlu bir şeyin peşindeyim.... Ya da çözüm çok basit karmaşık düşündüğümden bulamıyorum
|
|
|
|
|
Logged
|
|
|
|
tpaksu
Yeni Kullanıcılar
Offline
Mesaj Sayısı: 28
|
evet çözüm çok basit  her gün artan bir sayacın olsun veritabanında ona göre sayfaları yazdır  yada veritabanın yoksa bi txt dosyasına yazdır. vt için gun | sayac ----------------------- 2008-05-03 | 43123 sayfaya girildiğinde günün aynı gün içerisinde olup olmadığını kontrol ettirirsin. aynıysa sayacın mod 2'si değilse sayacı bi arttır sonra sayacın mod 2'si
|
|
|
|
|
Logged
|
|
|
|
|
can
|
tpaksu kardeş teşekkür ederim  ) Veritabanı veya txt ile tabi ki çözümü biliyorum  ))) O çok kolay evet ama ben taktım bunu veritabanı veya txt kullanmadan bir yolunu bulmak istiyorum. Mutlaka olmalı, kod yazarak çözmek istiyorum:)) Ama bulamadım yakında inadı bırakıp sanırım txt ile işi çözeceğim ama ara sıra da düşünmeye devam edeceğim  ))) Sağolasınnnn
|
|
|
|
|
Logged
|
|
|
|
|
can
|
Sonunda çözdüm arkadaşlar, veritabanı veya text olmadan lütfen bir inceleyin bir hata var ise olmuyorsa bana bildirin. Bana şimdilik olmuş gibi göründü. Haftaya bakıyorum çift ise başka tek ise baika şekilde döndürüyorum günlerde gelen linkleri.... <?php
$week = date("W"); $gun = date("l");
if($week % 2 == 0 ){
switch($gun){ case "Monday": echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara.php">'; break; case "Tuesday": echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara1.php">'; break; case "Wednesday": echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara.php">'; break; case "Thursday": echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara1.php">'; break; case "Friday": echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara.php">'; break; case "Saturday": echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara1.php">'; break; case "Sunday": echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara.php">'; break; default: echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara.php">'; break; }
}
else{
switch($gun){ case "Monday": echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara1.php">'; break; case "Tuesday": echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara.php">'; break; case "Wednesday": echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara1.php">'; break; case "Thursday": echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara.php">'; break; case "Friday": echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara1.php">'; break; case "Saturday": echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara.php">'; break; case "Sunday": echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara1.php">'; break; default: echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara.php">'; break; }
}
?>
|
|
|
|
« Son Düzenleme: 03, 2008, 12:10:14 pm Gönderen: can »
|
Logged
|
|
|
|
tpaksu
Yeni Kullanıcılar
Offline
Mesaj Sayısı: 28
|
Kodda sorun yok gibi duruyor ama işlemlerini kısaltabilirsin. $page[0] = "<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara.php">"; $page[1] = "<META HTTP-EQUIV="Refresh" CONTENT="0; URL=indexara1.php">"; echo $page[((intval(date("W"))+intval(date("l")))%2)];
senin mantığa göre bunun da çalışması gerekir o koda göre. Bi dene bence.
|
|
|
|
|
Logged
|
|
|
|
|
 |