Mit Anmeldung bei phpBB gleichzeitig eine Session für Websit

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
seatfriend
Mitglied
Beiträge: 45
Registriert: 26.05.2009 12:15
Wohnort: Erzgebirge

Mit Anmeldung bei phpBB gleichzeitig eine Session für Websit

Beitrag von seatfriend »

Hallo,

Ich weiß nicht ob es das Thema vielleicht schon gibt, aber ich habe über die SuFu nix gefunden, also bitte nicht hauen....

Ich habe ein phpBB3 und möchte, das, wenn sich ein User einloggt eine Session aufgemacht wird, auf der er dann auf einer anderen Seite (auf dem gleichen Server und der gleichen Domain) die nicht zum Forum gehört Zugriff bekommt.

Bsp. Ich habe eine Upload-Seite für eine Galerie auf der HP. Nur Foren-Mitglieder sollen auf diese Seite Zugriff haben.

Ich stelle mir das wie folgt vor:

1.User will auf "Upload-Seite" -> Zugriff verweigert
2. User meldet sich mit seinem Nick und Passwort im Forum an -> kann alle Forums-Funktionen nutzen und zusätzlich auf die "upload-Seite" zugreifen.


Ich dachte an eine neu zu Startende Session die mit erfolgreicher Anmeldung erstellt wird und dann sozusagen weitergegeben wird.

Das Forum befindet sich unter root/forum/
und die Upload-Seite im root Verrzeichnis


Vielen Dank für eure Hilfe.
Benutzeravatar
Frank1604
Ehemaliges Teammitglied
Beiträge: 2106
Registriert: 07.11.2007 09:25
Wohnort: Einhausen
Kontaktdaten:

Re: Mit Anmeldung bei phpBB gleichzeitig eine Session für We

Beitrag von Frank1604 »

Vor dem Posten einfach mal die Forum Faq der Bastelstube lesen ;)
Gruß, Frank
Meine Meinung steht fest. Bitte verwirrt mich nicht mit Tatsachen!
seatfriend
Mitglied
Beiträge: 45
Registriert: 26.05.2009 12:15
Wohnort: Erzgebirge

Re: Mit Anmeldung bei phpBB gleichzeitig eine Session für We

Beitrag von seatfriend »

Oh danke. Sorry Jungs.

Jetzt ist aber noch folgendes interessant:

Der Nutzer soll nur dann auf meine Seite dürfen, wenn er die Berechtigung dazu hat. Ich muss also noch eine spezielle Berechtigung schalten damit nur bestimmte User diese Seite benutzen dürfen.

Wie mache ich das am besten?

EDIT:

Bin jetzt inzwischen so weit, aber es funktioniert noch nicht:

Language-Datei:

Code: Alles auswählen

<?php
/**
*
* groups [German]
*
* @author Mein Benutzername email@domain.de - http://meine-seite.de
*
* @package language
* @version $Id$
* @copyright (c) 2007 Deine Gruppe
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* DO NOT CHANGE
*/
if (!defined('IN_PHPBB'))
{
    exit;
}

if (empty($lang) || !is_array($lang))
{
    $lang = array();
}

// DEVELOPERS PLEASE NOTE
//
// All language files should use UTF-8 as their encoding and the files must not contain a BOM.
//
// Placeholders can now contain order information, e.g. instead of
// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows
// translators to re-order the output of data while ensuring it remains correct
//
// You do not need this where single placeholders are used, e.g. 'Message %d' is fine
// equally where a string contains only two placeholders which are used to wrap text
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine

$lang = array_merge($lang, array(
    'EXAMPLE'        => 'Beispiel',
    'DEMO'            => 'Demo',
    'TIME_NOW'    => 'Die aktuelle Zeit lautet %s',
    'TITEL'             => 'Mitgliederbereich',
));

?>
Template-Datei:

Code: Alles auswählen

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
          "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="robots" content="INDEX,FOLLOW">
