Ne bir bağlantıdan farklı URL'ler kullanıcıları yönlendirmek için iyi bir yol olurdu?

4 Cevap php

Şimdi birkaç ay için PHP ile çalışıyoruz. Yönetici, öğretmen, öğrenci: ben kullanıcı üç grup ile küçük bir PHP sitesi bir araya getirdik.

İşte yapmak ne istiyorsunuz:

Öğrenciler farklı gruplar bulunmaktadır. Ben şimdi beş farklı gruplar var. Bu beş grubun her biri bir online sınıf onları yönlendiren bir bağlantı erişimi vardır. Biz derslik değişken bir dizi olabilir.

Let's say we have five classrooms for Group 1. Let's say that 20 students from Group 1 click on a link at 5:00p.m. This link brings them to an online classroom. I would like the first five students to be redirected to one classroom/link, the second five students redirected to another classroom/link, the third five students redirected to another classroom and so on.

Sorularım PHP bunu iyi olurdu, değil mi? JavaScript? Bu aşırı karmaşık ya da aslında oldukça önemsiz mi?

Şerefe!

Sam

4 Cevap

Bu sunucu tarafında yapılması en iyisidir. Hepsini aynı link vermek. Bağlantı arkasında sayfa / PHP dosyası üzerinde bağlantı talep edildiğini kez sayan bir sayaç tutmalıdır. Sayısı dayanarak, location başlığı kullanılarak istenilen sayfaya yönlendirme.

Burada sorun, sunucuda depolanan bir tür sayacı yani, bu gerçekleşmesi için bazı sunucu tarafı durumuna ihtiyaç vardır.

Ayrıca bu sayaç okuma gelen güncelleme kadar kilitli olabilir, veya başka numaralar kapalı olacağını dikkatli olmak gerekir. Birkaç kişi birbirine yakın bağlantısını tıklarsanız, hepsi aynı sayaç değerini okuyabilir ve bir sınıfta en fazla 5 kişi ile bitebileceğini.

Eh, bir veritabanında kadar link tıklandığında insanların sayısını saklamak olduğunu varsayarak:

// Get the number of people who clicked from a database or somewhere
$people_clicked = getCurrentNumber();

// Update the Number in the Database ASAP (As per comments)
updateNumber();

// Divide it by room number
// Make sure it is a whole number
$room = floor($people_clicked/5);

// Define each room into an array
$room_links = array("http://firstroom.com", "http://secondroom.com");

// Redirect
// This redirects people 1-5 to the first item in the array, 6-10 to the second, etc.
header("Location: ".$room_links[$people_clicked]);

Temelde, bağlantı bir sayfaya yönlendirme var. Sayfa kadar linke tıklayan insanların sayısını kapmak. Sonra onlar için gidiyoruz hangi sınıf bulmak ve sonra veritabanında sayı güncelleyin. Son olarak, doğru yere yönlendirmek.

Orada açık bir oda bir sürü, ama bu temel adımlardır.

Yorumlar dediği gibi de, bunu mümkün olduğu çağrı yakın olarak yazılır sağlamak amacıyla aynı anda sayısını okumak / yazmak isteyebilirsiniz. Bazı moda DB sayacını kilitlemek istiyorum, ve komut ikinci bir kilitli, uyku karşılaşır ve tekrar deneyebilirsiniz.

Ben "koltuk" bir dizi açısından sorunu tanımlamak ve bir sonraki kullanılabilir koltuk bulmak için dizinin arama.

$seat[0] => 'link1';
$seat[1] => 'link1';
etc.
$seat[4] => 'link1';
$seat[5] => 'link2';
$seat[6] => 'link2';
etc.

Bir öğrenci bir sınıfta bırakır Bu şekilde, koltuk sonraki öğrenci için ücretsizdir. Bu sınıflar (bant genişliği) gerekli sayısını en aza indirir.