Kennt jemand Immage-Gallery v2.6 oder kann helfen?
Thomas Heumann
- php
Hallo!
Kennt jemand das Script Immage-Gallery Version 2.6?
Wenn ja, hat es jemand zum laufen gebracht?
Mein Problem ist, das die Online-Demo bei www.d-plus-c.de/impression-gallery/ läuft, aber halt bei mir nicht.
Problembeschreibung:
Innerhalb des Scripts werden "Parameter" abgefragt. Je nach Parameter wird ein html-Code ausgegeben. Die Eingaben verwendet und der nächste Step per Parameter angesteuert.
Bei mir passiert nur nichts, d.h. setze eine Checkbox und clicke auf den "weiter" Button, aber er kommt zu der Stelle zurück, an der er gerade ist.
Ich habe auch schon die Emailadresse angeschrieben, aber bekomme leider keine Antwort. Vermutlich gibt's den Autor in der Firma nicht mehr oder das Script wird nicht mehr gepflegt.
Da ich jedoch nur sehr begrenzte PHP-Kentnisse habe, finde ich den Fehler nicht. Oder muß evtl am Server was eingestellt werden?
Hier dazu einen unvollständigen Auszug aus dem Script:
<?
// impression-gallery v2.5 -- 22/12/2002
// © Holger Dexheimer, dexheimer@d-plus-c.de
// Module: Setup
error_reporting(0);
echo "<html><head><title>Impression-Gallery: Setup</title>\n";
echo "<link rel=stylesheet type='text/css' href='../common/style.css'>\n";
echo "<script language='JavaScript1.2' src='../common/chk_submit.js'></script>\n";
echo "</head><body bgcolor='#d6ebfe' leftmargin=20 topmargin=10 marginwidth=20 marginheight=10>\n";
// only Configuration? -> send him to the big form
if ($step == "1" and $setup == "config") { $step++; }
//begin steps
if (!$step) {
if (file_exists("../common/config.inc.php") && filesize("../common/config.inc.php") > 0) {$is_configuration=1;} else {$is_configuration=0;}
echo "<h1>Impression-Gallery: Setup</h1>\n";
echo "<table><form action='setup.php' method=post>\n";
echo "<tr><td><b>Aktion:</b></td><td>";
echo "<input type='Radio' name=setup value='install'";
if ($is_configuration=="0") {echo "checked";}
echo ">Installation<br>\n";
echo "<input type='Radio' name=setup value='config'";
if ($is_configuration=="1") {echo "checked";}
echo ">Vorhandene Version aktualisieren</td>\n";
echo "<tr><td colspan=2><input type=hidden name=step value=1> </td></tr>\n";
echo "<tr><td><input type=submit value=Absenden></form></td><td><form action='index.php' method=post><input type=submit value=Abbrechen></form></td></tr></table>\n";
// Update available???
if ($is_configuration=="1") {include('../common/config.inc.php');
include ("http://www.d-plus-c.de/impression-gallery/demo/update.php?current=$version");
} // end update
}
if ($step == "1") {
// Installation chosen, but in the old directory
if (file_exists("../common/config.inc.php") && filesize("../common/config.inc.php") > 0 && $setup == "install") { echo "<br> <p class=phead> config.inc.php gefunden! Wollen Sie nicht lieber ein Update machen?</p>"; }
// choose update or install or config! :-)
if ($setup <> "update" and $setup <> "install" and $setup <> "config") { echo "Was soll das werden?"; exit;}
echo "<h1>Datenbank-Verbindung</h1>";
echo "<p style='font-size: 10pt;'>\n";
echo "Bitte geben Sie hier alle nötigen Angaben zur Datenbank-Verbindung ein.<br>Im Laufe der Installation wird dies u.a. dazu verwendet, die benötigten Tabellen an zu legen...<br></p>\n";
echo "<form action='setup.php' method=post onSubmit="MM_validateForm('db_host','','R','db_user','','R','db_pass','','R','db_name','','R');return document.returnValue">\n";
echo "<table border=0>";
echo "<tr><td><b>Standort der Datenbank:</b></td><td><input type=text name=db_host></td></tr>\n";
echo "<tr><td><b>Datenbank-Benutzer:</b></td><td><input type=text name=db_user></td></tr>\n";
echo "<tr><td><b>Datenbank-Passwort:</b></td><td><input type=Password name=db_pass></td></tr>\n";
echo "<tr><td><b>Datenbank-Name:</b></td><td><input type=text name=db_name></td></tr>\n";
echo "<tr><td colspan=2> </td></tr>\n";
echo "<tr><td><input type='hidden' name='db_type' value='mysql'>\n";
echo "<input type='hidden' name='step' value='2'>\n";
echo "<input type=hidden name='setup' value='$setup'> </td>\n";
echo "<td><input type='submit' value='Absenden'></td></tr>\n";
echo "</form></table>";
}
if ($step == "2") {
// update chosen, but no config there
if (!file_exists("../common/config.inc.php") && $setup <> "install") { echo "<br> <p class=phead>config.inc.php nicht gefunden! Wollen Sie wirklich ein update machen?</p>"; } // update chosen, but no config there
//installation from scratch
if ($setup == "install") {
$db_host2 = "$db_host:$db_name";
if ($db_type == "mysql") { $link = mysql_connect($db_host,$db_user,$db_pass) or die("Kann nicht auf Datenbank zugreifen!"); }
// Standard-Parameter
$tmpl_path = "tmpl";
$docpath = $SCRIPT_FILENAME;
$docpath = ereg_replace('/setup.php', '', $docpath);
$docpath2 = ereg_replace('/admin', '', $docpath);
$this_server="$HTTP_HOST";
$this_path.="$SCRIPT_NAME";
$this_base="http://"."$this_server$this_path";
$this_base=ereg_replace('/admin/setup.php', '', $this_base);
$base_url = "$this_base";
$imp_rel = "img";
$sound_rel = "sound";
$ecards = 1;
$ecards_sound = 1;
$ecards_header = "Sie haben eine eCard erhalten";
$ecards_rel = "ecards";
$imp_abs = "$docpath2/img";
$sound_abs = "$docpath2/sound";
$standard_name = "eCard-Service";
$standard_email = "yourname@yourdomain.com";
$ecards_url="$base_url/ecards.php";
$perpage = 2;
$noc = 1;
$resize = 2;
$max_width = 200;
$max_height = 200;
$quality = 80;
$kategorien=1;
}
// ...or update.
else { include("../common/config.inc.php"); }
$docpath = $SCRIPT_FILENAME;
$docpath = ereg_replace('/setup.php', '', $docpath);
$docpath2 = ereg_replace('/admin', '', $docpath);
echo "<form action='setup.php' method=post>\n";
// Installation parameter
echo "<input type='hidden' name='step' value='3'>\n";
echo "<input type=hidden name='setup' value='$setup'>\n";
// db Parameter
echo "<input type=hidden name='db_host' value='$db_host'>\n";
echo "<input type=hidden name='db_user' value='$db_user'>\n";
echo "<input type=hidden name='db_pass' value='$db_pass'>\n";
echo "<input type=hidden name='db_name' value='$db_name'>\n";
echo "<input type=hidden name='db_type' value='$db_type'>\n";
echo "<input type=hidden name='docpath2' value='$docpath2'>\n";
// Voreinstellungen
...
<!-- gelöschte Inhalte -->
...
echo "<tr><td><b>Tipp:</b></td><td>Die Datei <i>"config.inc.php"</i> mit den Voreinstellungen wird ins Verzeichnis <i>"common"</i> geschrieben.<br>Bei Bedarf kann diese auch heruntergeladen und anschließend manuell angepasst werden.</td></tr>\n";
...
<!-- gelöschte Inhalte -->
...
// Submit button
echo "<tr><td> </td><td><input type=submit value=Absenden></td></tr></table></td></table></form>\n";
}
if( $step == "3") {
include ("../common/lib.inc.php");
...
<!-- und so weiter und so fort -->
hi,
Innerhalb des Scripts werden "Parameter" abgefragt. Je nach Parameter wird ein html-Code ausgegeben. Die Eingaben verwendet und der nächste Step per Parameter angesteuert.
Bei mir passiert nur nichts, d.h. setze eine Checkbox und clicke auf den "weiter" Button, aber er kommt zu der Stelle zurück, an der er gerade ist.
Das Script berücksichtigt offenbar nicht die Konfigurationsoption register_globals=off.
Könnte man jetzt auf on stellen (lassen), sollte man aber eigentlich vermeiden wenn möglich - und stattdessen die Parameter sauber über Zugriff auf die dafür vordefinierten superglobalen Arrays in Empfang nehmen.
Falls das nicht in Frage kommt, es an allen nötigen Stellen im Script zu ändern, könnte man die Parameter ggf. auch noch per extract() am Scriptanfang aus diesen Superglobalen extrahieren, damit das Loch, welches man sich durch register_globals=on ggf. aufreissen würde, etwas kleiner ausfällt.
gruß,
wahsaga
Hallo,
hast Du vielleicht einen Code-Schnipsel oder Tip, wie man das macht mit den Superglobals?
Danke!
Thomas
Falls das nicht in Frage kommt, es an allen nötigen Stellen im Script zu ändern, könnte man die Parameter ggf. auch noch per extract() am Scriptanfang aus diesen Superglobalen extrahieren, damit das Loch, welches man sich durch register_globals=on ggf. aufreissen würde, etwas kleiner ausfällt.
gruß,
wahsaga
hi,
hast Du vielleicht einen Code-Schnipsel oder Tip, wie man das macht mit den Superglobals?
Der Tipp lautet RTFM.
Ich habe dir extra ein paar Stellen verlinkt, wo du dich darüber informieren kannst - also tu das bitte auch, und übertreibe es nicht mit der Faulheit, Danke.
gruß,
wahsaga
Hallo Thomas
Kan dir zwar bei deinem problem nicht weiter helfen, aber wen das Program sowieso nicht mehr weiter entwickelt wird und du auch wenig erfahrung mit PHP hast empfehle ich dir einfach sich einem anderen Aktuellen Image Gallery zu wenden ich empfehle dir den kostenlosen
http://www.suedweb.de/content_showit/=showitselbst installierend brauchst bei der installation nur die fragen beantworten
Hallo Thomas,
Problembeschreibung:
Innerhalb des Scripts werden "Parameter" abgefragt. Je nach Parameter wird ein html-Code ausgegeben. Die Eingaben verwendet und der nächste Step per Parameter angesteuert.
Bei mir passiert nur nichts, d.h. setze eine Checkbox und clicke auf den "weiter" Button, aber er kommt zu der Stelle zurück, an der er gerade ist.
das ist kein Wunder bei einem so uralten Skript. Dieses
<?
// impression-gallery v2.5 -- 22/12/2002
Ah ja, vier Jahre alt.
error_reporting(0);
Wenn PHP keine Fehler melden darf, darfst Du Dich nicht wundern, dass Du keine Fehlermeldungen erhältst. :-)
// only Configuration? -> send him to the big form
if ($step == "1" and $setup == "config") { $step++; }
So wo kommt $step her?
[...]
echo "<tr><td colspan=2><input type=hidden name=step value=1> </td></tr>\n";
Aha, "step" ist der Name eines versteckten Eingabefeldes. Das Skript geht daher davon aus, dass es anschließend automatisch eine Variable dieses Namens gibt. Alt, sehr alt, zu alt. Es verläßt sich auf die Einstellung
register_globals = on
Seit PHP 4.2.0, seit dem 22. April 2002 ist die Standardeinstellung von register_globals = off, siehe PHP-Handbuch.
Meine Empfehlung: Suche Dir ein aktuelleres Skript, oder passe das Skript an die geänderten Bedingungen an. Das betrifft nicht nur die Variable $step.
Freundliche Grüße
Vinzenz
Hallo Vinzenz,
so etwas ähnliches hab' ich mir schon gedacht, da ich niergends _GET im Script finden konnte.
Hättest Du einen kurzen Tip, wie man so etwas macht? Ich kenne mich zwar mit anderen Programmiersprachen aus, aber nicht mit PHP. Oder einen Tip, wo ich dazu ein Beispiel finde, ohne das ich gleich das ganze Handbuch lesen muss. Keine Ahnung, nach was ich suchen müsste...
Danke!
Thomas