<meta name="keywords"
content="www.seatfriends-bautzen.de">
<meta name="description"
content="www.seatfriends-bautzen.de" >
<title>www.seatfriends-bautzen.de - Die Community für Ostsachsen</title>
<!-- Der Copyright-Hinweis ist nicht zu löschen. Ein Entfernen des Copyright/Urheberrecht-Vermerks kann rechtliche Schritte nach sich ziehen -->
<!-- (c)Copyright by S.I.S.Papenburg / www.on-mouseover.de/templates/ -->

<!-- Hinweis:
Ein Verkauf der Vorlage oder das Anbieten dieser Vorlage ist untersagt.
Die Vorlage kann privat (kostenlos) und kommerziell (gegen Bezahlung) genutzt werden.
Je nach dem Inhalt, welcher eingefügt wird, kann auch für Privatpersonen eine kommerzielle Nutzung vorliegen.
Lesen Sie auf der Webseite www.on-mouseover.de/templates/
bitte die Nutzungsbedingungen nach.
-->

<link rel="stylesheet" href="css/format.css" type="text/css">
<!--[if lte IE 6]>
<link rel="stylesheet" media="all" type="text/css" href="css/ie_format.css" />
<![endif]-->
</head>
<body>
<div id="all">
<!--<div id="li"></div> -->
<div id="mitte">
<!-- Anfang Mittelteil -->
<div id="leistetop">
<span class="leistetop">
<font color=#FFA00A>Community für Ostsachsen</font color>
</span>
</div>
<div class="menu">
<!--Menu ganz oben-->
<ul>
<li><a class="hide" href="index.html"  onfocus="this.blur()">Home</a></li>
<!--[if lte IE 6]>
<a href="index.html">Home</a>
<![endif]-->

<li><a class="hide" href="http://www.seatfriends-bautzen.de/forum"  onfocus="this.blur()">Forum</a></li>
<!--[if lte IE 6]>
<a href="http://www.seatfriends-bautzen.de/forum">Forum</a>
<![endif]-->
<li><a class="hide" href="kontakt.html"  onfocus="this.blur()">Kontakt</a></li>
<!--[if lte IE 6]>
<a href="kontakt.html">Kontakt</a>
<![endif]-->
<li><a class="hide" href="impressum.html" onfocus="this.blur()">Impressum</a></li>
<!--[if lte IE 6]>
<a href="impressum.html">Impressum</a>
<![endif]-->
<li><a class="hide" href="links.html"  onfocus="this.blur()">Links</a></li>
<!--[if lte IE 6]>
<a href="links.html">Links</a>
<![endif]-->
</ul>
<!-- ende menü oben-->
</div>
<div id="top">
<!-- Logo -->
<img src="images/banner.jpg" width="504" height="100" border="0" alt="" style="margin:0px 0;border:solid 1px #272727;">
<!-- Ende Logo -->
</div>
<div class="menu" >
<!-- unteres Menu -->
<ul>
<li><a class="hide" href="#">Aktuelles</a>
<!--[if lte IE 6]>
<a href="#">Aktuelles
<table><tr><td>
<![endif]-->
<ul>
<li><a href="aktuellenews.html">aktuelle News</a></li>
<li><a href="ueberuns.html">über uns</a></li>
</ul>
<!--[if lte IE 6]>
</td></tr></table>
</a>
<![endif]-->
</li>
<li><a class="hide" href="#">Bilder</a>
<!--[if lte IE 6]>
<a href="#">Bilder
<table><tr><td>
<![endif]-->
<ul>
<li><a href="picmitglieder.html">Mitglieder</a></li>
<li><a href="galerie.php">Treffen</a></li>
</ul>
<!--[if lte IE 6]>
</td></tr></table>
</a>
<![endif]-->
</li>
<li><a class="hide" href="#">Treffen</a>
<!--[if lte IE 6]>
<a href="#">Treffen
<table><tr><td>
<![endif]-->
<ul>
<li><a href="unseretreffen.html">Unsere Treffen</a></li>
<li><a href="seattreffen.html">Seat-Treffen</a></li>
<li><a href="markenoffenetreffen.html">Markenoffene Treffen</a></li>
</ul>
<!--[if lte IE 6]>
</td></tr></table>
</a>
<![endif]-->
</li>
<li><a class="hide" href="#">Mitgliederbereich</a>
<!--[if lte IE 6]>
<a href="#">Mitgliederbereich
<table><tr><td>
<![endif]-->
<ul>
<li><a href="member.php">Login & Übersicht</a></li>
<li><a href="forum/viewforum.php?f=33">im Forum</a></li>
<li><a href="memberdata.php">Mitgliederdaten</a></li>
<li><a href="upload.php">Upload</a></li>
</ul>
<!--[if lte IE 6]>
</td></tr></table>
</a>
<![endif]-->
</li>
<li><a class="hide" href="#">Partner</a>
<!--[if lte IE 6]>
<a href="#">Partner
<table><tr><td>
<![endif]-->
<ul>
<li><a href="http://shop.strato.de/epages/61360534.sf/de_DE/?ObjectPath=/Shops/61360534">Sound-Art</a></li>
<li><a href="http://xenonwhite.de/index2.php">Xenon-White</a></li>
<li><a href="sponsor.html">finanzen.de</a></li>
</ul>
<!--[if lte IE 6]>
</td></tr></table>
</a>
<![endif]-->
</li>
</ul>
<!-- ende unteres Menu-->
</div>
<div id="content">
<!------------------------------------------- Inhalt ---------------------------------------------------------------->


