Guten Abend,
bin neu in diesem Forum und habe natürlich gleich ein problem. Konnte im Netz und über die Suche nichts eindeutiges finden.
Deshalb schildere ich mal persönlich mein Problem.
Ich habe folgende Dokumente: index.php, login.php, c_login.php
c_login.php = Klasse die mit der Methode Login($username, $password) den Benutzer überprüft und gegebenfalls einloggt.
login.php = benutzt die klasse zum einloggen, $User (das objekt) wird erst auf dieser seite erzeugt.
index.php = startseite, soll über is_object prüfen ob das objekt ($User) erzeugt wurde.
Das Problem: Ich kann mich problemlos über die login.php seite anmelden, aber geh ich nach dem anmelden auf index.php gibt is_object($User)
trotzdem false zurück. Wenn ich ein Benutzer direkt auf der index.php erstellen ist der rückgabe wert allerdings true.
meine frage, wie kann ich ein objekt nur unter login.php erzeugen und es bis zum logout für alle anderen .php dokumente nutzbar machen,
so das ich prüfen kann ob ein admin menü angezeigt werden soll usw.
Die Datei index.php (auszug)
Die Datei login.php (auszug)
Die Datei c_login.php (auszug (nur methode Login), hier gibt es aber eigentlich auch keine probleme)
Mit freundlichen Grüße
H. Morbid
bin neu in diesem Forum und habe natürlich gleich ein problem. Konnte im Netz und über die Suche nichts eindeutiges finden.
Deshalb schildere ich mal persönlich mein Problem.
Ich habe folgende Dokumente: index.php, login.php, c_login.php
c_login.php = Klasse die mit der Methode Login($username, $password) den Benutzer überprüft und gegebenfalls einloggt.
login.php = benutzt die klasse zum einloggen, $User (das objekt) wird erst auf dieser seite erzeugt.
index.php = startseite, soll über is_object prüfen ob das objekt ($User) erzeugt wurde.
Das Problem: Ich kann mich problemlos über die login.php seite anmelden, aber geh ich nach dem anmelden auf index.php gibt is_object($User)
trotzdem false zurück. Wenn ich ein Benutzer direkt auf der index.php erstellen ist der rückgabe wert allerdings true.
meine frage, wie kann ich ein objekt nur unter login.php erzeugen und es bis zum logout für alle anderen .php dokumente nutzbar machen,
so das ich prüfen kann ob ein admin menü angezeigt werden soll usw.
Die Datei index.php (auszug)
PHP-Code:
if(is_object($GLOBALS['User']))
{
echo 'Es wurde ein Benutzer über die Klasse c_login erzeugt';
}
elseif(!is_object($GLOBALS['User']))
{
echo 'Es gibt noch kein Benutzer durch die Klasse c_login';
}
PHP-Code:
<? if(isset($_REQUEST['submit']))
{
$GLOBALS['User'];
$User = new c_login;
if($User->Login($_REQUEST['f_username'], $_REQUEST['f_password']))
{
echo 'der benutzer konnte angemeldet werden <br />';
}
}
?>
PHP-Code:
function Login($name, $password)
{
$query = "Select * From " . $this->table_title . " WHERE " . $this->row_title_name . "='" . $name . "' AND " .
$this->row_title_password . "='" . md5($password) . "' LIMIT 1";
$result = mysql_query($query);
if($row = mysql_fetch_array($result))
{
$this->login_session_value = $row[$this->login_session_typ];
$s_reg = session_register($this->login_session_value);
$update = mysql_query("UPDATE " . $this->table_title . " SET " . $this->row_title_session_id . "='" .
session_id() . "' WHERE " . $this->row_title_id . "='" . $row[$this->row_title_id] . "'");
$this->login_user_id = $row[$this->row_title_id];
if(isset($s_reg) && isset($update))
{
return true;
}
} else
{
return false;
}
}
H. Morbid
Kommentar