Frage wegen integration in phpbb

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Shakall
Mitglied
Beiträge: 52
Registriert: 27.01.2009 15:22

Frage wegen integration in phpbb

Beitrag von Shakall »

Hallo leute.
Ich habe ein Script (andromeda) für mp3 music.
Damit ich die ins phpBB intergriere habe ich folgendes gemacht.
Ich habe eine download.php erstellt mit folgendem eintrag:

Code: Alles auswählen

<?php
    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();
    if ($user->data['user_id'] == ANONYMOUS)
    {
        login_box('', $user->lang['LOGIN']);
    }
    page_header('Downloads');

    $template->set_filenames(array(
        'body' => 'download_body.html',
    ));

       page_footer();
    ?>
damit alles so ist wie ich es haben will habe ich in Templates eine datei download_body.html erstellt mit diesem eintrag:

Code: Alles auswählen

    <!-- INCLUDE overall_header.html -->

    <h2>MP3 Downloads</h2>

    <div class="panel">
       <div class="inner"><span class="corners-top"><span></span></span>

       <div class="content">
          <p>
             <a href="../mpdownloads/whatever.mp3">whatever</a><br />
<a href="../mpdownloads/whatever.mp3">whatever</a><br />
<a href="../mpdownloads/whatever.mp3">whatever</a><br />
<a href="../mpdownloads/whatever.mp3">whatever</a>
          </p>
       </div>

       <span class="corners-bottom"><span></span></span></div>
    </div>

    <!-- INCLUDE jumpbox.html -->
    <!-- INCLUDE overall_footer.html -->
Das Problem ist das auf dieses skript ein direktzugrif besteht wenn man den Quellcode vom download_body.html liest.
Gibt es eine Methode um den direktzugriff zu unterbinden ?
Danke für euere Antworten.
Mfg
Shakall
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Re: Frage wegen integration in phpbb

Beitrag von mad-manne »

Shakall hat geschrieben:Das Problem ist das auf dieses skript ein direktzugrif besteht wenn man den Quellcode vom download_body.html liest. Gibt es eine Methode um den direktzugriff zu unterbinden ?
Die gibt es zwar auch, aber das ist dann schon nicht mehr ganz so trivial .. deshalb hier ein anderer Vorschlag:

Ich habe dein Script und das Template so umgestaltet, dass der direkte Aufruf des Templates nichts mehr bringt, weil die Inhalte im Script ans Template übergeben werden. So können tatsächlich nur eingeloggte Besucher die Downloadliste abrufen :wink:

HIer noch etwas Lesefutter: Template_Syntax

Gruss,
Manne.

download.php

Code: Alles auswählen

<?php
	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();
	if ($user->data['user_id'] == ANONYMOUS)
	{
		login_box('', $user->lang['LOGIN']);
	}
	
	// Liste für die Songs initialisieren
	$mp3_downloads   = array();

	// Jetzt wird die Liste(array) der Songs zusammengestellt ...
	// für jeden Song muss der Pfad und der gewünschte Anzeigename wie hier im Beispiel
	// angegeben werden.
	$mp3_downloads[] = array('url' => '../mpdownloads/whatever.mp3', 'name' => 'Whatever');
	$mp3_downloads[] = array('url' => '../mpdownloads/whatelse.mp3', 'name' => 'Whatelse');
	$mp3_downloads[] = array('url' => '../mpdownloads/something.mp3', 'name' => 'Something');
	$mp3_downloads[] = array('url' => '../mpdownloads/something-else.mp3', 'name' => 'Something else');
	
	page_header('Downloads');
	
	$template->set_filenames(array(
		'body' => 'download_body.html',
	));
	
	// Nun wird die Downloadliste durchgegangen und ans Template übergeben!
	foreach ($mp3_downloads as $download)
	{
		$template->assign_block_vars('downloads', array(
			'U_DOWNLOAD_URL'	=> $download['url'],
			'DOWNLOAD_NAME'	=> $download['name']
		));
	}
	
	page_footer();
?>
download_body.html

Code: Alles auswählen

<!-- INCLUDE overall_header.html -->

<h2>MP3 Downloads</h2>

<div class="panel">
<div class="inner"><span class="corners-top"><span></span></span>

<div class="content">
<p>
	<!-- BEGIN downloads -->
	<a href="{downloads.U_DOWNLOAD_URL}">{downloads.DOWNLOAD_NAME}</a><br />
	<!-- END downloads -->
</p>
</div>

<span class="corners-bottom"><span></span></span></div>
</div>

<!-- INCLUDE jumpbox.html -->
<!-- INCLUDE overall_footer.html -->
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Shakall
Mitglied
Beiträge: 52
Registriert: 27.01.2009 15:22

Re: Frage wegen integration in phpbb

Beitrag von Shakall »

Kann man sowas auch mit Iframes machen ?
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Re: Frage wegen integration in phpbb

Beitrag von mad-manne »