<!-- Text für eingeloggten User -->
                    <br><head>
                        <meta http-equiv="Content-Language" content="de">
                        <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

                        <font color="white" size="5" face="arial">

                        <p><a href="<?php append_sid('memberdata.php'); ?>">Mitgliederdaten</a></p>

                        <p><a href="<?php append_sid('forum/viewforum.php?f=33'); ?>">Mitgliederbereich im Forum</a></p>

                        <p><a href="<?php append_sid('upload.php'); ?>">Dateien und Bilder uploaden</a></p>



                        </font>
                        </head>

                        <span class="sp2">
                         </a>
                        </span>
                        <!-- Bild -->
                        <center><img src="images/baustelle.jpg" width="300" height="300" border="0" alt="" style="margin:0px 0;border:solid 10px                         #272727;"></center>
                        <!-- Ende Bild -->
                        <br><br><br>
                        <a href="member.php?logout=true"><font face="arial" size="4" color=#FFFFFF>Ausloggen</font color></a>
                        </body></a><br>
                        <!-- Ende Text für eingeloggten User -->
<?
}
?>

<!-------------------------------------------- Ende Inhalt ----------------------------------------------------------->


</div>
<div id="fussb">

<!-- Fusszeile -->
www.seatfriends-bautzen.de
<!-- Ende Fusszeile -->
</div>
</div>
<!--<div id="re">&nbsp;</div>-->
</div>
</body>
</html>
Hauptseite:

Code: Alles auswählen

<?php
*
*/

/**
* @ignore
*/
// Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Da wir weiter unten noch einen Avatar anzeigen lassen wollen,
// benötigen wir noch die dazu passende Funktion
// die in der Datein includes/functions_display.php vorhanden ist.
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

// Session auslesen und Benutzer-Informationen laden
$user->session_begin();  // Session auslesen
$auth->acl($user->data); // Benutzer-Informationen laden
$user->setup(''); // Sprachvariablen aus eigener Sprach Datei laden


// Nutzerinformationen sind ausgelesen.

//ist der User nicht eingeloggt so wird er auf die Login Box weitergeleitet
if ($user->data['user_id'] == ANONYMOUS)
{
        login_box();
}
else
{
// Code, wenn Benutzer angemeldet ist


}

// Seiten Titel, diese Sprach Variable sollte in der Sprach Datei,
// welche weiter oben genannt wurde, definiert sein.
page_header($user->lang['TITEL']);

// Defniere nun den Dateinamen Deines Templates welches Du benutzen moechtest.
// Dies ist der Name von Deinem Template welches unter /styles/<style>/templates/ zu finden ist.
$template->set_filenames(array(
    'body' => 'member_template.html',
));

