Seite 1 von 2

Benutzername auf externer Seite anzeigen.

Verfasst: 20.05.2013 15:59
von Tadashi
Hallo liebe phpbb Community,
Ich habe folgendes Problem. Ich hab ein Forum, und eine website, mein Forum verzeichnis liegt eins unter dem der website. Mein Ziel ist es das, wenn man auf dem Forum eingeloggt ist auch auf der Hompage "eingeloggt" ist. Also das der Anzeigename angezeigt wird.
Bsp: ForumAnmeldename: Tadashi
.. auf der hompage: Hallo <Username> ( in dem Fall "Tadashi").

Desweiteren würde ich gerne die Phpbb datenbank für die website benutzen. Member bereich. Dies ist eig. egal ob der Zugang, über die existierende Session erlaubt wird, oder ob man sich neu mit Username und password erneut einloggen muss.
Dies hab ich bis jetzt wie folgt gelöst. (1 Benutzername + 1 Passwort)
login.php

Code: Alles auswählen

<!DODCYTPE html>
<?php
     if ($_SERVER['REQUEST_METHOD'] == 'POST') {
      session_start();

      $username = $_POST['username'];
      $passwort = $_POST['passwort'];

      $hostname = $_SERVER['HTTP_HOST'];
      $path = dirname($_SERVER['PHP_SELF']);

      // Benutzername und Passwort werden überprüft
      if ($username == 'testbenutzer' && $passwort == 'testpassword') {
       $_SESSION['angemeldet'] = true;

      // Weiterleitung zur geschützten Startseite
       if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') {
        if (php_sapi_name() == 'cgi') {
         header('Status: 303 See Other');
         }
        else {
         header('HTTP/1.1 303 See Other');
         }
        }
        header('Location: ./News/sn_admin/index.php');
       exit;
       }
      }
?>
<?php require_once("config.php"); ?>
<?php require_once("functions.php"); ?>
<?php include('header.html'); ?>
<div id=content>
        <!-- CONTENT -->
<div id="inhalt">
<a href="./?page=index" title="zurück zur Startseite"> <img src="./style/images/left-arrow-button.jpg" style="height:40px; width:40px;"/></a>
<center>

  <h1> News Management - Login </h1><br>
<form method="post" action="login.php">
<table cellpadding="0" cellspacing="0" class="form-container">
<style type="text/css">
/*
 * Form Style
 */
.form-container td.cells {
	padding-bottom: 9px;
}

.form-container label {
	display: block;
	padding-top: 3px;
</style>
  <tr>
    <td class="cells">Username:</td><td class="cells"><input type="text" name="username" size="30" class="hoster-form"></td>
  </tr>
  <tr>
    <td class="cells">Password:</td><td class="cells"><input type="password" name="passwort" size="30" class="hoster-form"></td>
  </tr>
  <tr>
    <td class="cells" colspan="2">
      <center>
      <input type="submit" name="login" value="Login">
      </center>
    </td>
  </tr>
</table>
</form>  

</center>
  </div>
</div>

<?php include('footer.html'); ?>

auth.php

Code: Alles auswählen

<?php
     session_start();

     $hostname = $_SERVER['HTTP_HOST'];
     $path = dirname($_SERVER['PHP_SELF']);

     if (!isset($_SESSION['angemeldet']) || !$_SESSION['angemeldet']) {
      header('Location: login.php');
      exit;
      }
?>
und in den jeweiligen Seiten welceh nu für member zugänglich sind mit

Code: Alles auswählen

<!DODCYTPE html>
<?php require_once("auth.php"); ?>
.......
Ich bin für jede hilfe dankbar mit freundlichen grüßen Tadashi

Re: Benutzername auf externer Seite anzeigen.

Verfasst: 20.05.2013 23:30
von HabNurNeFrage
Hi,

umgekehrt wird da eher ein Schuh draus, also deine Seite/n ins Forum einbinden...

Die von Dir genannten Dateien haben zwar damit zu tun, jedoch ist keine davon einzeln fähig, das Gewünschte zu erfüllen.

Schau Dir mal die faq.php an. Die ist schön einfach und enthält bereits den Grundaufbau.

Ohne das hier am Anfang wird das mit Auth, Session und Datenbank nichts:

Code: Alles auswählen

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
Und dann die HTML-Dateien. Dazu vielleicht diese Stelle als Hilfe:

Code: Alles auswählen

$template->set_filenames(array(
    'body' => 'faq_body.html')
);
Dort bestimmst Du, welche HTML-Datei die zuvor erstellte PHP-Datei zur Anzeige nutzt.

Wenn Du so oder so ähnlich vorgehst, wird es auch was mit der Begrüßung Deiner Nutzer mit Nickname.

Viel Erfolg beim Tüfteln...

LG

Re: Benutzername auf externer Seite anzeigen.

Verfasst: 21.05.2013 17:14
von Tadashi
Schonmal vielen dank für deine antwort :D
Naja, dein Vorschlag hab ich mir auch überlegt, aber das will ich vermeiden ;) an die datenbank etc. komm ich ja dran
und, bei dieser Zeile verädnere ich einfach den root path das muss ja möglich sein oder ?