Hmmm :o
Ich habe dir hier aufgezeigt, wie du die Download-Links im Programmteil(der php-Datei) zuweist, um so zu verhindern, dass Unberechtigte durch den direkten Aufruf der Template-Datei "an die Links kommen".

Wieso du das nun mit Iframes lösen willst, wird mir nicht ganz klar.

So long,
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Shakall
Mitglied
Beiträge: 52
Registriert: 27.01.2009 15:22

Re: Frage wegen integration in phpbb

Beitrag von Shakall »

Ne es ist so.
Ich habe von meinem kumpel eine Script bekommen wo ich das machen kann.
Leider muss ich diesem script einen folder zuweisen wo er die mp3 files findet.
Es ist so das ich die files einfach per ftp uploaden kann ohne irgendetwas zu schreiben.
Das heis wenn das file am ftp ist und ich öffne dieses script sehe ich gleich das lied in der liste.
Wenn ich die obere methode mache geht alles wunderbar nur alle andere die nicht registriert sind können ja meine offene links sehen.
Das will ich vermeiden.
Also derjenige sollte sich schon registrieren um an den download ranzukommen.

Zu sehen des scripts ist http://www.bhcaffe.net/andromeda.php und der folder ist http://www.bhcaffe.net/mp3


Vieleicht versteht Ihr mich jetzt.
Mfg
DANKE FÜR EUER SUPPORT !
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Re: Frage wegen integration in phpbb

Beitrag von mad-manne »

Shakall hat geschrieben:Wenn ich die obere methode mache geht alles wunderbar nur alle andere die nicht registriert sind können ja meine offene links sehen.
Das will ich vermeiden.
Also derjenige sollte sich schon registrieren um an den download ranzukommen.
Ähm ... *hüstel*, hast du denn meinen obigen Beitrag eigentlich gelesen :o
mad-manne hat geschrieben:Ich habe dein Script und das Template so umgestaltet, dass der direkte Aufruf des Templates nichts mehr bringt, weil die Inhalte im Script ans Template übergeben werden. So können tatsächlich nur eingeloggte Besucher die Downloadliste abrufen :wink:
Da ist doch genau beschrieben, wie du das Problem lösen kannst ... IFrames haben damit nix zu tun.

Gruss,
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Shakall
Mitglied
Beiträge: 52
Registriert: 27.01.2009 15:22

Re: Frage wegen integration in phpbb

Beitrag von Shakall »

Danke Manne ich verstehe schon was du meinst nur eben das ich jetzt eine andere script habe die am root liegt und abgerufen wird.
Also nichts mit phpbb oder so.
Kanst ja meine links sehen die ich gepostet habe.
Wenn ich jetzt deine Methode anwende muss ich ja direkte links implementieren.
Ich kann ja keine links als *.php integrieren oder ?
Ich verstehe jetzt echt nur bahnhof.
Mfg
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Re: Frage wegen integration in phpbb

Beitrag von mad-manne »

Hmm, mal ne Gegenfrage: Hast du mal darüber nachgedacht, das "hauseigene" Feature der Dateianhänge von phpBB3 zu nutzen? Oder geht es hier um richtig viele MP3s, die bequemer per FTP hochzuladen sind?

Alles in allem, würde ich dann eher ein eigenes Script entwickeln( oder entwickeln lassen --> siehe Jobbörse), welches die Dateien aus einem definierten Ordner ausliest und dann eine entsprechende Liste erstellt, anstatt hier Drittanbieterscripte auf Teufel komm raus ins vorhanden Forum zu integrieren, aber das ist Geschmackssache.

So long erstmal,
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Shakall
Mitglied
Beiträge: 52
Registriert: 27.01.2009 15:22

Re: Frage wegen integration in phpbb

Beitrag von Shakall »

Ja Manne es geht um so ca. 100 bis 500 mp3 dateien.
Wenn ich jede manuel einsetzen müsste würde ich ausflippen deswegen auch die script suche.
Was die Jobbörse angeht habe ich leider nicht so viel kohle um das zu bezahlen.
Leider :(
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Re: Frage wegen integration in phpbb

Beitrag von mad-manne »

Shakall hat geschrieben:Wenn ich jetzt deine Methode anwende muss ich ja direkte links implementieren.
Naja ... meine Lösung verhindert auf jeden Fall einmal, dass unregistrierte User per Direktaufruf der Templatedatei die Links zu sehen bekommen! Man könnte die durchaus halbwegs so erweitern, dass vorhandene Dateien aus einem definierten Ordner ausgelesen und in die Liste "geschrieben" werden
Die nur für registrierte Benutzer angebotene LIste enthält dann allerdings Links, die jeder nutzen kann, sofern er die vollständige URL kennt. Um tatsächlich zu verhindern, dass Dateien von Unberechtigten heruntergeladen werden, muss ein "echtes" Downloadscript dazwischengeschaltet werden.

Ich nehme jetzt aber einfach mal an, dass du nicht so viel Erfahrung im PHP-Coden hast, um dir da selbst eine Lösung zusammenzubasteln, oder ?

Gruss,
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Antworten

Zurück zu „Coding & Technik“