eigene Seite im ACP

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
SKYSURFER2002
Mitglied
Beiträge: 138
Registriert: 23.01.2005 16:09
Kontaktdaten:

eigene Seite im ACP

Beitrag von SKYSURFER2002 »

Hi Modder,


ich muss mein PHPbb noch ein wenig aufpimpen. Dazu habe ich ein kleines Script geschrieben. Dies funktioniert auch wunderbar, zumindest ohne das PHPbb. Ich habe mir dann den Mod für die Blank Admin Page gezogen, und meine Code dann einfach eingefügt. Die Seite wird auch richtig geladen. Doch wenn ich dann meine Eingabe posten möchte, wird im rechten Frame der normale Forumsindex geladen. Es wird auch kein Eintrag in der Datenbank geschrieben. Nun wo ist mein Problem?

Hier mal der Code:

Code: Alles auswählen

<?php
/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

define('IN_PHPBB', 1);

if( !empty($setmodules) )
{
   $file = basename(__FILE__);
   $module['Info']['erstellen'] = "$file";
   return;
}

//
// Load default header
//
$phpbb_root_path = "./../";
require($phpbb_root_path . 'extension.inc');
require('./pagestart.' . $phpEx);
require($phpbb_root_path . 'information/wer_config.php');
// alt include("http://127.0.0.1/phpbb/information/wer_config.php");


echo "
<form action=\"admin_info_erstellen.php\" method=\"POST\">
<table width=\"600\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">
<tr>
<td width=\"300\" align=\"center\">Bild groß</td>
<td width=\"300\" align=\"center\">Bitte OHNE *.jpg angeben!</td>
</tr>
<tr>
<td><input type=\"text\" maxlength=20 name=\"datei\" size=\"15\" class=\"inputtext\" tabindex=\"1\"></td>
<td></td>
</tr>
</table>
<table width=\"600\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">
<tr>
<td height=\"15\"></td>
</tr>
</table>

<table width=\"600\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">
<tr>
<td width=\"600\">Startdatum:</td>
</tr>
</table>
<table width=\"600\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">
<tr>
<td>Tag:</td>
<td>Monat:</td>
<td>Jahr:</td>
<td>Stunde:</td>
<td>Minute:</td>
<td>Sekunde:</td>
</tr>
<tr>
<td><input type=\"text\" maxlength=2 name=\"stag\" size=\"3\" class=\"inputtext\"></td>
<td><input type=\"text\" maxlength=2 name=\"smonat\" size=\"3\" class=\"inputtext\"></td>
<td><input type=\"text\" maxlength=4 name=\"sjahr\" size=\"5\" class=\"inputtext\"></td>
<td><input type=\"text\" maxlength=4 name=\"sstunde\" size=\"5\" class=\"inputtext\"></td>
<td><input type=\"text\" maxlength=4 name=\"smin\" size=\"5\" class=\"inputtext\"></td>
<td><input type=\"text\" maxlength=4 name=\"ssec\" size=\"5\" class=\"inputtext\"></td>
</tr>
</table>
<table width=\"600\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">
<tr>
<td height=\"15\"></td>
</tr>
</table>

<table width=\"600\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">
<tr>
<td width=\"600\">Enddatum:</td>
</tr>
</table>
<table width=\"600\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">
<tr>
<td>Tag:</td>
<td>Monat:</td>
<td>Jahr:</td>
<td>Stunde:</td>
<td>Minute:</td>
<td>Sekunde:</td>
</tr>
<tr>
<td><input type=\"text\" maxlength=2 name=\"etag\" size=\"3\" class=\"inputtext\"></td>
<td><input type=\"text\" maxlength=2 name=\"emonat\" size=\"3\" class=\"inputtext\"></td>
<td><input type=\"text\" maxlength=4 name=\"ejahr\" size=\"5\" class=\"inputtext\"></td>
<td><input type=\"text\" maxlength=4 name=\"estunde\" size=\"5\" class=\"inputtext\"></td>
<td><input type=\"text\" maxlength=4 name=\"emin\" size=\"5\" class=\"inputtext\"></td>
<td><input type=\"text\" maxlength=4 name=\"esec\" size=\"5\" class=\"inputtext\"></td>
</tr>
</table>
<input type=\"hidden\" name=\"send\" value=\"1\" />
<input type=\"submit\" value=\"Posten\" class=\"sendtext\">
</form>";

