• 11-04-2022, 18:01:09
    #1
    <?php
    $addresses = [
        'https://domain1.com',
        'https://domain2.com',
        'https://domain3.com',
        'https://domain4.com',
        'https://domain5.com',
    ];
    
    $size = count($addresses);
    $randomIndex = rand(0, $size - 1);
    $randomUrl = $addresses[$randomIndex];
    
    header('Location: ' . $randomUrl, true, 303);
    
    ?>
    Yönlendirmelerde karışık atamasını istemiyorum, yani ilk sayfaya gidildiğinde domain1 e sonraki giren kişinin domain2'ye sonra domain3'e sırayla yönlendirtebileceğim bir yolu var mıdır ? Bu şekilde random sağlatabiliyorum fakat dizinden sırayla yaptıramadım. Teşekkürler
  • 11-04-2022, 18:24:44
    #2
    Nasıl yani, anlamadım.

    Şimdi bir önceki kullanıcı domain1'e yönlendiyse, bir sonraki domain2'ye mi yönlenecek?
  • 11-04-2022, 18:26:35
    #3
    oktayc0 adlı üyeden alıntı: mesajı görüntüle
    Nasıl yani, anlamadım.

    Şimdi bir önceki kullanıcı domain1'e yönlendiyse, bir sonraki domain2'ye mi yönlenecek?
    Aynen hocam sırayla 5belirtilen domainlere gidecek, karışık gitsin istemiyorum
  • 11-04-2022, 18:31:13
    #4
    Bunun içi veritabanı veya json veya txt gibi birşeyde ufakta olsa bir kayıt tutmalısın.
    Ben sana .txt için bir örnek burakıyorum.

    $dosya = fopen('son_site.txt','r');
    $son_url = fgets($dosya);
    fclose($dosya);
    
    $addresses = array(
        0 => 'https://domain1.com',
       1 => 'https://domain2.com',
        2 => 'https://domain3.com',
        3 => 'https://domain4.com',
        4 => 'https://domain5.com',
    );
    
    if ($son_url >= count($addresses)) {
    $son_urlx = 0;
    } else {
    $son_urlx = $son_url + 1;
    }
    
    
    $dosya = fopen("son_site.txt","w+");
    fwrite($dosya,$son_urlx);
    fclose($file);
    
    header("Location: ".$addresses[$son_url]);
  • 11-04-2022, 18:34:14
    #5
    Hocam dışardan veri çekmeden veya sql kullanmadan yapma şansım yok mu acaba bunu ? Txt girdisi ile yaptığımda biraz fazla hitlenmede sorun çıkartıyor ilginç bir şekilde, yavaşlamalar başlıyor. Teşekkür ederim
  • 11-04-2022, 19:01:09
    #6
    cheavart adlı üyeden alıntı: mesajı görüntüle
    Hocam dışardan veri çekmeden veya sql kullanmadan yapma şansım yok mu acaba bunu ? Txt girdisi ile yaptığımda biraz fazla hitlenmede sorun çıkartıyor ilginç bir şekilde, yavaşlamalar başlıyor. Teşekkür ederim
    Bios pili olmadan bir sonraki açılışta bilgisayar saati sıfırlanır.
    Burada da aynı prensip geçerli, önceki datayı bir şekilde elde tutman gerekli.
    Önceki kullanıcı eğer 3. siteyi ziyaret ettiyse, 3. sitenin verisini bir yerde tutmalısın ki, bir sonraki kullanıcı geldiğinde nereden devam edeceğini bilsin.

    Başka yöntem var ama kesinlik sağlamaz.

    Ayrıca bu tarz ufak işlemler hiç bir yavaşlama yapmayacaktır.
    Sitenizdeki bir logonun sayfanızın açılış hızına etkisinin 10'da 1'i kadar etki bile yapmayacak kadar ufak bir işlem bu.
  • 11-04-2022, 20:54:32
    #7
    Evet dediklerinize hak veriyorum fakat ilginç bir şekilde txt okuyup yazarken bazen saçmalıyor anlam veremedim fakat sizin verdiğiniz kodda bir sorun çıkmadı. Çok teşekkür ederim hocam, peki 5 yönlendirmeden sonra 6. giren için yönlendirme yapmıyor. Sonra 7. tekrar 1 den başlıyor. Bu sorunu nasıl çözebilirim ?
  • 11-04-2022, 21:44:17
    #8
    cheavart adlı üyeden alıntı: mesajı görüntüle
    Evet dediklerinize hak veriyorum fakat ilginç bir şekilde txt okuyup yazarken bazen saçmalıyor anlam veremedim fakat sizin verdiğiniz kodda bir sorun çıkmadı. Çok teşekkür ederim hocam, peki 5 yönlendirmeden sonra 6. giren için yönlendirme yapmıyor. Sonra 7. tekrar 1 den başlıyor. Bu sorunu nasıl çözebilirim ?
    Aslında kontrolü kodların içine eklemiştim.

    Örneğin son kullanıcı 4. siteye girdi ve sizinde 4 url'niz var.
    4. url'ye uğrayan kullanıcı, toplam urllerin gezildiğini işaretler ve bir sonraki kullanıcı için adımı sıfırlar ve 0. indis'e geri döndürür.

    Bir satır kaçırmışım yazarken, altta düzeltilmiş halini bıraktım, birde böyle denermisin.


    if ($son_url >= count($addresses)) {
    $son_urlx = 0;
    $son_url = count($addresses) - 1; # BU SATIRI EKLE
    } else {
    $son_urlx = $son_url + 1;
    }
  • 11-04-2022, 21:48:43
    #9
    oktayc0 adlı üyeden alıntı: mesajı görüntüle
    Aslında kontrolü kodların içine eklemiştim.

    Örneğin son kullanıcı 4. siteye girdi ve sizinde 4 url'niz var.
    4. url'ye uğrayan kullanıcı, toplam urllerin gezildiğini işaretler ve bir sonraki kullanıcı için adımı sıfırlar ve 0. indis'e geri döndürür.

    Bir satır kaçırmışım yazarken, altta düzeltilmiş halini bıraktım, birde böyle denermisin.


    if ($son_url >= count($addresses)) {
    $son_urlx = 0;
    $son_url = count($addresses) - 1; # BU SATIRI EKLE
    } else {
    $son_urlx = $son_url + 1;
    }
    Çook teşekkür ederim hocam sorun çözülmüştür