Hallo erstmal,
nach langem hin und her hab ich mich entschlossen euch zu fragen, da ihr von PHP ja Ahnung habt.
Ich möchte mir ein Usermanagement aufbauen mit einer Klasse, das Usermanagement das hier schon gepostet wurde hat mir dabei schon gut geholfen. Mein Problem ist aber, wegen mangelnder Erfahrung (bin erst seit fünf Tagen am PHP lernen) das ich nicht genau weis ob ich da jetzt unsinn in mein Code reinmache, somit wäre ich euch für jede Kritik dankbar.
Hoffe das Script ist nicht zu lang.
So das war die erste Funktion sie soll überprüfen ob das Login und das Passwort mit der Datenbank übereinstimmt. Login und Pass stecken dabei in einem Array damit ich mir eine Variable spare (ich mag schlanke funktionsaufrufe)
Die Zweite Funktion updated die Datenbank in dem sie die SessionID und das aktuelle Login einträgt, ich hab es deswegen gesplittet um später auch noch eine Funktion hinzuzufügen die das einloggen mittels Cookies macht
Der Teil überprüft später die Zugriffsrechte auf der jeweiligen Seite, nur mit dem richtigen Status hat man zugriff....die Variable $db_oldcheck steht dafür ob der User schon 18 ist (blick auf das neue JuSchG)
Die klasse selber ist noch lange nicht fertig, sie funktioniert bis jetzt sogar schon. Aber wie gesagt ich weis nicht ob das so efizient ist was ich hier fabriziere.
Mit freundlichen Gruß
Sascha
nach langem hin und her hab ich mich entschlossen euch zu fragen, da ihr von PHP ja Ahnung habt.
Ich möchte mir ein Usermanagement aufbauen mit einer Klasse, das Usermanagement das hier schon gepostet wurde hat mir dabei schon gut geholfen. Mein Problem ist aber, wegen mangelnder Erfahrung (bin erst seit fünf Tagen am PHP lernen) das ich nicht genau weis ob ich da jetzt unsinn in mein Code reinmache, somit wäre ich euch für jede Kritik dankbar.
Hoffe das Script ist nicht zu lang.
PHP-Code:
class auth
/**
* Auth v0.4
**/
{
var $db_userid; // Die ID des jeweiligen Users
var $db_usernick; // Der Nick des jeweiligen Users
var $db_userpass; // Das Passwort des jeweiligen Users
var $db_userstat; // Der Status des jeweiligen Users
var $db_user************; // Das Geschlecht
var $db_usermail; // Seine Email
var $db_useroldcheck; // Ob der User über 18 ist
var $auth_msg; // Nummer der Fehlermeldungen
var $give_access; // Ob Access Ja/Nein
//var $access; // Acccess Variable
var $checkresponse; // Ausgabe der Fehlermeldungen
var $userstat; // Der Status des Users um Wortlaut
/**
* @return unknown
* @param auth_msg unknown
* @desc Überprüft ob Login und Passwort mit der Datenbank übereinstimmen. Wenn Ja werden die ersten Variablen abgespeichert
*/
function check_auth ( $auth_array, $sqlconn, $session )
{
$sql_querystring = "SELECT userid, usernick, userpass, userstat, user************, usermail, useroldcheck FROM user WHERE usernick = '$auth_array[0]' AND userpass = MD5( '$auth_array[1]')";
$sql_authquery = mysql_query($sql_querystring, $sqlconn);
$sql_getuser = mysql_fetch_array($sql_authquery);
//Wenn nichts eingegeben wurde...
if($sql_getuser["userid"] == "")
{
$this->auth_msg = "102";
$this->auth_msg ( $this->auth_msg );
return FALSE;
}
else
{
// Hier mit werden die Ausgelesenen Variablen an die Klasse übergeben um sie weiter zu verarbeiten
if($sql_getuser["userstat"] != "100")
{
$this->db_userid = $sql_getuser["userid"];
$this->db_usernick = $sql_getuser["usernick"];
$this->db_userpass = $sql_getuser["userpass"];
$this->db_userstat = $sql_getuser["userstat"];
$this->db_user************ = $sql_getuser["user************"];
$this->db_usermail = $sql_getuser["usermail"];
$this->db_useroldcheck = $sql_getuser["useroldcheck"];
//$this->user_status( $this->db_userstat );
// hier muss die Prüfung rein ob mit Cookie oder Sessions eingeloggt werden soll Variable heist $coice_log
$this->check_update_session( $session, $sqlconn);
return TRUE;
}
else
{
$this->auth_msg = "100";
$this->auth_msg ( $this->auth_msg );
}
}
}
PHP-Code:
function check_update_session ( $session, $sqlconn )
{
$sql_authupdate_string = "UPDATE user SET usersession = '".$session."',userlogin = NOW() WHERE UserId = '".$this->db_userid."'" ;
mysql_query($sql_authupdate_string, $sqlconn);
$this->auth_msg = "103";
$this->auth_msg ( $this->auth_msg );
return TRUE;
}
PHP-Code:
/**
* @return unknown
* @param auth_msg unknown
* @desc Gibt die Systemmeldungen der Authorisierung
*/
function auth_msg ( $auth_msg )
{
$auth_response = array(
100 => "Sorry you are Banned.",
101 => "Zu wenig Zugriffrechte zum Anzeigen dieser Seite.",
102 => "Bei der Eingabe ist ihnen ein Fehler unterlaufen.",
103 => "Sie sind nun Eingeloggt.",
);
$this->checkresponse = $auth_response["$this->auth_msg"];
return $auth_response;
}
//*************
/**
* @return unknown
* @param db_stat unknown
* @desc Gibt den Userstatus aus
*/
function user_status ( $db_userstat )
{
$user_status = array(
100 => "Gebannt", // Verweigerung auf den Zugriff der Seite
300 => "Gast", // Zugriff auf öffentliche Bereiche ohne Schreibrecht
500 => "User", // Zugriff auf die öffentlichen Bereiche mit Schreibrecht
550 => "Member", // Zugriff auf die erweiterten Bereiche mit Schreibrecht
600 => "Newsredakteur", // Erstellungsrecht bei den News, zugriff auf alle Bereiche
630 => "Artikelredakteur", // Erstellungsrecht bei den Artikeln, Zugriff auf alle Bereiche
933 => "Moderator", // Zugriff auf alle Bereiche, kann User Bannen, Contentangebote editieren
966 => "Site Operator", // Zugriff auf alle Bereiche, kann Userstatus ändern
999 => "Site Admin" // Darf alles ;)
);
$this->userstat = $user_status["$this->db_userstat"];
return $user_status;
}
//**************
/**
* @return void
* @param db_stat unknown
* @param db_oldcheck unknown
* @param access unknown
* @param give_access unknown
* @desc Gibt den Content bei entsprechenden Rechten frei
*/
function user_access ( $db_userstat, $db_useroldcheck, $access, $give_access )
{
if( $this->db_userstat == "100")
{
$this->auth_msg = "100";
$this->auth_msg ( $this->auth_msg );
die; // BANNED
}
else
{
switch ( $access )
{
// Zugriff für alle ab Gast
case 1 : if( $this->db_userstat >= "300" )
{
$this->give_access = TRUE;
}
else
{
$this->give_access = FALSE;
$this->auth_msg = "101";
$this->auth_msg ( $this->auth_msg );
};
break;
// Zugriff für alle ab Gast aber mit Positivem Oldcheck
case 2 : if( $this->db_userstat >= "300" AND $this->db_useroldcheck = "1" )
{
$this->give_access = TRUE;
}
else
{
$this->give_access = FALSE;
$this->auth_msg = "101";
$this->auth_msg ( $this->auth_msg );
};
break;
// Zugriff für alle ab Member
case 3 : if( $this->db_userstat >= "550" )
{
$this->give_access = TRUE;
}
else
{
$this->give_access = FALSE;
$this->auth_msg = "101";
$this->auth_msg ( $this->auth_msg );
};
break;
// Zugriff für alle ab Member aber mit positiven Oldcheck
case 4 : if( $this->db_userstat >= "550" AND $this->db_useroldcheck = "1" )
{
$this->give_access = TRUE;
}
else
{
$this->give_access = FALSE;
$this->auth_msg = "101";
$this->auth_msg ( $this->auth_msg );
};
break;
// Zugriff für alle Admins und Mods
case 5 : if( $this->db_userstat >= "933" )
{
$this->give_access = TRUE;
}
else
{
$this->give_access = FALSE;
$this->auth_msg = "101";
$this->auth_msg ( $this->auth_msg );
};
break;
}
}
}
PHP-Code:
/**
* Ist die Zusammenfassung der Accessfunktion. Auf der Contentseite muss dann nur
* access("nr"); stehen. nr steht für 1-5, fünf ist die höchste Accessklasse
*/
function access ( $access )
{
$this->user_access( $this->db_userstat, $this->db_useroldcheck, &$access, &$give_access);
}
}
Mit freundlichen Gruß
Sascha
Kommentar