// Script vervollständigen und Seite anzeigen lassen.
page_footer();

?>


?>

Was mache ich bloß falsch?
seatfriend
Mitglied
Beiträge: 45
Registriert: 26.05.2009 12:15
Wohnort: Erzgebirge

Re: Mit Anmeldung bei phpBB gleichzeitig eine Session für We

Beitrag von seatfriend »

Vielen Dank, Soweit habe ich das hinbekommen das nur angemeldete Nutzer die Seite betreten düfen. Uneingeloggte User und Gäste werden auf die Anmelde-Seite weitergeleitet.

Jetzt fehlt noch die Abfrage, das nur die Benutzergruppe "Mitglieder" diese Seite betreten darf. Wie mache ich das am besten? Ansonsten soll eine FM-angezeigt werden, das der Nutzer nicht die dazu benötigten Rechte hat.

Vielen Dank im Vorraus.
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: Mit Anmeldung bei phpBB gleichzeitig eine Session für We

Beitrag von Dr.Death »

Hallo,

auch hier sollte Dir ein Snippet weiterhelfen: Gruppenzugehörigkeiten eines Benutzers prüfen
seatfriend
Mitglied
Beiträge: 45
Registriert: 26.05.2009 12:15
Wohnort: Erzgebirge

Re: Mit Anmeldung bei phpBB gleichzeitig eine Session für We

Beitrag von seatfriend »

Vielen Dank.
Ich habe zwar die SuFu enutzt, aber warscheinlich nicht die richtigen Suchworte genutzt.

ich habe jetzt folgende php-Datei:

Code: Alles auswählen

