Çerezler PHP

1 Cevap php

Nasıl olur ben "yap-" bu komut için bir otomatik olarak oturum?

if (isset($_POST['login'])) {
$query = mysql_query("
          SELECT * FROM users 
          WHERE user_name = '".mysql_real_escape_string($_POST['username'])."' 
      AND user_password = '".mysql_real_escape_string($_POST['password'])."'
");

/* wrong login information? terminate the script */
if (!mysql_num_rows($query)){
header("Location: ./");
exit();
}

/* set session with unique index */
$_SESSION['id'] = mysql_result($query, 0, 'user_id');
mysql_query("UPDATE users SET user_online = '1' WHERE user_id = '{$_SESSION['id']}'");
header("Location: ./");
exit;
}

1 Cevap

İlk olarak, bazı öneriler:

  1. Sen değil düz metin olarak, salted hashes olarak şifreleri saklamak gerekir.
  2. Eğer genel olarak kimlik doğrulaması yapmak biçimini değiştirmek isteyebilirsiniz. (Zaten "Select *" yapmıyoruz) ve kullanıcı yazdığınız şifre tuzlu karma karşılaştırın şifre seçmek için iyi bir fikir olabilir

Eğer doğru anlamak Şimdi, temel fikir oturum kullanıcı benzersiz kullanıcıyı tanımlayan bir şey ile bir çerez saklamak (ama emin kolayca kaçırılan bir şey değildir yapmak gerektiğini nasıl tutmak, soruyorsun - bu yüzden SHA1 karma falan gibi gerçekten uzun bir dize, yapmak) kullanıcı oturum tutmak için çerez bir uzak son kullanma tarihini ayarlayın.

Here is the function you use to set cookies in PHP.

Sonra sayfayı yüklediğinizde, bu çerez olup olmadığını görmek için kontrol edebilirsiniz. Çerez var ve kullanıcı bir OTURUM değişken yoksa, ona bir tane atayabilirsiniz.