Hallo, Gast! (Registrieren)

Letzte Ankündigung: Sicherheitsupdate: MyBB 1.8.24 veröffentlicht (09.08.20)


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste
Nutzen der Anmeldedaten auf Website
#1
Moin. Ich hatte vor einiger Zeit schonmal einen Beitrag eröffnet (Hier). Dieser wurde auch beantwortet, jedoch habe ich noch eine offene Frage: 

Und zwar möchte ich auf meiner Website ein Login Formular einbinden, wo sich die Forum-Nutzer mit ihren Daten anmelden können. Dazu habe ich folgendes Formular aus meinem vorherigen Beitrag genommen:
PHP-Code:
<?php
session_start
();
const 
IN_MYBB 1;
require_once(
"global.php"); 
require_once(
"inc/functions_user.php"); 

if (isset(
$_POST['login'])) {
$username $_POST['username'];
$pw $_POST['password'];
if (
validate_password_from_username($username$pw)) {
$_SESSION['username'] = $username;
} else {
echo 
"Logindaten nicht korrekt. Bitte benutze die Daten aus dem Forum<hr/>";
}
}

if (isset(
$_GET['action']) && $_GET['action'] == "logout" && isset($_SESSION['username'])) {
session_destroy();
header('Locaton: formular.php');
}
?>

<html>
<head>
<meta charset="utf-8"> 
<title>Login</title>
</head>
<body>
<?php 
if (empty($_SESSION['username'])) {
?>
<form method="post">
<input type="text" name="username"/><br/>
<input type="password" name="password"/><br/>
<input type="submit" name="login"/>
</form>
<?php
}
?>

<!-- Inhalt nur für eingeloggte Mitglieder, welche sich durch Userdaten aus dem Forum verifiziert haben -->
<?php
if (isset($_SESSION['username'])) {
?>
<h1>Hallo <?= $username ?>. Du hast dich erfolgreich eingeloggt.</h2>
<hr/>
<p>Hier stehen nur Inhalte für eingeloggte Benutzer ...</p>
<p>weitere Inhalte) ...</p>
<hr/>
<a href="?action=logout">Logout now</a>
<?php
}
?>
</body>
</html> v 

Nun habe ich die Frage: Wie frage ich ab ob der angemeldete Nutzer einen bestimmten Rang hat und binde das in dieses Formular ein, sodass z.B. Admins was anderes angezeigt bekommen als "normale Nutzer"

Vielen Dank schonmal
Zitieren
#2
An weitere Helfende hier. Der Code stammt aus folgendem Beispiel, welches ich blind runter geschrieben habe: https://www.mybb.de/forum/thread-36390-p...#pid238636

Der Rang bzw. die Gruppe kann theoretisch und praktisch über
PHP-Code:
$mybb->user['usergroup'
abgefragt werden.

Demnach kann sowas gemacht werden wie:

PHP-Code:
if ($mybb->user['usergroup'] != 0) {
// die Gruppe ist definitiv nicht 0

Zitieren
#3
Man sollte bedenken, dass ein solches einfaches Formular nicht gegen typische Angriffsszenarien abgesichert ist (z.B. Brute-Force). Wenn du schon die ganzen MyBB-Dateien einbindest, empfiehlt es sich daher den Login vom MyBB mitzubenutzen.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#4
Meinst du ich soll die entsprechenden Seiten mit ins Forum einbinden und somit den Login mitverwenden oder meinst du ich sollte den kompletten Login von myBB auf die Website übernehmen. Wenn letzteres der Fall ist muss ich nochmal fragen wie ich das am besten anstelle.
Zitieren
#5
(13.07.2020, 11:18)StefanT schrieb: Wenn du schon die ganzen MyBB-Dateien einbindest, empfiehlt es sich daher den Login vom MyBB mitzubenutzen.

Ich muss nochmal fragen. Kann mir wer sagen wie ich das anstelle?
Zitieren
#6
Ich gehe z.B. beim eingerichteten Chat (könnte ja auch ein Formular sein) wie folgt vor:



* Benutzer muss im Forum angemeldet sein

* mittels einer IF-Anweisung (welche Gruppen) wird der Login-Button zum Chat angezeigt

* Bei Klick auf den Login-Button mit Anweisung:

PHP-Code:
<form method="post" action="./chat/login.php" name="user_trans" target="_blank">
  <input type="hidden" name="username" value="{$mybb->user['username']}/>
  <a href="javascript:document.user_trans.submit()">Chat</a>
</
form><form method="post" action="chat/login.php" name="user_trans" target="_blank">
  <input type="hidden" name="username" value="{$mybb->user['username']}/>
  <a href="javascript:document.user_trans.submit()">Chat</a>
</
form
werden die Userdaten an den Chat übergeben.



In der Login-Datei des Chat ist das weitere Szenarion definiert, dass nur übergebene Daten Zutritt haben. Ein Direktaufruf ist unterbunden und wird wie folgt zurück gemeldet:

Zitat:Sorry, Login ist nur direkt über das Forum möglich!

Damit könnte/würde der "doppelte" Weg,  sich auch im Forum und im Formular anzumelden. entfallen. Ergo: Zum Formular geht es nur über eine erfolgreiche Anmeldung im Forum.

Vielleicht hilft Dir dieser Lösungsansatz ein wenig Dein Wunsch zu erfüllen.
Wer fragt, ist gegebenenfalls für fünf Minuten ein Narr. Wer nicht fragt, bleibt ein Narr.
Wer angebotene Hilfe(n) nicht annimmt, dem ist nicht zu helfen!
Aktive Version: MyBB: 1.8.24 | PHP: 7.4.10 | SQL: 5.7.28 [Unixzeit <> Realzeit]
Zitieren
#7
Der Quellcode von Gerti ist allerdings bzgl. der versteckten Input-Feldern nur insofern sinnvoll zu nutzen, wenn vor dem Betreten des Chats der Name serverseitig noch einmal auf den richtigen Namen überprüft wird. :-) Es gilt immer: Traue keinen Benutzereingaben! Wink
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  HTML in Themen nutzen, in der 1.8.24? FlederMaus 3 143 20.11.2020, 16:38
Letzter Beitrag: FlederMaus