Bir PHP giriş sayfası oluşturmak için en iyi yolu nedir?

4 Cevap php

Ben PHP için oldukça yeni ve PHP kimlik doğrulaması uygulamak için bazı en iyi uygulamalar için arıyorum.

Ben Adobe için bir evangelist yaşıyorum ve insanların giriş ekranı için Flex / Flash kullanmak beni rahatsız ediyor şeylerden biridir. Yani bir HTML / PHP giriş sayfasını kullanarak ve sonra esnetin-sonrası için oturum ayarlanmış olan oturum bilgilerini geçen bir blog yazısı / örnek yapmak istiyorum.

Ben hala PHP geçerli bir oturum oluşturmak için tam olarak ne gerekiyor kafam ediyorum ve nasıl çerezleri ayarlar. Yani özellikle bu ilişki örnek veya bilgi çok yararlı olacaktır.

Teşekkür peşin,

= Ryan ryan@adobe.com

4 Cevap

Söylendiği gibi, orada oldukça çok PHP sağlam ve güvenli bir kimlik doğrulama sistemi oluşturmak için, ama temelleri kavramak kolaydır.

Yapmak istediğiniz ilk şey, çağrı session_start(). Bunu yaptıktan sonra almak ve kullanarak oturum değişkenleri set $_SESSION superglobal yapabilirsiniz:

session_start();
$_SESSION['foo'] = $foo;
$bar = $_SESSION['bar'];

Bunu yaptıktan sonra size başarılı bir günlüğüne üzerine geçerli kullanıcı için bilgi giriş kurmak ve onları (bunları kullanmadan önce session_start aramak için hatırlayarak) sayfaları üzerinde devam olabilir. Herhangi bir içerik tarayıcıya gönderilmeden önce de, session_start çağrılmalıdır.

Böyle oturum fiksasyon ve çerez hırsızlık gibi dikkate güvenlik sorunları, ancak vardır. Oturumu tespit edilmesine yönelik bir yaklaşım, örneğin, PHP'nin session_regenerate_id (veya böyle bir şey) kullanılarak ayrıcalıklar yükselti üzerine kullanıcının oturum kimliğini yeniden etmektir.

PHP Security Consortium çok yararlı bilgiler vardır.

Çerezler setcookie işlevini kullanarak manipüle edilebilir.

Bu oldukça geniş bir konu. Ancak, oturumlar / kurabiye iyi bir anlayış iyi bir temel olacaktır. Sen Chris Shiflett's blog bakmak gerekir - o bu konular hakkında iyi mesajların bir yeri vardır.

Ben Adobe için bir evangelist yaşıyorum ve insanların giriş ekranı için Flex / Flash kullanmak beni rahatsız ediyor şeylerden biridir. Yani bir HTML / PHP giriş sayfasını kullanarak ve sonra esnetin-sonrası için oturum ayarlanmış olan oturum bilgilerini geçen bir blog yazısı / örnek yapmak istiyorum.

Burada hedef tamamen emin değilim. Eğer kullanıcının kimliğini doğrulamak için Flash bileşeni gerekiyor? Bu bir istemci-tarafı teknolojisi olduğundan, böyle bir kimlik doğrulama kapsamının sınırlı olurdu.

Gibi form şey login.php sayfası oluşturun:

<form method="post" action="login.php">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit" name="submLogin">
</form>

sonra php mantığı eklemek:

<?
if(isset($submLogin))
{
 $username = $_POST['username'];
 $password = $_POST['password'];

// run checks on vars not to pass on silly data + escape chars

 $query_login = 'SELECT * FROM users 
 WHERE username = ' . $username . ' AND password = ' . $password . ' LIMIT 1';
 $login = mysql_query($query_login, $db_connection) or die();
 $login_result = mysql_num_rows($login);

 if($login_result == 1)
 {
  // success
  session_start();
  $_SESSION['logged_in'] = TRUE;
  // redirect somewhere, set cookies, do whatever you want to do on success
 }
 else
 {
  // fail
  // display error or redirect
 }
}  
?>

$ Db_connection değişken link tanımlayıcı olan - mysql_connect sonucu () veya mysql_pconnect ()

PHP dökümü ve ASP.NET girmektedirler. Tüm bu zaten güvenlik ve üyelik bilgileri ile birlikte, yapılır. =)