// timestamp erzeugen
$startzeit = mktime($_POST[sstunde],$_POST[smin],$_POST[ssec],$_POST[smonat],$_POST[stag],$_POST[sjahr]);
$endzeit = mktime($_POST[estunde],$_POST[emin],$_POST[esec],$_POST[emonat],$_POST[etag],$_POST[ejahr]);

// Bilder mit Endung
$bild = $_POST[datei] . $endung;
$thumb = $_POST[datei] . $sufflexthumb . $endung;

// In die Datenbank schreiben
if(isset($_POST['send']) && $_POST['send'] == 1)
    {
    
echo $startzeit;
echo "<br>";
echo $endzeit;

        $sql_insert = "INSERT INTO info ( datei, dateiklein, startzeit, endzeit) VALUES ('$bild', '$thumb', '$startzeit', '$endzeit')";
        $result = mysql_query($sql_insert, $mdb);
    
    echo "Der Datensatz wurde gespeichert!";
}

include('./page_footer_admin.'.$phpEx);

?>
Muss ich mich an das Templatesystem vom PHPbb halten? Noch ne Session übergeben? Ich steh gerade voll nebenmir! :oops:

Für jede Hilfe bin ich sehr dankbar.


Christian
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

An deine Form-Action muss die Session-ID angehängt werden (mit der Funktion append_sid()).
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
SKYSURFER2002
Mitglied
Beiträge: 138
Registriert: 23.01.2005 16:09
Kontaktdaten:

Beitrag von SKYSURFER2002 »

Und wie mach ich das mit der session?


Christian
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Code: Alles auswählen

<form action="<?php echo append_sid("admin_info_erstellen.$phpEx") ?>" method="post">
Nur frage ich mich, was denn gegen das Template-System spricht!?
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

S2B hat geschrieben:An deine Form-Action muss die Session-ID angehängt werden (mit der Funktion append_sid()).
:roll: Nein, Falsch 8)
Das wichtige ist einfach das die Seite nicht komplett neulädt (das passiert ohne target="" in form) sondern nur im rechten frame passiert.
sprich <form ... target="main">
Die Session-ID hohlt er sich dann über die index.php?sid=xXx
Aber das ist ja in dem Fall von phpBB vorgegeben.
SKYSURFER2002
Mitglied
Beiträge: 138
Registriert: 23.01.2005 16:09
Kontaktdaten:

Beitrag von SKYSURFER2002 »

Danke für die vielen Antworten.

Wie ich mir schon fast gedacht hatte, macht die Mischung aus div. Antworten das Rennen.

Lösung:

Code: Alles auswählen

...
$phpbb_root_path = "./../";
require($phpbb_root_path . 'extension.inc');
require('./pagestart.' . $phpEx);
require($phpbb_root_path . 'information/wer_config.php');
// alt include("http://127.0.0.1/phpbb/information/wer_config.php");


?>
<form action="<?php echo append_sid("admin_info_erstellen.$phpEx") ?>" method="POST" target="main">
<table width="600" cellspacing="0" cellpadding="0" border="0">
<tr>
<td width="300" align="center">Bild groß</td>
<td width="300" align="center">Bitte OHNE *.jpg angeben!</td>
</tr>
<tr>
<td><input type="text" maxlength=20 name="datei" size="15" class="inputtext" tabindex="1"></td>
<td></td>
</tr>
</table>
<table width="600" cellspacing="0" cellpadding="0" border="0">
<tr>
<td height="15"></td>
</tr>
</table>

