Kullanıcı PHP ile değişken kaydedilir

1 Cevap php

Ben bunları kaydeder ya bir yapı ile Giriş adında bir sınıf inşa ettik ya da ... Ben de '... kullanıcı oturum olup olmadığını kontrol etmek içindir isAuthenticated isminde bir statik işlevi yok statik işlevleri vb ile karıştırmasını ettik ama istediğimi almak gibi olamaz.

Ben kolayca gidebilirsiniz İdeali, bu olurdu

<?php if (Login::isAuthenticated()) { ?>
<a href="/sign-out/">Sign Out</a>
<?php } ?>

İşte benim sınıf şimdiye kadar ... Tam benim girişimleri ile ..

class Login
 {
    private static $_auth;

    public function __construct($username, $rawPassword) {

    	global $db;

    	require('edit/users/config.php');

    	$hashedPassword = sha1(SALT . $_POST['password']);

    	$query = 'SELECT firstname FROM users WHERE user = "' . $db->cleanString($username) . '" AND pass = "' . $db->cleanString($hashedPassword) . '" LIMIT 1';


    	$login = $db->query($query);

    	if ($login) {


    		$_SESSION['username'] = $username;
    		self::$_auth = true;



    		header('Location: ' . CONFIG_DIR_BASE);


    	} else {

    		ErrorHandler::addErrorToStack('Your username and/or password did not match one on our system. ');

    	}

    }



    public static function isAuthenticated() {



    	 return self::$_auth;


    }







 }

Thank you very much!

1 Cevap

HTTP vatansız olduğu için, senin sınıfın 'statik değişken ($ _auth) olmaz' Eğer değişken sopa yapmaya çalışıyorsanız, bir {olarak saklamak gerekir, böylece pageloads arasında 'ayakta [(0)] }.

Ancak, şiddetle bu konuda really ciddi olmadıkça not Kendi auth sınıf yazmak için teşvik edecek. Zaten ele alınmıştır seçim için orada mükemmel bir PHP auth komut düzinelerce vardır intricacies of web authentication.