<?php
 /**
*
* @author Anderer Autor Benutzername andere_email@domain.de - http://domain.de
*
* @package {PACKAGENAME}
* @version $Id$
* @copyright (c) 2007 Dein Gruppen Name
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
// Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

//Funktion Gruppenzugehörigkeit laden
include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);

// Session auslesen und Benutzer-Informationen laden
$user->session_begin();  // Session auslesen
$auth->acl($user->data); // Benutzer-Informationen laden
$user->setup('mods/meine_sprach_datei'); // Sprachvariablen aus eigener Sprach Datei laden
$gruppen_id = 7;  // zu überprüfende Gruppen ID (Gruppen ID 7 = Mitglieder  )
$benutzer_id = $user->data['user_id']; // zu überprüfender User (Der User, der diese Seite aufgerufen hat )
$is_in_group = group_memberships($gruppen_id, $benutzer_id , true);  // Nun erfolgt die eigentliche Prüfung:

//Seiteninhalt Beginn ---------------------------------------------------------------------------------------------

 if ($user->data['user_id'] == ANONYMOUS)
{
        login_box();
}

if ($is_in_group == true)
{
    // Teile dem Template System mit, das die Variable "S_IN_GROUP" den Wert TRUE bekommt
   $template->assign_var('S_IN_GROUP', true);
}

//Seiteninhalt Ende --------------------------------------------------------------------------------------------------

// Seiten Titel, diese Sprach Variable sollte in der Sprach Datei,
// welche weiter oben genannt wurde, definiert sein.
page_header($user->lang['MEIN_TITEL']);

// Defniere nun den Dateinamen Deines Templates welches Du benutzen moechtest.
// Dies ist der Name von Deinem Template welches unter /styles/<style>/templates/ zu finden ist.
$template->set_filenames(array(
    'body' => 'mein_template.html',
));

// Script vervollständigen und Seite anzeigen lassen.
page_footer();

?>
meine Template-Datei:

Code: Alles auswählen

<!-- INCLUDE overall_header.html -->
         <!-- IF S_IN_GROUP -->
               <br>
               <table width="100%" border="3" bordercolor="#FF8000" bgcolor="#ECF4EF" cellpadding="0" cellspacing="2">
                 <tr>
                 <td>
                 <center><h1> <font face="Comic Sans MS" color=#FF0000 size="20"> Herzlich Willkommen im Mitgliederbereich</font></h1> 
                         <br><br>
                         <b><font size="+2">
                         <p><a href="http://www.seatfriends-bautzen.de/memberdata.php">Mitgliederdaten</a></p><br>
                         <br>
                         <p><a href="http://www.seatfriends-bautzen.de/upload.php">Dateien und Bilder uploaden</a></p><br></font></b>
                  </td>
                 </tr>
               </table>
         <!-- ELSE -->
               <table width="100%" border="3" bordercolor="#FF8000" bgcolor="#ECF4EF" cellpadding="0" cellspacing="2">
                 <tr>
                 <td>
                  <center><h1> <font face="Comic Sans MS" color=#FF0000 size="20"> Herzlich Willkommen im Mitgliederbereich</font></h1> 
                         <br><br>
                         <b><p>Leider besitzen sie nicht die n&oouml;tigen Rechte auf diese Seite zuzugreifen. Der Zugriff wurde verweigert.</p></font></b>
                  </center>
                  </td>
                 </tr>
               </table>
            <!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->
Es wird ausgelesen ob ein User angemeldet ist oder nicht, der unangemeldete wird auf die Anmelde-Seite weitergeleitet.
Jedoch kommt jeder angemneldete User auf die Seite und bekommt die beiden Links angezeigt. Die Gruppenzugehörigkeit scheint also nicht abgefragt zu werden.

Was mache ich falsch?

Muss ich irgendwo noch diese Funktion includen?

Code: Alles auswählen

function group_memberships($group_id_ary = false, $user_id_ary = false, $return_bool = false)
Eigentlich müsste die ja schon durch das laden der "functions_user" dabei sein oder?


Vielen Dank im vorraus für eure Hilfe.

Gruß Basti
seatfriend
Mitglied
Beiträge: 45
Registriert: 26.05.2009 12:15
Wohnort: Erzgebirge

Re: Mit Anmeldung bei phpBB gleichzeitig eine Session für We

Beitrag von seatfriend »

Inzwischen bin ich so weit, das ich glaube die Template-Datei bekommt den Wert der Variable "S_IN_GROUP" nicht richtig mitgeteilt. Was könnte falsch sein? meine jetzt aufgeräumte Version der Template-Datei:

Code: Alles auswählen

   <!-- INCLUDE overall_header.html -->
    <br>
    <table width="100%" border="3" bordercolor="#FF8000" bgcolor="#ECF4EF" cellpadding="0" cellspacing="2">
           <tr>
           <td>
           <center><h1> <font face="Comic Sans MS" color=#FF0000 size="20"> Herzlich Willkommen im Mitgliederbereich</font></h1>
           <br><br>

             <!-- IF S_IN_GROUP -->

                             <b><font size="+2">
                             <p><a href="http://www.seatfriends-bautzen.de/memberdata.php">Mitgliederdaten</a></p><br>
                             <br>
                             <p><a href="http://www.seatfriends-bautzen.de/upload.php">Dateien und Bilder uploaden</a></p><br></font></b>

             <!-- ELSE -->
                             <b><p>Leider besitzen sie nicht die n&ouml;tigen Rechte auf diese Seite zuzugreifen. Der Zugriff wurde verweigert.</p></font></b>

                <!-- ENDIF -->

                      <br><br>
                      </center>
                   </td>
                     </tr>
                   </table>

    <!-- INCLUDE overall_footer.html -->
Die Seite wird angezeigt, aber es kommt immer die Meldung das ich keine Rechte besitze (also die ELSE Funktion)...
seatfriend
Mitglied
Beiträge: 45
Registriert: 26.05.2009 12:15
Wohnort: Erzgebirge

Re: Mit Anmeldung bei phpBB gleichzeitig eine Session für We

Beitrag von seatfriend »

Kann mir denn keiner helfen?

EDIT:
Kann ich dort auch die functions_user php über include laden statt include_once? Ich hab im Moment keinen blassen Schimmer warums noch nicht geht. Das Sccript ist ja einfach gehalten...
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“