PHP ve MySQL kullanarak kimliği göre iki farklı giriş sayfaları

4 Cevap php
		$query = "SELECT *
              FROM users
              WHERE username = '".mysql_escape_string($username)."'
              AND password = '".mysql_escape_string($password)."'";
		$result = mysql_fetch_array(mysql_query($query));

Şimdi bu i admin ve moderatör gerekiyorsa şimdi ben yalnız belirli bir kimliği ile aynı kullanıcıların nasıl işleyebilir, genel ziyaretçiler için benim sorgu olduğunu.

Benim SQL Query.

CREATE TABLE IF NOT EXISTS `users` (
  `yourID` int(10) unsigned NOT NULL auto_increment,
  `username` varchar(26) collate latin1_general_ci NOT NULL,
  `password` varchar(26) collate latin1_general_ci NOT NULL,
   PRIMARY KEY  (`yourID`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=87992 ;

Giriş sayfası yönetici ve moderatör için aynı olacaktır.

4 Cevap

Ben bu soruyu anladığımdan emin değilim. Ama son zamanlarda ben bir kullanıcı hesabı ve bir yönetici hesabı gerekli bir giriş sistemi uygulanmaktadır. Ben o kullanıcının yetki seviyesi ile ilgili bir sayısal dizi saklanan "ayrıcalık" benim kullanıcıların tabloya bir sütun eklendi. Kullanıcı sayfayı görüntülemek için erişim gerekli düzeyde olsaydı Sonra kısıtlı sayfalarda sadece görmek için kontrol.

  • Ayrıcalık (tinyint) özniteliği kullanıcı tablo ekleyin.
  • Add active (Boolean) attribute to user table.
  • Add cookie (varchar) attribute to user table.

Sayfa erişildiğinde / / Ran

checkLogin ($ ayrıcalık) {

//Use Cookie to determine which user is accessing page
//Determine if user is active (toggled when logged in)
//retrieve users privilege level
//check against passed in value 
//return true or false

}

Web sitesi için / / Php.

if (checkLogin (0)) {

//0 – guest
//1 – user
//3 – admin

}

Ben size 'normal kullanıcıların' ve 'yöneticileri' arasında ayrım yapmak istediğiniz tahmin ediyorum. Neden sadece, örneğin, kullanıcıların tabloya başka bir sütun eklemek değil AdminStatus ve hiç bir evet için bir int, sıfır yapmak. Sonra giriş sorguda sadece AdminStatus kontrol edin.

Sorunuzu doğru anlamak ise bilmiyorum, ama normalde bir giriş sistemi kullanıcı rolleri arasında herhangi bir fark olmamalıdır. Giriş yaptıktan sonra, kullanıcı hakları kaydedilir ve ve uygulama kısıtlı alanlara ona erişim izni kontrol edebilirsiniz.

Ne istediğinizi yanlış anlama olabilir, ancak kullanıcı türleri arasındaki farkı ayırt etmek için, kullanıcıların tabloya başka bir sütun ekleyebilirsiniz. Bunun için bir tamsayı sütun ekleyebilirsiniz:

ALTER TABLE users ADD userlevel tinyint NOT NULL default 0;

Sonra, örneğin, kullanıcı yapalım istiyorum ne göre bu ayarlayabilirsiniz

0 = normal user 
1 = moderator 
2 = admin
etc.

Size kullanıcı günlükleri sonra sorguda bu değeri almak ve kullanmak zaman / kısıtlı eylemlere erişim izni için oturum vb saklayın.

Ayrıca tamsayı alternatif olarak bunun için MySQL enum türünü kullanarak bakmak olabilir.