PHP-Gästebuch von Frank Claußner

Begonnen von Metal-Overdrive, 25 August 2006, 01:14:23

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Metal-Overdrive

Hallo,

ich habe bis vor kurzem PHP-Nuke in der Version 7.9 genutzt. Hier hatte ich mir das PHP-Gästebuch von Frank Claußner (http://www.php-gaestebuch.de/) eingebaut.

Ich hatte damals schon das Problem das "Modul" aufzurufen, da es keine index.php Datei gab. Ich habe es dann so gelöst das ich mit Hilfe eines Freundes in die modules.php Datei folgenden Code (markiert) eingebaut habe:

<?php

/************************************************************************/
/* PHP-NUKE: Web Portal System                                          */
/* ===========================                                          */
/*                                                                      */
/* Copyright (c) 2005 by Francisco Burzi                                */
/* http://phpnuke.org                                                   */
/*                                                                      */
/* 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.       */
/************************************************************************/

define('MODULE_FILE'true);
require_once(
"mainfile.php");
$module 1;

$name $_GET['name'];
$name trim($name);
if (isset(
$name)) {





*****
Hier beginnt der eingebaute Code*****

if (
$name==Gaestebuch) {
$nuke_editor_old $nuke_editor;
$nuke_editor 0;
include("header.php");
$file $_GET['file'];
if (!isset($file)) {
include("modules/Gaestebuch/guestbook.php");
} else {
include($file);
}
include("footer.php");
$nuke_editor $nuke_editor_old;
  } else {

*****
Hier endet der eingebaute Code*****






if (eregi("http\:\/\/"$name)) {
die("Hi&nbsp;and&nbsp;Bye");
}
$modstring strtolower($_SERVER['QUERY_STRING']);
if (stripos_clone($modstring,"&user=") AND ($name=="Private_Messages" || $name=="Forums" || $name=="Members_List")) header("Location: index.php");
global $nukeuser$db$prefix;
$nukeuser base64_decode($user);
$nukeuser addslashes($nukeuser);
$result $db->sql_query("SELECT active, view FROM ".$prefix."_modules WHERE title='$name'");
$row $db->sql_fetchrow($result);
$mod_active intval($row['active']);
$view intval($row['view']);
if (($mod_active == 1) OR ($mod_active == AND is_admin($admin))) {
if (!isset($mop)) { $mop="modload"; }
if (!isset($file)) { $file="index"; }
if (ereg("\.\.",$name) || ereg("\.\.",$file) || ereg("\.\.",$mop)) {
echo "You are so cool...";
} else {
$ThemeSel get_theme();
if (file_exists("themes/$ThemeSel/modules/$name/".$file.".php")) {
$modpath "themes/$ThemeSel/";
} else {
$modpath "";
}
if ($view == 0) {
$modpath .= "modules/$name/".$file.".php";
if (file_exists($modpath)) {
include($modpath);
} else {
die ("Sorry, such file doesn't exist...");
}
} else if ($view == AND (is_user($user) AND is_group($user$name)) OR is_admin($admin)) {
$modpath .= "modules/$name/".$file.".php";
if (file_exists($modpath)) {
include($modpath);
} else {
die ("Sorry, such file doesn't exist...");
}
} elseif ($view == AND !is_user($user) AND !is_admin($admin)) {
$pagetitle "- "._ACCESSDENIED."";
include("header.php");
title("$sitename: "._ACCESSDENIED."");
OpenTable();
echo "<center><b>"._RESTRICTEDAREA."</b><br><br>"
.""._MODULEUSERS."";
$result2 $db->sql_query("SELECT mod_group FROM ".$prefix."_modules WHERE title='$name'");
$row2 $db->sql_fetchrow($result2);
if ($row2[mod_group] != 0) {
$result3 $db->sql_query("SELECT name FROM ".$prefix."_groups WHERE id='$row2[mod_group]'");
$row3 $db->sql_fetchrow($result3);
echo ""._ADDITIONALYGRP.": <b>$row3[name]</b><br><br>";
}
echo ""._GOBACK."";
CloseTable();
include("footer.php");
die();
} else if ($view == AND is_admin($admin)) {
$modpath .= "modules/$name/".$file.".php";
if (file_exists($modpath)) {
include($modpath);
} else {
die ("Sorry, such file doesn't exist...");
}
} elseif ($view == AND !is_admin($admin)) {
$pagetitle "- "._ACCESSDENIED."";
include("header.php");
title("$sitename: "._ACCESSDENIED."");
OpenTable();
echo "<center><b>"._RESTRICTEDAREA."</b><br><br>"
.""._MODULESADMINS.""
.""._GOBACK."";
CloseTable();
include("footer.php");
die();
} else if ($view == AND paid()) {
$modpath .= "modules/$name/$file.php";
if (file_exists($modpath)) {
include($modpath);
} else {
die ("Sorry, such file doesn't exist...");
}
} else {
$pagetitle "- "._ACCESSDENIED."";
include("header.php");
title("$sitename: "._ACCESSDENIED."");
OpenTable();
echo "<center><b>"._RESTRICTEDAREA."</b><br><br>"
.""._MODULESSUBSCRIBER."";
if ($subscription_url != "") {
echo "<br>"._SUBHERE."";
}
echo "<br><br>"._GOBACK."";
CloseTable();
include("footer.php");
die();
}
}
} else {
include("header.php");
OpenTable();
echo "<center>"._MODULENOTACTIVE."<br><br>"
.""._GOBACK."</center>";
CloseTable();
include("footer.php");
}
} else {
die ("Sorry, you can't access this file directly...");
}

?>


Nun habe ich dies auch bei der modules.php Datei von PragmaMx versucht. Leider erfolglos.
Kann mir das eventuell jemand von euch umschreiben, so das es auch unter PragmaMx läuft? Oder hat jemand von euch eine andere Idee wie man dieses Problem lösen kann?

MFG

Metal Overdrive

Metal-Overdrive

Hab gerade mal was ausprobiert. Habe einfach mal die bearbeitete modules.php von Nuke genommen und damit die origanl PragmaMx modules.php ersetzt. Und Siehe da es funzt. Dazu hab ich jetzt aber mal ein paar Fragen:

1. Wozu ist die Datei eigentlich da und was macht sie?
2. Kann es eventuell Probleme geben das ich die Nuke Datei genommen habe?
3. Da ich eigentlich von Nuke die Nase voll habeund es in keinster Weise mehr auf meinem Server haben möchte, kann mir niemand sagen wie ich den obrigen Code in die original PragmaMx Datei einbauen muß, damit es auch damit einwandfrei funktioniert?

jubilee

Zitat1. Wozu ist die Datei eigentlich da und was macht sie?
1. Regelt den Aufruf der Module Aktiviert den cache bei  anonymen Besuchern und ist ein Teil des Sicherheitskonzeptes.
2. Ist nicht auszuschließen

3. Ist der code den Du da einbauen willst ja schon fast  grob fahrlässig
Zitat
...
$file = $_GET['file'];
...
include($file);
Eine variable direkt in ein include zu setzen bringt i.d.R. extra (ungewünschten) "Besuch" auf der Seite
Dann noch eine ungefilterte Globale Variable zu nehmen ist schon extra gut !

Ich hab versucht, das angesprochene Gästebuch in ein pseudo-Modul zu setzen.
Bin aber bisher damit gescheitert, weil doch zu viele Änderungen nötig wären.
Evt. kann man das Gästebuch aber in einen Iframe setzen. Das habe ich noch nicht ausprobiert.
MfG

Metal-Overdrive

Zitat von: jubilee am 27 August 2006, 18:39:32
Ich hab versucht, das angesprochene Gästebuch in ein pseudo-Modul zu setzen.
Bin aber bisher damit gescheitert, weil doch zu viele Änderungen nötig wären.
Evt. kann man das Gästebuch aber in einen Iframe setzen. Das habe ich noch nicht ausprobiert.
MfG

Hab damals auch versucht das ganze in ein Modul einzubauen und bin auch daran gescheitert und hatte keine Idee mehr wie man es anders lösen könnte. Dann kam ein Freund von mir auf diese etwas unkonventuionelle Idee und es hat funktioniert. Wenn du bei deinen Forschungen weitergekommen bist laß es mich bitte wissen. Ich finde das GB nämlich echt klasse.

MFG

Metal-Overdrive