| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
MaGdev Site Admin

Anmeldungsdatum: 04.02.2004 Beiträge: 719 Wohnort: Hamburg
|
10.06.2005 19:46 [HowTo] Anwendungsbeispiel PEAR_Auth() |
|
|
Aktualisiert für Auth-1.2.3!
Datenbank-Name: auth_test
Tabelle:
| Code: |
CREATE TABLE auth (
id int(11) NOT NULL auto_increment,
user varchar(64) NOT NULL default '',
pass varchar(32) default NULL,
rights enum('admin','user') default 'user',
PRIMARY KEY (id)
) TYPE = MyISAM;
|
Quellcode:
| PHP: | <?php
define ('_SCRIPT', $_SERVER['SCRIPT_NAME']);
define ('_DBTYPE', 'mysql');
define ('_DBUSER', 'xxx');
define ('_DBPASS', 'xxx');
define ('_DBHOST', 'localhost');
define ('_DBNAME', 'auth_test');
define ('_DSN',_DBTYPE.'://'._DBUSER.':'._DBPASS.'@'._DBHOST.'/'._DBNAME);
// Auth >= 1.2.3
require_once ('Auth.php');
// Auth < 1.2.3
require_once ('Auth/Auth.php');
function loginFunction($disp=true)
{
$d = "<form method=\"post\" action=\"" . _SCRIPT . "\">\n";
$d .= "<table>\n";
$d .= "<tr><td>Username</td><td><input type=\"text\" name=\"username\"></td></tr>\n";
$d .= "<tr><td>Passwort</td><td><input type=\"password\" name=\"password\"></td></tr>\n";
$d .= "<tr><td> </td><td><input type=\"submit\" value=\"login\"></td></tr>\n";
$d .= "</table>\n";
$d .= "</form>\n";
if ($disp === true) print $d;
return $d;
}
$authParams = array(
'dsn' => _DSN, # DSN String
'table' => 'auth', # wie heißt die Tabelle
'usernamecol' => 'user', # Feld: Username
'passwordcol' => 'pass', # Feld: Paßwort
'cryptType' => 'md5', # Verschlüsselungstyp
'db_fields' => '*'); # welche Felder sollen in $_SESSION[auth][data] gespeichert werden; ich will alle <g>
# Instanz erzeugen (ich bin ein Freund kurzer Variablennamen)
$a = new Auth ('DB', # DB Klasse; muß nicht eingefügt werden
$authParams, # das Parameter Array
'loginFunction()', # Name der Funktion, die dann aufgerufen wird, wenn der User nicht authentifiziert ist
true # show login: Aufruf der Login Funktion
);
# Achtung: Auth startet zusätzlich noch das SESSION Management!
$a->start();
$OK = ($a->getAuth()) ? true : false;
// Auth >= v 1.2.3
define ('_RIGHTS', $_SESSION['_authsession']['data']['rights']);
// Auth < 1.2.3
define ('_RIGHTS', $_SESSION['auth']['data']['rights']);
# Das war das Vorspiel
if ($OK === true)
{
print_r($_SESSION);
}
?> |
Ausgabe nach Login:
| Code: |
Array
(
[auth] => Array oder [_authsession] => Array
(
[data] => Array
(
[id] => 1
[rights] => user
)
[registered] => 1
[username] => test
[timestamp] => 1077902878
[idle] => 1077902878
)
)
|
_________________ Auch der längste Weg beginnt immer mit einem kleinem Schritt!
Vorgehen bei Problemen:
1. PHP-Handbuch oder PEAR-Handbuch lesen!
2. Forensuche benutzen!
3. Fragen posten und dabei die Regeln beachten! |
|
| Nach oben |
|
 |
Berdir Power User
Anmeldungsdatum: 22.09.2005 Beiträge: 1347
|
04.03.2007 19:42 |
|
|
Habe etwas Zeit gefunden und das Tutorial etwas überarbeitet
Änderungen:
| Zitat: |
- MDB2 anstelle von DB
- pre 1.2.3-Sachen entfernt, ich hoffe mal das setzt keiner mehr ein (der ein Tutorial braucht )
- Den Schluss mit der Prüfung und Daten auslesen (imho) etwas vereinfacht
|
Benötigte Pakete:
| Zitat: |
Auth
MDB2
MDB2_Driver_<Driver> (z.B. mysql oder mysqli mit PHP5)
|
| PHP: | <?php
define ('_SCRIPT', $_SERVER['SCRIPT_NAME']);
define ('_DBTYPE', 'mysql');
define ('_DBUSER', 'xxx');
define ('_DBPASS', 'xxx');
define ('_DBHOST', 'localhost');
define ('_DBNAME', 'auth_test');
define ('_DSN',_DBTYPE.'://'._DBUSER.':'._DBPASS.'@'._DBHOST.'/'._DBNAME);
require_once 'Auth.php';
function loginFunction($disp=true)
{
$d = "<form method=\"post\" action=\"" . _SCRIPT . "\">\n";
$d .= "<table>\n";
$d .= "<tr><td>Username</td><td><input type=\"text\" name=\"username\"></td></tr>\n";
$d .= "<tr><td>Passwort</td><td><input type=\"password\" name=\"password\"></td></tr>\n";
$d .= "<tr><td> </td><td><input type=\"submit\" value=\"login\"></td></tr>\n";
$d .= "</table>\n";
$d .= "</form>\n";
if ($disp === true) print $d;
return $d;
}
$authParams = array(
'dsn' => _DSN, // DSN String
'table' => 'auth', // wie heißt die Tabelle
'usernamecol' => 'user', // Feld: Username
'passwordcol' => 'pass', // Feld: Paßwort
'cryptType' => 'md5', // Verschlüsselungstyp
'db_fields' => '*'); // welche Felder sollen aus der Tabelle gelesen und in der Session gespeichert werden, * => Alle
// Instanz erzeugen (ich bin ein Freund kurzer Variablennamen)
$a = new Auth ('MDB2', // MDB2 Storage Driver; muß nicht eingefügt werden
$authParams, // das Parameter Array
'loginFunction', // Name der Funktion, die dann aufgerufen wird, wenn der User nicht authentifiziert ist
true // show login: Aufruf der Login Funktion
);
// Startet die Prüfung. Vorsicht: ruft session_start auf
$a->start();
// Inhalt des Feldes rights auslesen und als Konstante speichern.
// Mit setAutData können beliebige Daten gespeichert werden.
define ('_RIGHTS', $a->getAuthData('rights'));
// Prüfen ob der Benutzer eingelogg ist
if ($a->checkAuth()) {
echo 'Login erfolgreich!';
print_r($_SESSION);
} else {
echo 'Nicht eingeloggt';
}
?> |
|
|
| Nach oben |
|
 |
|
|
|
Zu Deinen Favoriten hinzufügen
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum nicht posten Du kannst Dateien in diesem Forum herunterladen
|
|