<table width="600" cellspacing="0" cellpadding="0" border="0">
<tr>
<td width="600">Startdatum:</td>
</tr>
</table>
<table width="600" cellspacing="0" cellpadding="0" border="0">
<tr>
<td>Tag:</td>
<td>Monat:</td>
<td>Jahr:</td>
<td>Stunde:</td>
<td>Minute:</td>
<td>Sekunde:</td>
</tr>
<tr>
<td><input type="text" maxlength=2 name="stag" size="3" class="inputtext"></td>
<td><input type="text" maxlength=2 name="smonat" size="3" class="inputtext"></td>
<td><input type="text" maxlength=4 name="sjahr" size="5" class="inputtext"></td>
<td><input type="text" maxlength=4 name="sstunde" size="5" class="inputtext"></td>
<td><input type="text" maxlength=4 name="smin" size="5" class="inputtext"></td>
<td><input type="text" maxlength=4 name="ssec" size="5" class="inputtext"></td>
</tr>
</table>
<table width="600" cellspacing="0" cellpadding="0" border="0">
<tr>
<td height="15"></td>
</tr>
</table>

<table width="600" cellspacing="0" cellpadding="0" border="0">
<tr>
<td width="600">Enddatum:</td>
</tr>
</table>
<table width="600" cellspacing="0" cellpadding="0" border="0">
<tr>
<td>Tag:</td>
<td>Monat:</td>
<td>Jahr:</td>
<td>Stunde:</td>
<td>Minute:</td>
<td>Sekunde:</td>
</tr>
<tr>
<td><input type="text" maxlength=2 name="etag" size="3" class="inputtext"></td>
<td><input type="text" maxlength=2 name="emonat" size="3" class="inputtext"></td>
<td><input type="text" maxlength=4 name="ejahr" size="5" class="inputtext"></td>
<td><input type="text" maxlength=4 name="estunde" size="5" class="inputtext"></td>
<td><input type="text" maxlength=4 name="emin" size="5" class="inputtext"></td>
<td><input type="text" maxlength=4 name="esec" size="5" class="inputtext"></td>
</tr>
</table>
<input type="hidden" name="send" value="1">
<input type="submit" value="Posten" class="sendtext">
</form>

<?php

// timestamp erzeugen
$startzeit = mktime($_POST[sstunde],$_POST[smin],$_POST[ssec],$_POST[smonat],$_POST[stag],$_POST[sjahr]);
$endzeit = mktime($_POST[estunde],$_POST[emin],$_POST[esec],$_POST[emonat],$_POST[etag],$_POST[ejahr]);

...
Danke an alle.
Nur frage ich mich, was denn gegen das Template-System spricht!?
Nichts, aber ich möchte erst wissen, ob die Funktion klappt, und dann wird das Template erstellt.

Christian
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

@fanrpg: Eine Datei in einem Frame kommt nicht an die Datei mit dem Frameset ran, das eine ist server-, das andere clientseitig. Das Problem lag in der Tat nur daran, dass die Session-ID im Admin-Panel immer im GET-Parameter stehen muss, und zwar bei jeder noch so kleinen Datei. :wink: Abgesehen davon läd der Form-Tag ohne Angabe des targets wie jeder a-Tag im gleichen Frame, und nicht in _parent.
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

Glaub mir, ich hatte solche Probleme auch wie er oben (ist schon was länger her :D ) und mit targer="main" waren die dann weg auch _ohne_ Session-ID nochmal extra per GET zu übertragen.
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Und jetzt verwendest du in allen MODs target="main"? :o Das glaub ich dir nicht. :wink:
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

S2B hat geschrieben:Und jetzt verwendest du in allen MODs target="main"? :o Das glaub ich dir nicht. :wink:
Nein habe mittlerweile einen anderen Weg gefunden das auszutricksen :grin:
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“