Webstatt.org - Community seit 2006 - 2012 (2024?)

Referenz

Avatar user-287
28.05.2007 08:54

Hallo,
Ich steh grad aufm Schlauch. Ich habe folgende Klasse:

<?PHP

class user {

protected static $sid;
protected static $ip;
protected static $useragent;

protected static $userid;
protected static $guestid;
protected static $login;

public function __construct()
{
self::set_sid(session_id());
self::set_ip(md5($_SERVER['REMOTE_ADDR']));
self::set_useragent($_SERVER['HTTP_USER_AGENT']);

self::set_login($_SESSION['login']);
self::set_userid($_SESSION['userid']);
self::set_guestid($_SESSION['guestid']);
}

/* User Daten holen */

public function get_sid ()
{
return self::$sid;
}

public function get_ip ()
{
return self::$ip;
}

public function get_useragent ()
{
return self::$useragent;
}

public function get_userid ()
{
return self::$userid;
}

public function get_guestid ()
{
return self::$guestid;
}

public function get_login ()
{
return self::$login;
}

/* User Daten setzen */

public function set_sid ($new_sid)
{
self::$sid = $new_sid;
}

public function set_ip ($new_ip)
{
self::$ip = $new_ip;
}

public function set_useragent ($new_useragent)
{
self::$useragent = $new_useragent;
}

public function set_userid ($new_userid)
{
self::$userid = $new_userid;
}

public function set_guestid ($new_guestid)
{
self::$guestid = $new_guestid;
}

public function set_login ($new_login)
{
self::$login = $new_login;
}

}
?>



Nun will ich das $userid, $guestid und $login eine Referenz von ihrer Session Variablen $_SESSION['userid'], $_SESSION['guestid'], $_SESSION['login'] sind.

Kann ich da diese Struktur beibehalten, dass die Variablen der Klasse protected sind? Problem ist ja, dass man auf die Variablen nur per Methode zugreifen kann.

user-265
29.05.2007 06:48

Das kannst du doch regeln, indem du Adressen übergibst.

Wenn du vor ne Variable ein & setzt und die Adresse &$Session['ID'] an den Pointer *$sid übergibst.

Ich weiß nicht ob die Schreibweise mit & und * korrekt ist in PHP, so wirds in C++ gemacht.

Avatar user-287
29.05.2007 11:28

hab eine Lösung gefunden, nur ich weiß nicht ob das mit der Referenz nun das Wahre ist.
Ich will ja vermeiden, dass irgendwie die Session manipuliert wird (durch Sicherheitslücken), deshalb die Klasse oder ist das überflüssig?

user-265
29.05.2007 14:45

Das nicht, aber weiß nicht warum es gerade Referenzen sein müssen... du musst die Klasse ja eh mit jedem neuen Seitenaufruf neu erstellen...