$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

vielleichtn noch hinzufügen
include($phpbb_root_path.'config.' . $phpEx);
für die Datenbank,
aber meine Hauptfrage ist ja, wie komm ich an die session dran ? Ist das möglich ?

Re: Benutzername auf externer Seite anzeigen.

Verfasst: 22.05.2013 09:42
von gn#36
Es ist sehr viel einfacher deine Seite in phpBB einzubinden als die Session Infos auszulesen, ohne phpBB dazu zu nutzen. Die Session liegt in der Datenbank in der Tabelle phpbb_sessions, um sie zu prüfen brauchst du entweder die SID oder du musst einen Cookie auslesen. Aber wie gesagt das würde ich auf keinen Fall von Hand machen.

Es zwingt dich aber auch keiner, das Template System zu nutzen. Du kannst also ohne Probleme die ganzen Initialisierungen machen die "HabNurNeFrage" erwähnt hat für den php Teil (den Root-Path kannst du dabei beliebig anpassen, egal ob das Forum in einem übergeordneten Ordner oder in einem Unterordner oder sogar in einem völlig anderen Pfad liegt) und anschließend dann auf welche Art auch immer deine Ausgabe realisieren. In diesem Fall findest du alle Relevanten Daten zum User in dem Objekt $user, das meiste was du brauchen dürftest in $user->data. Ob ein User angemeldet ist oder du einen Gast vor dir hast kannst du mit $user->data['is_registered'] überprüfen. Ob ein bestimmtes Recht vorliegt oder nicht kannst du per $auth->acl_get und einigen anderen ähnlichen Funktionen überprüfen.

Re: Benutzername auf externer Seite anzeigen.

Verfasst: 22.05.2013 14:04
von Tadashi
So mal ne Frage :D Ich verzichte jetzt auf die Session, weil ich euren Rat berücksichtige und versuche einfach nur die Datenbank zu benutzen. Leider bin ich ein Total noob was php betrifft, könnte mir hier jemand weiterhelfen ?

Code: Alles auswählen

<!DODCYTPE html>
<?php
$host = ""; 

$user = ""; 

$pw = "";

$db = "";


if ( ! mysql_connect ( $host , $user , $pw ) )
{
echo "konnte keine verbindung herstellen:". mysql_error();
die;
}


if (! mysql_select_db($db))
{
echo "konnte datenbank nicht finden: ". mysql_error();
die;
}
$query = "SELECT * FROM phpbb_users";

$result = mysql_query ( $query );
$anzahl = mysql_num_rows( $result );
$datensatz['pass'] = md5($datensatz['password']);
for ($i=1; $i <= $anzahl; $i++)
{
$datensatz = mysql_fetch_row( $result );

}



     if ($_SERVER['REQUEST_METHOD'] == 'POST') {

      $hostname = $_SERVER['HTTP_HOST'];
      $path = dirname($_SERVER['PHP_SELF']);
	  
	  $pw = md5($passwort);

	  if($datensatz['username']== $_POST["user"]&&$datensatz['pass'] == $pw
	{
       $_SESSION['angemeldet'] = true;
	   	   	   	   	   	   	   
	   
       if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') {
        if (php_sapi_name() == 'cgi') {
         header('Status: 303 See Other');
         }
        else {
         header('HTTP/1.1 303 See Other');
         }
        }
        header('Location: upload.php');
       exit;
       }
      }
