Seite 1 von 1

phpBB blockt Upload?

Verfasst: 28.04.2005 19:02
von [Cole]
Hi, ich habe mir eben ein Uploadscript geschrieben damit registrierte User
Bilder und kleine Dateien zur Nutzung im Forum hochladen können.

Leider funktioniert es nicht wenn ich es in die Vorlage für in phpBB eingebundene Seiten integriere.

So sieht das eigentliche Script aus:

Code: Alles auswählen

<table align="center">
<tr>
<td>
<FORM ENCTYPE="multipart/form-data" ACTION="upload.php" METHOD=POST>
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input type="file" name="datei">
<input type="Submit"  value="Senden">
</Form>

<?
if(!empty($datei)) {
$data = fopen($datei, 'rb');
if (file_exists('downloads/user/'. $datei_name)) {
  $datei_name = rand(0,100000) .'_'. $datei_name;
}
copy("$datei", "downloads/user/". $datei_name);
fclose($data);                              
unlink("$datei");

echo "<br/><br/>Datei erfolgreich hochgeladen.";
echo "<br/><br/>Link: <a href=\"http://www.real-fans.de/downloads/user/". $datei_name ."\">". $datei_name ."</a>";
}
?>
</td>
</tr>
</table>
In dieser Form funktioniert es auch einwandfrei.

So habe ich versucht es in phpBB zu integrieren:

Code: Alles auswählen

<?php
//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'config.'.$phpEx);

//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
if ($userdata['session_logged_in']) {
?>
<table align="center">
<tr>
<td>
<FORM ENCTYPE="multipart/form-data" ACTION="upload.php" METHOD=POST>
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input type="file" name="datei">
<input type="Submit"  value="Senden">
</Form>

<?
if(!empty($datei)) {
$data = fopen($datei, 'rb');
if (file_exists('downloads/user/'. $datei_name)) {
  $datei_name = rand(0,100000) .'_'. $datei_name;
}
copy("$datei", "downloads/user/". $datei_name);
fclose($data);                              
unlink("$datei");

echo "<br/><br/>Datei erfolgreich hochgeladen.";
echo "<br/><br/>Link: <a href=\"http://www.real-fans.de/downloads/user/". $datei_name ."\">". $datei_name ."</a>";
}
?>
</td>
</tr>
</table>
<?
//Footer - nur dann weglassen, wenn du auch den Header weglässt
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
}
?>
nur dann wird die Datei nicht gespeichert, die Seite reloaded einfach nur...

Mach ich da was falsch oder muss ich noch irgendwas verändern damit
das auch innerhalb von phpBB funktioniert?

Verfasst: 28.04.2005 19:15
von Leuchte
Nimm mal statt

Code: Alles auswählen

if(!empty($datei)) {
dieses

Code: Alles auswählen

$datei = $_POST['datei'];
if(!empty($datei)) {
Und warum mischt du PHP und HTML? Nutz doch die Template-Funktion des phpBB

Verfasst: 28.04.2005 19:22
von [Cole]

Code: Alles auswählen

$datei = $_POST['datei'];
Das hatte ich auch schon versucht, weil ich schonmal ein Problem
beim übergeben von Variablen per POST im phpBB hatte, das bringt
aber leider in diesem Fall nichts.
Auch statt "datei" einen anderen Namen zu nutzen hat nicht geholfen.
Und warum mischt du PHP und HTML? Nutz doch die Template-Funktion des phpBB
Mit dem erstellen von Templates habe ich mich noch nicht weiter befasst
und da ich nun sowieso schon mein Portal auf diese Weise erstellt habe...

Verfasst: 28.04.2005 19:26
von Leuchte
Wie wärs wenn du dem Submit-Button einen Namen gibst und in der if($datei.. Abfrage noch prüfst..

Code: Alles auswählen

&& isset($_POST['submit'])

Verfasst: 28.04.2005 19:32
von [Cole]
Ich hab jetzt folgendes geändert:

Code: Alles auswählen

<input type="Submit" name="submit" value="Senden">
</Form>

<?
$datei = $_POST['datei'];
if ((!empty($datei)) && isset($_POST['submit'])) {
Leider ohne Erfolg...