Chris
06.12.2001, 19:52
Ich dachte mir mal, vielleicht kann das jemand gebrauchen. Es ist auf die *schnelle* zusammengewürfelt und es funktioniert.
Wozu dieser Hack?
Nunja, jeder weiß, daß Attachments die Datenbank unheimlich belasten. So auch meine. Ich dachte mir, daß vielleicht eine Modifikation nützlich wäre, welche die Attachments als Files auf einem Webspace speichern könnte, denn dann könnten die Mitglieder ja auch Bilder posten, welche auf einem Free-Hoster abgespeichert werden und immer verfügbar wären, gell ? Also, dieser Hack ist genau für diese Geschichte.
Ich mache darauf aufmerksam, daß es keinen weiteren Support geben wird, es sei denn bei einer Version funktioniert das nicht.
Ferner brauch kein neues Template erstellt werden, nur muß der Link in einigen Templates eingefügt werden. Der HTML-Code ist in dem Script integriert, den Ihr natürlich nach Euren Wünschen ändern könnt.
Version: 1.0
für vBulletin-Version: 2.2.0 (andere nicht getestet, sollte aber funktionieren)
Schritt 1)
Als allererstes solltet Ihr Euch ein Verzeichnis anlegen, auf Eurem Webspace, wo die Bilder abgelegt werden und mit CHMOD 777 konfigurieren. (Nehmt nicht so ein komplizierten Namen mit komplizierten Unterverzeichnissen!)
Schritt 2)
Erstellt eine Datei mit folgendem Namen: upload.php und fügt folgenden Code ein:
<?php
error_reporting(7);
// Image-Upload-Script
// by Amasov (aka Chris aka Chris2101)
// http://www.das-computer-forum.com
// chris@d-c-f.de
// Generelle Konfiguration - General configuration
require('./global.php');
$upload_path = "public/"; // Pfad zu dem Upload-Verzeichnis - path to your upload directory
$extval_use = 1; // schaltet die Prüfung der Endung ein oder aus - turns on/off extension validation
// NICHT erlaubte Dateiendungen, verändere sie nach Deinen Bedingungen - forbidden extensions, you may configure it for your purposes
$extval = array("php", "php3", "asp", "bat", "exe", "com", "jsp", "cfml", "shtml", "dtcl", "htm", "html", "scr", "zip", "rar", "js", "pl", "dhtml", "xml", "xhtml", "phtml", "php4", "css", "tz", "lzh");
$filesize_limit_use = 1; // Größenprüfung ein/aus - Filesize checking on/off
$filesize_limit = 200; // Größenlimit in KiloByte - file size limit (in kB)
// Spracheneinstellung - language customization
$message["fileisbig"] = "Die Datei ist größer als erlaubt ("
. $filesize_limit . "kB)!";
$message["badext"] = "Dateien mit dieser Endung sind nicht erlaubt!";
$message["incomplete"] = "Das Hochladen ist fehlgeschlagen!";
$message["complete"] = "Das Hochladen war erfolgreich";
$message["uploadbutton"] = "Hochladen";
$message["uploadtxt"] = "Bilddatei für das Hochladen (lokal): ";
$message["fileexists"] = "Die Datei existiert schon. Falls dies ein anderes Bild ist, musst Du die Datei umbenennen.";
//Tags for vB-Code
$open_img_tag = "";
$close_img_tag = "";
//Dein Logo - Your Banner (must be placed in /images)
$yrlogo = "logo.gif";
//Deine URL (Der Pfad, den das Mitglied nutzt zum Kopieren der Tags - Your URL (used to show the path, that the user may copy into his post)
$dcfurl = "http://www.yourdomain.com/public/";
//Erlaubnisprüfung - permission checking
if ($bbuserid == 0)
{
eval("echo standarderror(\$bbtitle,\"".gettemplate("error_nopermission")."\");");
exit;
}
if ($bbusername == "" || (isset($bbusername))==0)
{
$getusername=$DB_site->query_first("SELECT username FROM user WHERE userid=$bbuserid");
$username=$getusername[username];
$bbusername = $username;
}
else
{
$username = $bbusername;
}
$rc = 0;
if ( isset($HTTP_POST_VARS["upload"]) ) {
$orig_name = $HTTP_POST_FILES['userfile']['name'];
$filename = ereg_replace("[^a-z0-9._]", "",
ereg_replace (" ", "_",
ereg_replace("%20", "_",
strtolower($orig_name))));
// Grösse - filesize
if($filesize_limit_use=1) {
$filesize = $HTTP_POST_FILES['userfile']['name'] / 1024; //filesize in kB
if($filesize_limit < $filesize) {
echo "<p><font color='red'><center><b>"
. $message["fileisbig"]."</b></font></center></p>";
$rc = 1;
}
}
if ( $rc == 0 ) {
// Dateiendungsprüfung - extension_validate
if($extval_use=1) {
$extget = substr( strrchr($filename, "."), 1);
$found = in_array($extget, $extval);
if ( $found ) {
echo "<p><font color='red'><center><b>"
. $message["badext"]."</b></font></center></p>";
$rc = 2;
}
}
}
if ( $rc == 0 ) {
// Datei schon vorhanden ? - file exists verification
echo "<p><center>Versuche folgende Datei hochzuladen auf: "
. $dcfurl . $filename . "</center></p>\n";
if ( file_exists($upload_path.$filename) ) {
echo "<p><font color='red'><center>"
. $message["fileexists"]."</font></center></p>";
} else {
if( move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],
$upload_path.$filename) ) {
echo "<p><center>" . $message["complete"]."<br><br>Kopiere den folgenden Code und füge ihn in Deinem Beitrag ein:<br><br><font color='green'><b>$open_img_tag$dcfurl$filename$close_img_tag</b></font></center></p>";
chmod ($upload_path.$filename, 0755); // Für alle Mitglieder sichtbar machen - make visible to all users
} else {
echo "<p><font color='red'><center>"
. $message["incomplete"]."</font></center></p>";
}
}
}
}
echo "
<head>
<!--Der Titel des Fensters - The title of the window-->
<title>$bbtitle - Ein Bild hochladen..</title>
<center>
<table border='0' width='100%' cellpadding='0' cellspacing='0'>
<tr>
<td valign='top' align='center'><img src='images/$yrlogo' border='0' alt='$bbtitle - Whatever you may place here'></td></tr></table>
</head>
<br>
<body bgcolor='#000000' text='#dfdfdf' id='all' leftmargin='10' topmargin='10' marginwidth='10' marginheight='10' link='#000000' vlink='#000000' alink='#000000'>
<table cellpadding='1' cellspacing='0' border='0' bgcolor='#000000' width='100%' align='center'>
<tr>
<td bgcolor='#600000' colspan='4' valign='center' align='center'><font face='verdana, arial, helvetica' size='2' color='#DEDEDE'><b>Ein Bild hochladen ...</font></b><br></td></tr>
<form enctype='multipart/form-data' method='post' action=''>
<input type='hidden' name='action' value='upload'>
<table frame=box rules=none border=0 cellpadding=2
cellspacing=0 align='center'><br><br>
<tr>
<td><font face='verdana, arial, helvetica' size='2' color='#DEDEDE'>".$message["uploadtxt"]."</td></font>
<td><input type='file' name='userfile'></td>
</tr>
<tr>
<td></td>
<td><input type='submit' name ='upload'
value='".$message["uploadbutton"]."'><br><br></td>
</tr>
</table>
<table border=0 cellpadding=2
cellspacing=0 align='left'>
<font face='verdana, arial, helvetica' size='1' color='#DEDEDE'>
<!-- Regeln - Rules-->
<br><b><u>Regeln:</u></b><br><br>Hiermit verpflichtest Du Dich keine Erotikbilder, -texte und ähnliches sowie verbotene,
strafbare oder sittenwidrige Inhalte hochzuladen.Die Administratoren behalten sich vor etwaige Verstöße mit der
Löschung der Dateien und einer Verbannung aus dem Forum zu ahnden.
</font></table>
</form>
</body>";
?>
(Ihr könnte den Code nach Euren Bedürfnissen ändern. z.B. Farben!)
Schritt 2)
Ladet die Datei ins Forum-UrVerzeichnis hoch.
Schritt 3)
Templateänderungen:
In folgenden Templates: newreply, newthread, editpost findet folgenden Eintrag (kann etwas abgewandelt sein, je nach Übersetzung):
<br><input type="checkbox" name="signature" value="yes" $signaturechecked> <b>Signatur anzeigen:</b> fügt Deine Signatur am Ende Deines Beitrags ein. Nur für registrierte Benutzer.<br>
direkt darunter tragt Ihr den Link ein:
<br><a href="upload.php"> Bild hochladen</a> - Hochladen eines Bildes, um es in Deinen Beitrag einzufügen.<br>
Das wars. So sollte es funzeln.
Grüsse,
Chris.
Wozu dieser Hack?
Nunja, jeder weiß, daß Attachments die Datenbank unheimlich belasten. So auch meine. Ich dachte mir, daß vielleicht eine Modifikation nützlich wäre, welche die Attachments als Files auf einem Webspace speichern könnte, denn dann könnten die Mitglieder ja auch Bilder posten, welche auf einem Free-Hoster abgespeichert werden und immer verfügbar wären, gell ? Also, dieser Hack ist genau für diese Geschichte.
Ich mache darauf aufmerksam, daß es keinen weiteren Support geben wird, es sei denn bei einer Version funktioniert das nicht.
Ferner brauch kein neues Template erstellt werden, nur muß der Link in einigen Templates eingefügt werden. Der HTML-Code ist in dem Script integriert, den Ihr natürlich nach Euren Wünschen ändern könnt.
Version: 1.0
für vBulletin-Version: 2.2.0 (andere nicht getestet, sollte aber funktionieren)
Schritt 1)
Als allererstes solltet Ihr Euch ein Verzeichnis anlegen, auf Eurem Webspace, wo die Bilder abgelegt werden und mit CHMOD 777 konfigurieren. (Nehmt nicht so ein komplizierten Namen mit komplizierten Unterverzeichnissen!)
Schritt 2)
Erstellt eine Datei mit folgendem Namen: upload.php und fügt folgenden Code ein:
<?php
error_reporting(7);
// Image-Upload-Script
// by Amasov (aka Chris aka Chris2101)
// http://www.das-computer-forum.com
// chris@d-c-f.de
// Generelle Konfiguration - General configuration
require('./global.php');
$upload_path = "public/"; // Pfad zu dem Upload-Verzeichnis - path to your upload directory
$extval_use = 1; // schaltet die Prüfung der Endung ein oder aus - turns on/off extension validation
// NICHT erlaubte Dateiendungen, verändere sie nach Deinen Bedingungen - forbidden extensions, you may configure it for your purposes
$extval = array("php", "php3", "asp", "bat", "exe", "com", "jsp", "cfml", "shtml", "dtcl", "htm", "html", "scr", "zip", "rar", "js", "pl", "dhtml", "xml", "xhtml", "phtml", "php4", "css", "tz", "lzh");
$filesize_limit_use = 1; // Größenprüfung ein/aus - Filesize checking on/off
$filesize_limit = 200; // Größenlimit in KiloByte - file size limit (in kB)
// Spracheneinstellung - language customization
$message["fileisbig"] = "Die Datei ist größer als erlaubt ("
. $filesize_limit . "kB)!";
$message["badext"] = "Dateien mit dieser Endung sind nicht erlaubt!";
$message["incomplete"] = "Das Hochladen ist fehlgeschlagen!";
$message["complete"] = "Das Hochladen war erfolgreich";
$message["uploadbutton"] = "Hochladen";
$message["uploadtxt"] = "Bilddatei für das Hochladen (lokal): ";
$message["fileexists"] = "Die Datei existiert schon. Falls dies ein anderes Bild ist, musst Du die Datei umbenennen.";
//Tags for vB-Code
$open_img_tag = "";
$close_img_tag = "";
//Dein Logo - Your Banner (must be placed in /images)
$yrlogo = "logo.gif";
//Deine URL (Der Pfad, den das Mitglied nutzt zum Kopieren der Tags - Your URL (used to show the path, that the user may copy into his post)
$dcfurl = "http://www.yourdomain.com/public/";
//Erlaubnisprüfung - permission checking
if ($bbuserid == 0)
{
eval("echo standarderror(\$bbtitle,\"".gettemplate("error_nopermission")."\");");
exit;
}
if ($bbusername == "" || (isset($bbusername))==0)
{
$getusername=$DB_site->query_first("SELECT username FROM user WHERE userid=$bbuserid");
$username=$getusername[username];
$bbusername = $username;
}
else
{
$username = $bbusername;
}
$rc = 0;
if ( isset($HTTP_POST_VARS["upload"]) ) {
$orig_name = $HTTP_POST_FILES['userfile']['name'];
$filename = ereg_replace("[^a-z0-9._]", "",
ereg_replace (" ", "_",
ereg_replace("%20", "_",
strtolower($orig_name))));
// Grösse - filesize
if($filesize_limit_use=1) {
$filesize = $HTTP_POST_FILES['userfile']['name'] / 1024; //filesize in kB
if($filesize_limit < $filesize) {
echo "<p><font color='red'><center><b>"
. $message["fileisbig"]."</b></font></center></p>";
$rc = 1;
}
}
if ( $rc == 0 ) {
// Dateiendungsprüfung - extension_validate
if($extval_use=1) {
$extget = substr( strrchr($filename, "."), 1);
$found = in_array($extget, $extval);
if ( $found ) {
echo "<p><font color='red'><center><b>"
. $message["badext"]."</b></font></center></p>";
$rc = 2;
}
}
}
if ( $rc == 0 ) {
// Datei schon vorhanden ? - file exists verification
echo "<p><center>Versuche folgende Datei hochzuladen auf: "
. $dcfurl . $filename . "</center></p>\n";
if ( file_exists($upload_path.$filename) ) {
echo "<p><font color='red'><center>"
. $message["fileexists"]."</font></center></p>";
} else {
if( move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],
$upload_path.$filename) ) {
echo "<p><center>" . $message["complete"]."<br><br>Kopiere den folgenden Code und füge ihn in Deinem Beitrag ein:<br><br><font color='green'><b>$open_img_tag$dcfurl$filename$close_img_tag</b></font></center></p>";
chmod ($upload_path.$filename, 0755); // Für alle Mitglieder sichtbar machen - make visible to all users
} else {
echo "<p><font color='red'><center>"
. $message["incomplete"]."</font></center></p>";
}
}
}
}
echo "
<head>
<!--Der Titel des Fensters - The title of the window-->
<title>$bbtitle - Ein Bild hochladen..</title>
<center>
<table border='0' width='100%' cellpadding='0' cellspacing='0'>
<tr>
<td valign='top' align='center'><img src='images/$yrlogo' border='0' alt='$bbtitle - Whatever you may place here'></td></tr></table>
</head>
<br>
<body bgcolor='#000000' text='#dfdfdf' id='all' leftmargin='10' topmargin='10' marginwidth='10' marginheight='10' link='#000000' vlink='#000000' alink='#000000'>
<table cellpadding='1' cellspacing='0' border='0' bgcolor='#000000' width='100%' align='center'>
<tr>
<td bgcolor='#600000' colspan='4' valign='center' align='center'><font face='verdana, arial, helvetica' size='2' color='#DEDEDE'><b>Ein Bild hochladen ...</font></b><br></td></tr>
<form enctype='multipart/form-data' method='post' action=''>
<input type='hidden' name='action' value='upload'>
<table frame=box rules=none border=0 cellpadding=2
cellspacing=0 align='center'><br><br>
<tr>
<td><font face='verdana, arial, helvetica' size='2' color='#DEDEDE'>".$message["uploadtxt"]."</td></font>
<td><input type='file' name='userfile'></td>
</tr>
<tr>
<td></td>
<td><input type='submit' name ='upload'
value='".$message["uploadbutton"]."'><br><br></td>
</tr>
</table>
<table border=0 cellpadding=2
cellspacing=0 align='left'>
<font face='verdana, arial, helvetica' size='1' color='#DEDEDE'>
<!-- Regeln - Rules-->
<br><b><u>Regeln:</u></b><br><br>Hiermit verpflichtest Du Dich keine Erotikbilder, -texte und ähnliches sowie verbotene,
strafbare oder sittenwidrige Inhalte hochzuladen.Die Administratoren behalten sich vor etwaige Verstöße mit der
Löschung der Dateien und einer Verbannung aus dem Forum zu ahnden.
</font></table>
</form>
</body>";
?>
(Ihr könnte den Code nach Euren Bedürfnissen ändern. z.B. Farben!)
Schritt 2)
Ladet die Datei ins Forum-UrVerzeichnis hoch.
Schritt 3)
Templateänderungen:
In folgenden Templates: newreply, newthread, editpost findet folgenden Eintrag (kann etwas abgewandelt sein, je nach Übersetzung):
<br><input type="checkbox" name="signature" value="yes" $signaturechecked> <b>Signatur anzeigen:</b> fügt Deine Signatur am Ende Deines Beitrags ein. Nur für registrierte Benutzer.<br>
direkt darunter tragt Ihr den Link ein:
<br><a href="upload.php"> Bild hochladen</a> - Hochladen eines Bildes, um es in Deinen Beitrag einzufügen.<br>
Das wars. So sollte es funzeln.
Grüsse,
Chris.