Phpbb Loginfunktion
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
benutzername
board
checken
counterstrike
datei
daten
ergebnis
fehler
formular
fragen
login
parameter
pawort
result
schaff
schleifen
session
unterseite
username
verzweigung
-
Hallo @ all,
ich will mir auf meine Seite Phpbb tuen und die Loginfunktion auf meiner Seite mitnutzen, so dass man nur dann auf einige Unterseiten kommt wenn man eingeloggt ist. -> Also Sozusagen auf derm Phpbb forum ist eine Loginfunktion und auf der Seite und beide holen sich die Daten aus der gleichen MySql Datei. Nun meine Frage: Woher speichert/l?d Phpbb die Userdatein und wie kann ich sie benutzten? M?glich ist es, das habe ich auf www.counterstrike.de gesehen... -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Die userdaten werden in Sessions abgerufen. Du kannst ?berpr?fen, ob die phpBB-Session vorhanden ist (also User eingeloggt ist) und je nachdem auswerten.
-
Sorry... aber ich bin bei php und mysql net so der profi..., aber am einfachsten schaut ihr euch das ganze auf http://www.counterstrike.de
an, da ist links oben son kasten. Wenn man sich registriert kommt man aufs Forum und auf die Seite. ->entweder der registriert sich f?r beide oder der nimmt die gleichen User Daten. -
hallo wolte mal fragen wie das den funz weil es noch nie ausprobirt habe
-
also ich hab die tabelle f?r die User gefunden. Ist echt stumpf bis auf: Das PW ist verschl?sselt...Hat jemand ne Idee wie ich drauf zugreifen kann?
-
Das Passwort wird MD5-Verschl?sselt (=> Einwegverschl?sselung). Das hei?t, du musst das eingegebene Passwort erstmal verschl?sseln, dann ?berpr?fen ob das ?bereinstimmt:
$pw = $HTTP_POST_VARS["PasswortParameterVomFormular"];
$dbpw = PASSWORT AUS DER DATENBANK
if (md5($pw) == $dbpw)
{
echo "Eingeloggt...";
} else {
echo "Login fehlgeschlagen...";
}
Das setzte in eine While-Schleife, die den Benutzername und Passwort ?berpr?ft, ob diese ?bereinstimmen. -
irgendwie schaff ich das net
Also ich habe jetzt das gemacht:
login.php:
-----------------------------------------------------------------------------------------------
<html>
<head>
<title>Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head><body><?php
// Session starten
session_start ();
// Datenbankverbindung aufbauen
$connectionid = mysql_connect ("mysql.lima-city.de", "USERxxxxx", "xxxxxxx");
if (!mysql_select_db ("DB3108200417001", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
$sql = "SELECT ".
"user_active, username, user_passwort ".
"FROM ".
"phpbb_users ".
"WHERE ".
"(username like '".$_REQUEST["name"]."') AND ".
"(user_password = '".md5 ($_REQUEST["pwd"])."')";
$result = mysql_query ($sql);
if (mysql_num_rows ($result) > 0)
{
// Benutzerdaten in ein Array auslesen.
$data = mysql_fetch_array ($result);
// Sessionvariablen erstellen und registrieren
$_SESSION["user_id"] = $data["user_active"];
$_SESSION["user_nickname"] = $data["username"];
header ("Location: intern.php");
}
else
{
header ("Location: formular.php?fehler=1");
}
?></body></html>
----------------------------------------------------------------------------------------------
formular.php:
----------------------------------------------------------------------------------------------
<?php session_start (); ?>
<html>
<head>
<title>Login</title>
</head><body>
<?php
if (isset ($_REQUEST["fehler"]))
{
echo "Die Zugangsdaten waren ung?ltig.";
}
?>
<form action="login.php" method="post">
Name: <input type="text" name="name" size="20"><br>
Kennwort: <input type="password" name="pwd" size="20"><br>
<input type="submit" value="Login">
</form>
</body></html>
-----------------------------------------------------------------------------------------------
checkuser.php:
-----------------------------------------------------------------------------------------------
<html>
<head>
<title>Check User</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head><body><?php
session_start ();
if (!isset ($_SESSION["user_id"]))
{
header ("Location: formular.php");
}
?></body></html>
------------------------------------------------------------------------------------------------
logout.php:
------------------------------------------------------------------------------------------------
<html>
<head>
<title>Logout</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head><body><?php
// Wird ausgef?hrt um mit der Ausgabe des Headers zu warten.
ob_start ();
session_start ();
session_unset ();
session_destroy ();
header ("Location: formular.php");
ob_end_flush ();
?></body></html>
------------------------------------------------------------------------------------------------
Das ganze tut aber net richtig... Auf dem Forum kann ich mich einloggen, dort net... -
Glaube, du hast blos die Variable $user_password mit "t" anstatt mit "d" geschrieben. Trotzdem mal mein Loginscript (kannste benutzen):
// ?bergabeparameter vom Formular
$bn = $_REQUEST["name"];
$passwort = $_REQUEST["passwort"];
// Datenbankabfrage (Datenbankverbindung ausgeschlossen)
$abfrage = "SELECT username, user_pasword FROM phpbb_users";
$ergebnis = mysql_query($abfrage);
// Passwort-?berpr?fung
while($row = mysql_fetch_object($ergebnis))
{
if($row->username == $bn)
{
if($row->user_password == md5($passwort))
{
$login = "yes";
}
}
}
// Au?wertung von $login
if($login == "yes")
{
// HIER NOCH SESSION SETZEN
echo "Eingeloggt!";
} else {
echo "Login fehlgeschlagen!";
}
Solltest aber die Sessions setzen, die das phpBB-Board braucht, um die Daten (bzw. die Parameter) zu ?bermitteln (Damit man in dem Board eingeloggt ist und bleibt). Kann dir aber gerade nicht sagen, was in den Sessions gespeichert wird (ich schau mal dannach, weil das brauch ich auch).
?berpr?fen ob der User eingeloggt kannste so: ?berpr?fe ob eine Session gesetzt wurde, wenn ja ist der User eingeloggt, wenn nicht, ist kein User eingeloggt. -
jo lag am t, hab noch ne frage: Wie bekomme ich die user-check Datei so hin, dass nur ein bestimmter User reinkommt? (nur admin)
-
Kannst doch per if-Verzweigung ?berpr?fen ob der Benutzername der des von dem Admin ist:
$admin_benutzername = "Admin";
if ($username == $admin_benutzername)
{ echo "Admin!" } else { echo "Kein Admin"; }
Oder du ?berpr?fst in der phpbb_userrs ob der user_rank des Benutzernamens 1 (=Admin) ist. -
puh ok tut jetzt... (hatte erst noch nen fehler drin, deshalb antworte ich erst so sp?t...)
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage