Archiv verlassen und diese Seite im Standarddesign anzeigen : [Biete] - Treue - Sterne Hack !
Dieser Hack wurde am 14.01.2003 überarbeitet !
Treue-Sterne ( Werden nach der dauer der Registrierung auf dem Board gerechnet ):
1 bis 119 Tage 1 Stern
120 bis 239 Tage Registriert = 2 Stern
240 bis 359 Tage Registriert = 3 Sterne
360 bis 479 Tage Registriert = 4 Sterne
480 bis 599 Tage Registriert = 5 Sterne
600 bis 719 Tage Registriert = 6 Sterne
720 bis ... Tage Registriert = 7 Sterne
Kurzfassung:
pro 4 Monate Boardzugehörigkeit bekommt man automatisch einen weiteren
Treue - Stern bis man nach 2 Jahren die maximale Anzahl von 7 Sternen hat.
Angezeigt werden sie in den Beiträgen der user !
Demo findet Ihr auf meinem Board www.smokers-board.de (http://www.smokers-board.de/klicks/klick.php?id=26) !
Sucht Euch irgendein Beitrag raus und bei jedem User stehen die Treue - Sterne unter dem Benutzerbild !
Noch ein danke an Afterburner, der mir den Tip zur Berechnung des Registrierdatums gegeben hat.
Dieser Hack ist auch sehr klein :)
Zu ändern ist.
Eine Datei + Ein Template
bye
Smoker
hi!!
frage
könntest du das mal kurz erklären wie du das mit der zeitberechnung gemacht hast? Werd aus den zahlen irgendwie nicht schlau :D
ich würde den hack gerne bei mir im board unterbringen jedoch mit anderen zeitabständen
danke im vorraus!!
Also gerechnet wird ( 60 x 60 x 24 x Tage ) !
In meinem Hack bei 720 Tage Registriert steht ja die zahl ( 62208000 )
Die ( 62208000 ) = 60 x 60 x 24 x 720 !
bye
Smoker
Afterburner
11.01.2003, 21:49
Original geschrieben von Smoker
Also gerechnet wird ( 60 x 60 x 24 x Tage ) !
In meinem Hack bei 720 Tage Registriert steht ja die zahl ( 62208000 )
Die ( 62208000 ) = 60 x 60 x 24 x 720 !
bye
Smoker
sehe du hast es dir gemerkt ;)
60 (Sekunden) x 60 (Minuten) x 24 (Stunden) = 1 Tag
also 1 Tag hat 86400 Sekunden, das müßt ihr dann mit den Tagen multiplizieren.
@Afterburner
Jo, das habe ich mir gemerkt und das war auch der Super tipp, den du mir gegeben hast um diesen Hack zu erstellen :)
Nochmal im nachhinein DANKE :)
bye
Smoker
Afterburner
11.01.2003, 22:01
kein problem, nur die fragestellung war damals etwas verwirrend ;)
Ja, ich weis ... ich war damals so mit den Nerven am Ende, da ich das einfach nicht richtig hin bekommen habe, das ich nur Wirr geschrieben habe :D :D :D
bye
Smoker
Kann man das net irgendwie daran koppeln das nur die Leute nen Stern bekommen die regelmäßig (alle 14 Tage z.B.) auch "da" sind...macht imho wenig Sinn jemandem 4 oder 5 Sterne zu geben der 2 Postings hat aber schon 1 1/2 Jahre dabei ist... ;)
@cappy
Das geht bestimmt, aber ich weis nicht wie, denn ich bin noch ein Newbie in Hacks erstellen :(
Aber sieht es doch mal so, wer 2 Beiträge in 1 Jahr hat, den sieht man doch sowieso nicht auf dem Board, denn da die sterne nur in beiträgen angezeigt werden sieht man die auch nur von Aktiven Usern ;)
bye
Smoker
Afterburner
14.01.2003, 10:59
dann müßte man das mit den "normalen" starhack koppeln
ala
if ((post größer anzahl-postings) und (dabei-seit größer einDatum)) $stars ="*******";
naja war ein mußtercode welche so nicht funktioniert, war nur zum verständnis
ein kleiner tipp:
php besitzt eine funktion "str_repeat". wie der name schon andeutet, kann man mit dieser funktion einen string X mal wiederholen.
syntax: str_repeat('string',anzahlderwiederholungen)
das bietet sich bei deiner modifikation an.
anstatt:
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
kannst du einfach:
$treue = str_repeat('<img src="images/stars/treue.gif">',7);
schreiben. das würde nun sieben sterne in die variable setzen.
und schon sieht der code viel netter und übersichtlicher aus. :)
noch ein tipp:
wenn du mit assoziativen arrays arbeitest, so wie hier mit dem $post array, dann verwende dafür einfache anführungszeichen.
$post[joindate] ist eine falsche syntax und php gibt einen hinweis deswegen aus, vB unterdrückt den allerdings. aber der fehler ist trotzdem vorhanden, auch wenn es funktioniert, da php sehr großzügig im umgang mit falscher syntax ist.
das ist glück für vB, denn die programmierer habens damit leider auch nicht sehr genau genommen.
$post['joindate'] wäre korrekt.
die anführungszeichen darfst du innerhalb der templates nicht verwenden - denke ich, das müsste einen fehler in der eval() funktion erzeugen. ich habs aber nie getestet.
es funktioniert vielleicht auch innerhalb der templates wenn man die arrays mit geschweiften klammern umgibt. sowas wie {$post['avatar']}. aber das ist wohl auch egal, vB3 wird wohl etwas sauberer in bezug auf solche probleme/fehler sein.
weshalb ich aber eigentlich hier antworten wollte, war ein anders, aber viel wichtigeres thema.
dein code ist grundsätzlich ein magnet für mögliche sicherheitslücken und damit verbundene angriffe auf das forum.
du hast da eine "uninitialisierte variable" ($treue), wie das so schön heisst.
geh mal davon aus, dass keine deiner if-bedingungen zutrifft, also der variablen $treue keine grafik zugewiesen wird.
kein problem denkst du, dann werden halt keine sterne angezeigt?
denkste...doch ein problem!
nimm mal an, ich würde eine php datei mit dem parameter datei.php?treue=hier_ein_böser_javascript_code
aufrufen.
soforn die php option 'register_globals' aktiv ist (das ist sie leider noch immer bei vielen - und so wie vB geschrieben ist, funktionierts sogar ohne diese option) hätte ich in dem script nun die variable $treue, die einen javascript code enthält um z.b. cookies auszulesen.
falls nun keine deiner if-bedingungen zutreffen sollte, würde die variable unverändert übernommen und in den beiträgen angezeigt werden.
und dann....AUA!
doch ein problem. ;)
um das zu verhindern solltest du die variable vor *gebrauch* initialisieren.
das geht ganz einfach, indem du vor deine if-bedingungen einfach ein
$treue = "";
setzt.
jetzt spielt es keine rolle mehr, ob jemand irgendwelche parameter in der url übergeben und damit die variable bereits angelegt hat. egal ob sie vorher schon existiert hat oder nicht, der wert der variablen wird erstmal auf "nichts" gesetzt.
wenn nun deine if-bedingungen nicht zutreffen sollten wärs kein problem, dann hat $treue halt keinen wert.
ich hab das hier nun nur allgemein geschrieben. ich weiss nicht, ob deine modifikation wirklich eine angriffsmöglichkeit bietet, da muss man sich den restlichen code genauer ansehen.
die art und weise wie du's geschrieben hast, lässt aber die augen eines jeden, der sich mehr als fünf mal mit php beschäftigt hat, glühen. ;)
wie gesagt, ich weiss nicht ob dein code ein problem darstellt. aber es gibt für zahlreiche forensysteme eine große anzahl an modifikationen die solche attacken zulassen.
dem problem sollte deutlich mehr aufmerksamkeit geschenkt werden.
aber es hört ja nie jemand auf mich! :( :D
@martin
Ich bin in sachen Hacks erstellen noch ein absoluter anfänger und wusste es nicht besser :(
Das $post[joindate] macht keine Probleme ob mit oder ohn diese '' !
Also sollte ich VOR das ...
if (time()-$post[joindate] > 62208000 ) {
Das $treue = ""; setzten ?
Thxx
Smoker
Ich bin in sachen Hacks erstellen noch ein absoluter anfänger und wusste es nicht besser
das macht ja nichts, lass dich bloss nicht entmutigen. :)
das problem besteht übrigens grundsätzlich bei allen php scripten und ist nicht auf forensysteme beschränkt.
Das $post[joindate] macht keine Probleme ob mit oder ohn diese '' !
in den dateien macht das keine probleme, da der warnhinweis, der eigentlich im browser angezeigt werden sollte, durch vB unterdrückt wird. der fehler ist aber trotzdem vorhanden, auch wenn es funktioniert.
oder meinst du in den templates?
da bin ich mir nicht sicher, hab ich ja auch geschrieben.
Also sollte ich VOR das ...
if (time()-$post[joindate] > 62208000 ) {
Das $treue = ""; setzten ?
genau.
das problem erkennst du, wenn du dich mal etwas weiter mit php beschäftigst.
wenn du eine php datei z.b. so aufrufst:
datei.php?name=martin
dann würde in der datei automatisch die variable $name mit dem wert 'martin' erzeugt werden.
das wäre also das selbe, als wenn du in der datei direkt
$name = 'martin';
schreiben würdest.
und in deinem fall wärs halt
datei.php?treue=wasauchimmerduwillst
wenn du das $treue= ""; aber in deinen code setzt, würde das 'wasauchimmerduwillst' wieder gelöscht bzw. überschrieben und stellt kein problem mehr dar.
wenn ich mal nen extrem guten tag hab, schreib ich mal eine ausführliche erklärung zu diesem ganzen zeug, mit der variablen erzeugung und parameterübergabe in der url, ins php forum.
das ist nämlich insgesamt ein riesen problem geworden in der php programmierung bei dem man schnell größere sicherheitsprobleme bekommen kann.
@martin
Ich habe das mal überarbeitet !
Schau dir das mal bitte an, ob das jetzt ok bzw. besser ist !
Thxx
Smoker
feiner hack :) *daumenhoch*
OK, danke :)
Zu deiner Signatur ... ( ubb geschädigter ) ...
Da haben wir was gemeinsam :D :D :D
bye
Smoker
@ddausch
Danke :)
bye
Smoker
Afterburner
14.01.2003, 20:28
@ martin
str_repeat, man lernt nie aus, habe noch nie damit gearbeitet, ist aber ne feine sache, sage mal thx for info
Habe mir den Hack auch installiert. Hat alles wunderbar geklappt und nun geht er auf einmal nicht mehr. Man liest im Benutzerfeld noch Treusterne aber der Stern ist weg. Nach erneuter Installation und Überprüfung klappt es auch nicht mehr!
Hat jmd. nen Tip?
Kann es sein das der Hack nicht mit anderen zusammenarbeiten mag?
Im ( postbit ) Template steht auch das Komplett drin ...
<br><br><smallfont>Treue - Sterne<br>$treue</smallfont>
?????
Und in der admin/funktions.php steht auch der Hack code gleich unter ...
$post[usertitle] = htmlspecialchars($post[usertitle]);
}
???
bye
Smoker
Jo alles so wie es beschrieben ist. Hat ja auch alles funktioniert, bis ein anderer Hack dazu kam! Poblem ist halt nur das man den Stern nicht mehr sieht.
Nachtrag: Habe mir jetzt auch mal den normalen Stars Hack installiert auch der funktioniert nicht!
Muss man da vll. irgendwas im AP einstellen, dass er die anzeigt?
P.S. Welche Sterne hast Du dafür verwendet? Auch die aus dem Treue Hack?
Hmmm dann wird es leider so sein, das sich der neue Hack nicht mit dem verträgt :(
Welcher Hack ist es denn ?
bye
Smoker
Hmmm den habe ich nicht beui mir drin !
Denke mal das der sich wirklich nicht verträgt :(
bye
Smoker
Ist aber komisch da ich bei beiden Hacks (Treue Sterne & normale Sterne) nur ein paar Zeilen einfügen muss. Es wird ja nix grossartiges verändert. Hmmmmmmmm.
Stand nicht irgendwo im Adminpanel was von /images???
Woher weiss der Hack denn auf welches Verzeichnis er zugreifen muss?
Also an andren Hacks liegt es definitiv nicht!
Im Hack steht doch ...
<img src=\"images/stars/treue.gif\">
Also nimmt er aus aus dem ordner images/stars
bye
Smoker
Wishmaster
09.03.2003, 03:53
Wenn ich den einzufügenden Text veränder das ich immer ein
$treue .= "<img src=\"images/stars/treue.gif\">";
dazutu, kann man sich dann mehr als 7 Sterne anzeigen lassen ?
Ja, musst einfach eine Zeile da kopieren und anfügen bzw. soviel du möchtest !
Teoretisch sind da auch 100000000000 Sterne möglich :)
bye
Smoker
Original geschrieben von Wishmaster
Wenn ich den einzufügenden Text veränder das ich immer ein
$treue .= "<img src=\"images/stars/treue.gif\">";
dazutu, kann man sich dann mehr als 7 Sterne anzeigen lassen ?
sieh dir mal meinen beitrag auf der ersten seite dieses themas an.
ich hab dort gleich zu beginn geschrieben, wie man das ganz einfach machen kann.
cYbercOsmOnauT
23.05.2003, 03:23
Simpel und schöner Hack - Danke dafür :)
[x]installed
an sich echt gut =)
Ich versuch das an die anzahl der Beiträge fest zu machen, da es wirklich keinen sinn hat wenn jemand 2 jahre angemeldet ist aber null beiträge oder öhnliches hat.
Treue Sterne fürs Angemeldet sein ist sinnlos =) aber idee ist schon schön!
Gruß Andy
ich habe mir mal erlaubt das zu Ändern.
Ich finde es Dähmlich das user treue sterne dafür bekommen das sie sich vor einer gewissen zeit angemeldet haben.
Beispielsweise jene die sich angemeldet haben aber unter 3 Beiträgen geblieben sind bekommen dennoch nach 2 jahren treue sterne wie user die regelmäßig das Board besuchen.
Bei meiner Änderung bekommt der Admin die vollen sterne und user werden nach der Beitragszahl bewertet.
Einfügen in der funcions.php wo der Original author es angegeben hat.
$treue = "";
if($post[usertitle]=="Administrator") {
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\"><br>"; }
elseif ($post[posts] > 300 ) {
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\"><br>"; }
elseif ($post[posts] > 250 ) {
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\"><br>"; }
elseif ($post[posts] > 200 ) {
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\"><br>"; }
elseif ($post[posts] > 150 ) {
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\"><br>"; }
elseif ($post[posts] > 100 ) {
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\"><br>"; }
elseif ($post[posts] > 50 ) {
$treue .= "<img src=\"images/stars/treue.gif\">";
$treue .= "<img src=\"images/stars/treue.gif\"><br>"; }
elseif ($post[posts] > 10 ) {
$treue .= "<img src=\"images/stars/treue.gif\"><br>"; }
elseif ($post[posts] < 10) {
$treue .= "Neuer User"; }
Darüberhinaus habe ich noch eingefügt das user, die darunter leigen mit neuesuser betitelt werden wo dann normaler weise die sterne liegen.
Die zahlen könnt ihr Varieren
($post[posts] < 10)
Diese stehen für die Beiträge der user um damit die anzahl an sterne zu bestimmen.
Have Fun.
Gruß Andy
Deswegen nennt es sich ja Treue Sterne.
Treue der Boardzugehörigkeit.
Das was du da gepostet hast, gibt es seit jahren unter den Namen ( Stars Hack ).
bye
Smoker
jo sorry wusste ich nicht. wollte nur helfen.
Ich besitze das Board erst seit einigen tagen. 5 oder so
is auch egal =)
Trotzdem danke für die antwort trotz des Altes von dem thread.
Gruß andy
jo sorry wusste ich nicht. wollte nur helfen.
Ich besitze das Board erst seit einigen tagen. 5 oder so
is auch egal =)
Trotzdem danke für die antwort trotz des Altes von dem thread.
Gruß andy
Solltest auch besser die Version für das vB 3 nehmen und nicht für´s vB 2 ;)
http://www.vbulletin-germany.com/forum/showthread.php?s=&threadid=8136
bye
Smoker
Mastermaik
27.09.2005, 09:43
Sorry, falsche Forum, bitte Post löschen !
vBulletin® v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.