Direktaufruf des Boards unterbinden
Verfasst: 15.03.2012 15:06
Hi Allemiteinander!
Gleich mein erster Post vielleicht eine Lösung für viele:
Ich stand vor dem Problem, daß das Forum direkt über den gebookmarkten Link aufrufbar war, ohne daß der Besucher vorher auf der Website war!
Ich habe folgende Lösung gefunden. Bitte steinigt mich nicht, wenn das nicht "sauber" ist. Ich bin ein Nebie und kratze an der Oberfläche von PHP:
Meine Konfiguration: Das Forum liegt im im Webspace von meiner WebSite im Unterverzeichnis phpBB3.
Dimat die Index.php nicht gestartet wird, wenn man das Verzeichnis http://www.meinesite.com/phpBB3/ habe ich ganz einfach in diesem Verzeichnis eine Umleitung.htm angelegt mit folgendem
Umleitung.htm im header:
<meta http-equiv="refresh" content="3; URL=http://www.meinewebsite.com">
Umleitung.htm im body:
<body>
<br />
<br />
<div class="HeadlineZentriertRot" style="text-align:center;"><h4>:: Direktaufruf nicht zugelassen ::</h4></div><br />
<div style="text-align:center;">
<h4 class="HeadlineZentriertKlein">:: Leite dich zur Startseite um! ::</h4>
<p><span class="copyZentriert">Wenn du nicht automatisch zur Startseite kommst, blockiert dein Browser die Umleitung.<br />
Drücke oben auf</span> <span class="copyFettRot">>>Erlauben<< </span></p>
</div>
</body>
und dazu in der .htaccess ergänzt:
DirectoryIndex umleitung.htm index.php
Damit landen alle, die das Verzeichnis ohne Dateinamen aufrufen, auf der Homepage der WebSite!
Nächste Schritte:
Der Link, der von der Homepage aus auf das Forum verweist, wurde auf die neu angelegte Datei forum.php gelegt.
Diese Datei befindet sich im phpBB3 Verzeichnis und hat folgenden php-Code zum Inhalt:
Code forum.php:
<?php
session_start();
session_regenerate_id();
$_SESSION['name'] = "XY";
session_name('XY');
$session_name = session_name();
$session_id = session_id();
header ("Location: /phpBB3/index.php?$session_name=$session_id");
exit;
?>
Und in der index.php des Forum ganz am Anfang:
index.php zusätzlicher code:
<?php
session_start();
if (!isset ($_SESSION['name'])) {
$_SESSION = array();
session_destroy();
header ("Location: /index.php");
exit;
}
/** Ab hier ist es der Originalcode ...
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/*
* @ignore
*/
define('IN_PHPBB', true);
Etwas Background:
Sessions Laufe normalerweise nach ca. 3 Stunden ab! Kommt auf die Einstellung des Servers an.
Damit muß jetzt jeder, zumindesten einmal pro Tag auf der Homepage der Site, wo aktuelle Nachrichtren gepostet sind, vorbeischauen.
Funktioniert hervorragend! - Auch wenn es vielleicht nicht die feine Englische Art ist!
Grüße an alle
Gleich mein erster Post vielleicht eine Lösung für viele:
Ich stand vor dem Problem, daß das Forum direkt über den gebookmarkten Link aufrufbar war, ohne daß der Besucher vorher auf der Website war!
Ich habe folgende Lösung gefunden. Bitte steinigt mich nicht, wenn das nicht "sauber" ist. Ich bin ein Nebie und kratze an der Oberfläche von PHP:
Meine Konfiguration: Das Forum liegt im im Webspace von meiner WebSite im Unterverzeichnis phpBB3.
Dimat die Index.php nicht gestartet wird, wenn man das Verzeichnis http://www.meinesite.com/phpBB3/ habe ich ganz einfach in diesem Verzeichnis eine Umleitung.htm angelegt mit folgendem
Umleitung.htm im header:
<meta http-equiv="refresh" content="3; URL=http://www.meinewebsite.com">
Umleitung.htm im body:
<body>
<br />
<br />
<div class="HeadlineZentriertRot" style="text-align:center;"><h4>:: Direktaufruf nicht zugelassen ::</h4></div><br />
<div style="text-align:center;">
<h4 class="HeadlineZentriertKlein">:: Leite dich zur Startseite um! ::</h4>
<p><span class="copyZentriert">Wenn du nicht automatisch zur Startseite kommst, blockiert dein Browser die Umleitung.<br />
Drücke oben auf</span> <span class="copyFettRot">>>Erlauben<< </span></p>
</div>
</body>
und dazu in der .htaccess ergänzt:
DirectoryIndex umleitung.htm index.php
Damit landen alle, die das Verzeichnis ohne Dateinamen aufrufen, auf der Homepage der WebSite!
Nächste Schritte:
Der Link, der von der Homepage aus auf das Forum verweist, wurde auf die neu angelegte Datei forum.php gelegt.
Diese Datei befindet sich im phpBB3 Verzeichnis und hat folgenden php-Code zum Inhalt:
Code forum.php:
<?php
session_start();
session_regenerate_id();
$_SESSION['name'] = "XY";
session_name('XY');
$session_name = session_name();
$session_id = session_id();
header ("Location: /phpBB3/index.php?$session_name=$session_id");
exit;
?>
Und in der index.php des Forum ganz am Anfang:
index.php zusätzlicher code:
<?php
session_start();
if (!isset ($_SESSION['name'])) {
$_SESSION = array();
session_destroy();
header ("Location: /index.php");
exit;
}
/** Ab hier ist es der Originalcode ...
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/*
* @ignore
*/
define('IN_PHPBB', true);
Etwas Background:
Sessions Laufe normalerweise nach ca. 3 Stunden ab! Kommt auf die Einstellung des Servers an.
Damit muß jetzt jeder, zumindesten einmal pro Tag auf der Homepage der Site, wo aktuelle Nachrichtren gepostet sind, vorbeischauen.
Funktioniert hervorragend! - Auch wenn es vielleicht nicht die feine Englische Art ist!
Grüße an alle