?>
<html>
<head>
</head>
<body>
<div id="inhalt">
<center>

  <h1> Maps hochladen </h1><br>
  
<form method="POST" action="login.php">
<table width="297" border="0" cellpadding="1" cellspacing="1">
<tr>
<td width="276"><center>
<strong>Benutzername/Kennwort aus dem Forum:</strong>
</center></td>
</tr>
</table>
<table width="250" border="0" cellspacing="1" cellpadding="1">
<tr>
<td width="90">Benutzername:</td>
<td width="153"><input name="user" type="text" value="<? echo $_POST["user"]?>"/></td>
</tr>
<tr>
<td>Passwort: </td>
<td><input name="pw" type="password" value="<? echo $_POST["pw"]?>" /></td>
</tr>
<tr>
<td> </td>
<td><input name="Ausrechnen" type="submit" value="Überprüfen" /></td>
</tr>
</table>
<p>
<input name="send" type="hidden" value="true" />
<br />
</p>
</form>

</center>
  </div>
</div>
<body>
</html>


schonmal vielen Dank
Mfg Tadashi

Re: Benutzername auf externer Seite anzeigen.

Verfasst: 22.05.2013 14:18
von HabNurNeFrage
Hi,

schau Dir das mal genauer an:
https://wiki.phpbb.com/Using_the_phpBB3.0_DBAL

LG

Re: Benutzername auf externer Seite anzeigen.

Verfasst: 22.05.2013 15:18
von Tadashi
könnte mir das jetzt bitte mal jemand verbessern, dass ich hier voran komme ? ;(

Code: Alles auswählen

<?php
$host = ""; 

$user = ""; 

$pw = "";

$db = "";


if ( ! mysql_connect ( $host , $user , $pw ) )
{
echo "konnte keine verbindung herstellen:". mysql_error();
die;
}
 if ($_SERVER['REQUEST_METHOD'] == 'POST') {
	 
$query = "SELECT * FROM phpbb_users";
 
$result = mysql_query ( $query );
 
$anzahl = mysql_num_rows( $result );

for ($i=1; $i <= $anzahl; $i++)
{
 
$datensatz = mysql_fetch_row( $result );
if($datensatz['username']== $_POST["user"]&&$datensatz['passwort'] == $_POST["pw"]
{
           $_SESSION['angemeldet'] = true;
}
}    
                                                               
               
           if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') {
            if (php_sapi_name() == 'cgi') {
             header('Status: 303 See Other');
             }
            else {
             header('HTTP/1.1 303 See Other');
             }
            }
            header('Location: index.php');
           exit;
}
?>
<?php 
define('IN_PHPBB', true);
$phpbb_root_path = 'forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'config.' . $phpEx);
include($phpbb_root_path . 'common.' . $phpEx);
 
 $user->session_begin();
 $auth->acl($user->data);
 $user->setup();

 if($user->data['is_registered']) { echo "Du bist schon eingeloggt!"; } 
 
 else {
 if(!isset($_POST['loginbutton'])) { 
 ?>
<form action = "logins.php" method="POST"> <input type="text" name="user" value="<?php echo $_POST["user"]?>"> <input type="password" name="password" value="<? echo $_POST["pw"]?>"> <input type="submit" name="loginbutton"> </form>
 <?php
 }
 }

 ?>


Re: Benutzername auf externer Seite anzeigen.

Verfasst: 22.05.2013 15:21
von HabNurNeFrage
Hi,

schon gesehen?

viewforum.php?f=57

LG

Re: Benutzername auf externer Seite anzeigen.

Verfasst: 22.05.2013 15:43
von Tadashi
HabNurNeFrage hat geschrieben:Hi,

schon gesehen?

viewforum.php?f=57

LG
ich soll jetzt dafür zahlen ?
Ich dachte es gibt hier angargierte Leute die aus Spaß helfen ;( ^^

Re: Benutzername auf externer Seite anzeigen.

Verfasst: 22.05.2013 18:17
von Miriam
Du sollst für gar nichts zahlen. Aber wenn Du spezielle Hilfe brauchst, weil Du im Support Forum nicht weiter kommst, kannst Du gern einen Job ausloben.
Wenn Du Glück hast, meldet sich jemand.