Seite 1 von 1

Mit Anmeldung bei phpBB gleichzeitig eine Session für Websit

Verfasst: 18.03.2010 12:52
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.

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

Verfasst: 18.03.2010 13:14
von Frank1604
Vor dem Posten einfach mal die Forum Faq der Bastelstube lesen ;)

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

Verfasst: 18.03.2010 14:29
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?

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

Verfasst: 18.03.2010 18:40
von Pyramide

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

Verfasst: 19.03.2010 15:04
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.

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

Verfasst: 19.03.2010 18:23
von Dr.Death
Hallo,

auch hier sollte Dir ein Snippet weiterhelfen: Gruppenzugehörigkeiten eines Benutzers prüfen

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

Verfasst: 20.03.2010 12:46
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

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

Verfasst: 22.03.2010 14:24
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)...

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

Verfasst: 24.03.2010 14:51
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...