MyBB.de Forum

Normale Version: Website in Forum einbinden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Hallo,
ich habe zwar ein paar Threads zu dem Thema gefunden, konnte jedoch in keinem die Lösung für mein Problem suchen. Ich möchte das Benutzerverwaltungssystem auch auf meiner Homepage nutzen. Der LogIn Funktioniert mit dem folgenden Script einwandfrei, jedoch, wenn ich auch die Seite zurück geleitet werde sieht man nicht die Links, sondern wieder das Formular zum einlogge. :-|

Das ganze liegt folgenderweise auf meinem Space, bzw. meinen Lokalen Server.


root
/homepage
/forum

Könnt ihr mir sagen was genau an dem Code falsch ist? Ich selbst kann keinen Fehler finden, w eshalb ich immer nur das Formular und keine weiteren Daten sehe.

PHP-Code:
<?php
chdir
('../forum/'); // path to MyBB
define("IN_MYBB"1);
require 
'../forum/global.php';
include_once 
'../forum/config.php';

if(
$mybb->user['uid']) { //überprüfen ob angemeldet
        //titel fehler beheben
    
$titel $mybb->user['usertitle'];
    if (
$titel == '') {
        if (
$mybb->user['usergroup'] == '2') {
            
$titel 'Verifizierter User';
        }
    }
        
//normale links ausgeben
    
echo 'Angemeldet als:'.$mybb->user['username'].'<br>['.$titel.']';
    echo 
'<br>';
    echo 
'<li><a href="http://localhost/forum/memberlist.php">Mitgliederliste</a></li>';
    echo 
'<li><a href="http://localhost/forum/member.php?action=profile&uid='.$mybb->user['uid'].'">Eigenes Profil</a></li>';
    echo 
'<li><a href="http://localhost/forum/usercp.php">Profil &auml;ndern</a></li>';

    
//admin bzw mod link ausgeben
    
if($mybb->usergroup['cancp'] == 1)
    {
        echo 
'<li><a href="http://localhost/acp.php">Admin Bereich</a></li>';
    }
    if(
is_moderator()) {
        echo 
'<li><a href="http://localhost/mcp.php">Moderatoren Bereich</a></li>';
    }
    echo 
'<li><a href="http://localhost/forum/member.php?action=logout&logoutkey='.$mybb->user['logoutkey'].'">Logout</a></li>';
} else {
    
//wegen zurückleitung
    
$site pathinfo($_SERVER['REQUEST_URI'], PATHINFO_BASENAME);
    if (
$site == '') {
        
$site 'index3.php';
    }
    
$site 'http://localhost/'.$site?>
    <!--Fom fürs login anzeigen-->
    <form action="../forum/member.php" method="post">
        <table border="0">
            <tr>
                <td>Username:</td>
                <td><input type="text" name="username" size="10" maxlength="30"></td>
            </tr>
            <tr>
                <td>Passwort:</td>
                <td><input type="password" name="password" size="10"></td>
            <tr>
                <td><input type="checkbox" id="quick_login_remember" name="quick_remember" value="yes">Merken?</td>
                <td><input type="submit" class="submit" name="submit" value="Login"></td>
            </tr>
            <tr>
                <td></td>
                <td><input type="hidden" name="action" value="do_login"></td>
                <td><input type="hidden" name="url" value="<?php echo $site?>"></td>
            </tr>
        </table>
    </form>
<?php ?>

King Louis

Hast du auch den cookie pfad deines forums so gesetzt das du auf diese zugreifen kannst?
cookie Pfad habe ich einmal mit http://localhost und einmal nur mit localhost versucht, beides geht nicht. Sad

King Louis

Das ist die cookie domain, die sollte localhost heißen (hab das jetzt nicht getestet) und der cookie pfad direkt dadrunter ist normalerweise /forum/und müsste zu / geändert werden.
Nun geht es, danke dir.
Wie kann ich nun die Berechtigungen einzelner Gruppen nutzen, so das bspw. nur die Gruppe Test (ID 9) Seite XY sehen kann?

King Louis

Auf die user gruppe kannst du mittels $mybb->user [“usergroup“] zugreifen. Einfach mal via
PHP-Code:
echo <pre>
var_dump($mybb);
echo 
</pre>
alles anzeigen lassen und gucken Wink
(05.01.2012, 17:44)Jones schrieb: [ -> ]Das ist die cookie domain, die sollte localhost heißen (hab das jetzt nicht getestet)
localhost oder andere Hostnames ohne TLD sind als Cookie-Domain ungültig.

King Louis

Wenn es aber nur lokal läuft? Was sollte sonst eingegeben werden? Es funktioniert und solange man kontrolliert wer überhaupt auf den server zugreift entsteht auch kein sicherheitsrisiko dadurch.
Mit folgendem Code kannst du die Benutzergruppe prüfen, aber das ist in dem Code ja schon benutzt, den du in deinem ersten Post geschrieben hast. Daher verstehe ich nicht ganz, was dein Problem jetzt ist.
Link:
PHP-Code:
if ($mybb->user['usergroup'] == 1){
    
// der Benutzer ist in der Gruppe mit der ID 1
} else {
    
error_no_permission();


Das Problem dabei ist, dass nur die primäre Benutzergruppe geprüft wird. Folgende Funktion hilft dir alle Benutzergruppen eines Benutzers zu prüfen. Bitte beachte, dass der Code schon einige Jahre alt ist, daher kann es sein, dass er nicht mehr ganz funktioniert. Aber die Idee sollte erkennbar sein:
PHP-Code:
// check the user rights
/**
* checks if the user is in one of the allowed usergroups
* @param $P_allowed the allowed usergroups; seperated with ","(COMMA) e.g.: "4,10,2"
* @return boolean true if user is in one of the allowed usergroups
*/
function awaylist_check_user($P_allowed false)
{
    global 
$mybb;
    
// set the acces right to false as standard
    
$access false;
    
// explode the allowed usergroups to an array
    
if($P_allowed != false) : $allowed_usergroups explode(','$P_allowed);
        else : return 
false;
            endif;
    
// get the usergroups of the user
    
$additional_usergroups $mybb->user['additionalgroups'];
    
// explode the additional usergroups of the user to an array
    
$usergroups explode(','$additional_usergroups);
    
// Add the primary usergroup of the user the the usergroups
    
$usergroups[] = $mybb->user['usergroup'];

    
// is the user logged in
    
if ($mybb->user['uid'] != '0')
    {
        
// check if the usergroups are in an array
        
if (is_array($usergroups))
        {
            
// do this for every usergroup
            
foreach ($usergroups as $usergroup)
            {
                
// check if the allowed usergroups are in an array
                
if (is_array($allowed_usergroups))
                {
                    
// do this for every allowed usergroup
                    
foreach ($allowed_usergroups as $allowed_usergroup)
                    {
                        
// if the usergroup is an allowed usergroup
                        
if ($usergroup == $allowed_usergroup)
                        {
                            
$access true;
                        }
                    }
                }
            }
        }
    }
    return 
$access;


Ansonsten findest du in der Ausgabe der Funktion die Jones schon geschrieben hat eigentlich alle Informationen die du benötigst um die Benutzergruppe mit PHP abzufragen.

Dann noch zu deinem ersten Script. Sofern mich nicht alles täuscht, sollte es gar nicht notwendig sein die config.php nochmal einzubinden, wenn du dir globals.php benutzt.
(05.01.2012, 19:30)Jones schrieb: [ -> ]Wenn es aber nur lokal läuft? Was sollte sonst eingegeben werden?
Leer lassen...
Seiten: 1 2 3 4