PHP: Kullanıcı bir sayfa acess varsa Kullanıcı Giriş Sistemi / Giriş

2 Cevap php

Bu biraz noob soru ama .. Onun herkese bazen olur.

Ben bir giriş sistemi gerekir böylece bir kez benim için bir tane yapmak için Dreamweaver kullandım $ _SESSION ile hiç çalışmamış.

I have a page where he asks for user name and password. And if loggin successful its goes to other page. Else it says in the login page.

The problem its that the Login, system that once worked, now isn't working. Because the he stays in the login page. And i've done a "echo $_SESSION['MM_Username'];"

Ve hiçbir şey geri döndü. Yani ben bu i erişim için çerez yaratmak anlamına gelir düşünüyorsun?

Değil mi? Ben oturumunda bir yankı şey görüntüler olduğunu düşünüyorum.

Peki ben biraz yardım adamlar olabilir? Belki basit bir giriş sistemi. Dreamweaver loggin değil.

Ben giriş sayfasında kullanıcı giriş kodu yayınlayacağız.

// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['username'])) {
  $loginUsername=$_POST['username'];
  $password=$_POST['passe'];
  $MM_fldUserAuthorization = "power";
  $MM_redirectLoginSuccess = WWW."/administrador";
  $MM_redirectLoginFailed = WWW."/login";
  $MM_redirecttoReferrer = false;
  mysql_select_db($database_dbconnect, $dbconnect);

  $LoginRS__query=sprintf("SELECT username, passwd, power FROM `user` WHERE username=%s AND passwd=%s",
  GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); 

  $LoginRS = mysql_query($LoginRS__query, $dbconnect) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {

    $loginStrGroup  = mysql_result($LoginRS,0,'power');

    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;       

    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];  
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}

Ben çalıştım. o $ MM_redirectLoginSuccess ve $ MM_redirectLoginFailed de orada görmek değişiklikler ve hiçbir şey veritabanında değişti.

Bazı onun yorgun. Sadece basit bir giriş kullanıcı kodu yayınlamak, bazı ama, iyi olanları buldum. Ben gerisini yapmak.

Whats onun tüylerini diken diken biliyor musunuz? İşe yaradı. Ben çalıştım olmadı geri geldi sonra, bilgisayarı kapatın, sonra kurtardı.

Tekrar teşekkürler.

2 Cevap

Ben sizin veritabanı çalışırken alabilir?

Hata ayıklama değişkenleri türünü (boş bulunuyor özellikle eğer) ayıklama konum değişken göreceksiniz bu şekilde var_dump ($ var) kullanmayı deneyin, aksi takdirde sadece kod geçiyor başlar.

$ LoginRS__query - Bu yankı, ve oluşturulan ediliyor ne sorgu bkz. Sen veritabanı sayesinde kendinizi o çalıştırın ve ne olduğunu görün.

header ("Location:". $ MM_redirectLoginSuccess); - Herhangi bir veri (değişkenler vb yankılandı) gönderilmiş olması durumunda bu alışkanlık başlıklar zaten gönderildi olacak gibi kullanıcıyı yönlendirmek mümkün olabilir unutmayın.

Yardımlarınız için teşekkürler. Onun çatışma çeşit değil, hangisi, ben bu harcamak için çok zaman vardı emin olarak, ben hızlı bir şekilde çalışmak yapmak zorunda kaldı.

Ben gönderdiniz ilk kod, kullanıcının güç kontrol içerdiği, bu kodunu yerleştirdiğiniz ve yönetici paneli bittikten sonra ben sadece bunu kullanabilirsiniz, çünkü ben bunu kullanarak değildi.

Ben o kısmı kaldırılır ve ok çıktı.

// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['username'])) {
  $loginUsername=$_POST['username'];
  $password=$_POST['passe'];
  $MM_fldUserAuthorization = "";
  $MM_redirectLoginSuccess = WWW."/administrador";
  $MM_redirectLoginFailed = WWW."/login";
  $MM_redirecttoReferrer = false;
  mysql_select_db($database_conn, $dbconnect);

  $LoginRS__query=sprintf("SELECT username, passwd FROM `user` WHERE username=%s AND passwd=%s",
    GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); 

  $LoginRS = mysql_query($LoginRS__query, $dbconnect) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
     $loginStrGroup = "";

    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;       

    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];  
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}

Şimdi ben sadece lazım benim öz tarafından güç kontrol sistemi, ama bu bir sorun olmayacak.

Teşekkürler.