Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.21 veröffentlicht (11.06.19)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Variable für angemeldete User
#1
Hallo,
ich möchte das mybb-board mit einer selbst programmierten php-Seite bekannt machen.
Dazu möchte ich, dass das die php-Seite eine User-Session/Cookie aus dem mybb-board ausliest um zu sehen, dass der User im mybb-board eingeloggt ist.
Ist der user NICHT im mybb-board eingeloggt, soll er das php-programm auch nicht öffnen können.

Das hat mit einer anderen Boardsoftware schon mal funktioniert.
Da musste ich in der php-Seite folgenden script einfügen:

<?php

session_start();
if(!isset($_COOKIE['bs_user']))
   {
   echo "Dieser Bereich ist nur für eingeloggte User erlaubt</a>";
   exit;
   }
?>

Ich denke mal, dass ich die Variable ['bs_user'] hier ändern muss. Kann mir jemand einen Tip geben?

Darüber hinaus möchte ich auch einen Link zum php-Programm mit in die Menüleiste vom mybb-board einfügen.

Danke schon mal...
Zitieren
#2
Du könntest per require die global.php einbinden und folgendes probieren:


PHP-Code:
if($mybb->user['uid'])
{
//user ist eingeloggt
}
else
{
 //user ist nicht eingeloggt


Grüße,
JAY
My  PHP-Version: 7.3.1 | MySQL-Version: 5.7.21
My  Plugins: See all
------
Es gibt nur 10 Arten von Menschen. Die, die binär verstehen - und die, die es nicht tun
Zitieren
#3
Vielen Dank erst mal...

ich habe mich mal daran versucht.
Dabei habe ich den unten stehenden code über dem head-bereich des externen php-Programms geschrieben:

<?php

session_start();
if($mybb->user['uid'])
{
echo "willkommen";
}
else
{
 echo "nicht willkommen";
}
?>
 
Als Ergebnis schreibt das externe Programm "nicht willkommen" - also hat die Übergabe der Variable nicht funktioniert. Was mache ich falsch (oder unvollständig)?
Zitieren
#4
Bevor du $mybb->user['uid'] verwenden kannst, musst du darüber noch die global.php von MyBB einbinden.
PHP-Code:
require_once "pfad-zum-mybb-ordner/global.php"
Zitieren
#5
Ist die global.php inkludiert per require?

PHP-Code:
require_once('global.php'); 
My  PHP-Version: 7.3.1 | MySQL-Version: 5.7.21
My  Plugins: See all
------
Es gibt nur 10 Arten von Menschen. Die, die binär verstehen - und die, die es nicht tun
Zitieren
#6
Vielen Dank - geht ja fix mit den Antworten, Wink
Es gibt 2 Dateien mit dem Namen global.php.
eine im root verzeichnis und eine im Ordner darunter \archive\global.php


funzen leider beide nicht. Confused
Bekomme eine Fehlermeldung:

Direct initialization of this file is not allowed.
Please make sure IN_MYBB is defined.


hier nochmal mein aktueller php-code:
unter dem verzeichnis /board liegt das mybb - das externe liegt daneben im /archiv  - deshalb ../

<?php

require_once "../board/global.php";
session_start();
if($mybb->user['uid'])
{
echo "willkommen im Archiv ($mybb->user['uid'])";
}
else
{
 echo "kein Zugang gewährt";
}
?>
Zitieren
#7
Füg mal folgende Konstante vor dem require ein. Klappts dann?

PHP-Code:
define('IN_MYBB'1); 
My  PHP-Version: 7.3.1 | MySQL-Version: 5.7.21
My  Plugins: See all
------
Es gibt nur 10 Arten von Menschen. Die, die binär verstehen - und die, die es nicht tun
Zitieren
#8
Beachte auch, wenn sich deine PHP-Seite außerhalb des MyBB-Ordners befindet, muss die Gültigkeit der MyBB-Cookies entsprechend erweitert werden.
Wenn MyBB zum Beispiel im Ordner "board" liegt und im Admin-CP unter Konfiguration -> Seiten_Details -> Cookie-Pfad /board/ eingetragen ist, müsste es auf / geändert werden (und anschließend die vorhanden Cookies im Browser gelöscht werden), damit sie auch außerhalb des Ordners gelten.
Zitieren
#9
(21.03.2019, 14:12)itsmeJAY schrieb: Füg mal folgende Konstante vor dem require ein. Klappts dann?

PHP-Code:
define('IN_MYBB'1); 

Haha, lustig:
Wenn ich das davor setze, gelangt die php-Seite in die Startseite vom mybb-Board

hilft deshalb leider auch nicht ...

(21.03.2019, 14:37)doylecc schrieb: Beachte auch, wenn sich deine PHP-Seite außerhalb des MyBB-Ordners befindet, muss die Gültigkeit der MyBB-Cookies entsprechend erweitert werden.
Wenn MyBB zum Beispiel im Ordner "board" liegt und im Admin-CP unter Konfiguration -> Seiten_Details -> Cookie-Pfad /board/ eingetragen ist, müsste es auf / geändert werden (und anschließend die vorhanden Cookies im Browser gelöscht werden), damit sie auch außerhalb des Ordners gelten.

Danke! Das ist auch so. Ich habe das gemäß deiner Beschreibung geändert.
Aber die Fehlermeldung:
Direct initialization of this file is not allowed.
Please make sure IN_MYBB is defined.

bleibt trotzdem.
Zitieren
#10
Hi,

Auch im offiziellen MyBB.com Forum steht:

PHP-Code:
define('IN_MYBB'1); require "./global.php"

Ich wüsste über Handy jetzt nicht direkt, wo genau der Fehler liegt
My  PHP-Version: 7.3.1 | MySQL-Version: 5.7.21
My  Plugins: See all
------
Es gibt nur 10 Arten von Menschen. Die, die binär verstehen - und die, die es nicht tun
Zitieren