Hallo,
ich wollte mal fragen ob es sowas schon gibt? Und wenn nicht wer Zeit und Lust hätte und dies erstellen könnte. Preis dann nach Absprache und in Klammlose.
Druckbare Version
Hallo,
ich wollte mal fragen ob es sowas schon gibt? Und wenn nicht wer Zeit und Lust hätte und dies erstellen könnte. Preis dann nach Absprache und in Klammlose.
Die Idee hatte ich schon länger. Kann dir gerne was entsprechendes programmieren.
Neo, danke für das Angebot. Ich meld mich dann per ICQ bei dir wegen alles weiteren.
Bin schon dabei, das ganze zu programmieren. Bin fast fertig.
################################################## ################
ÄNDERUNG:
Um einen kleinen Fehler zu beheben, folgende Änderung vornehmen:
In der Datei: /content/konto/refgutschein.php
Zeile: 18
Original-Code-Zeile:Korrigierte Code-Zeile:Code:$sqlr = 'SELECT * FROM `' . $db_prefix . '_refkeys` WHERE `id` = ' . $data . ' LIMIT 1';
################################################## ################Code:$sqlr = 'SELECT * FROM `' . $db_prefix . '_refkeys` WHERE `id` = ' . @(int)$data . ' AND `user` = ' . $_SESSION["uid"] . ' LIMIT 1';
Das Script ist fertig!
Features:
- Unbegrenzte Anzahl an Gutscheinen von jedem User beliebig generierbar.
- "Permanent"-Gutscheine
- - Lassen sich mehrmals verwenden
- - Funktionieren NICHT, wenn das Guthaben des Erstellers nicht ausreichen. (Mehr dazu in folgenden Punkten)
- Beliebig festlegbarer "Anmeldebonus", welcher vom Gutschein-Ersteller-Konto abgebucht und auf das Konto des neuen Benutzers aufgebucht wird, insofern der Ersteller genug Guthaben besitzt. Einweg-Gutscheine buchen den Betrag vorher ab.
- Beliebig festlegbarer Code. Wird dies nicht festgelegt, wird ein zufälliger Code generiert.
- Gutscheine lassen sich löschen. Einweg-Gutscheine buchen, insofern nicht benutzt, den einbehaltenen Betrag zurück.
Ist sehr ausführlich umgesetzt und dürfte gegen alles und jeden gesichert sein. Minusbuchungen, Bugs und Hacks dürften keine Chance haben.
Hier das Snippet:
Datenbank-Tabelle erzeugen:
Nicht vergessen, das prefix anzupassen!Code:CREATE TABLE IF NOT EXISTS `vms_refkeys` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`key` varchar(19) NOT NULL,
`user` int(11) NOT NULL,
`bonus` bigint(20) NOT NULL DEFAULT '0',
`ref` int(11) NOT NULL DEFAULT '0',
`permanent` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;
Datei erstellen
Dateiname: /content/konto/refgutschein.php
Code:Spoiler!
Datei bearbeiten:
Dateiname: /content/intern/anmelden.php
NachFolgenden Code einfügen:Code:if ($_POST['newsletter'] == 1 and $_POST['paidmails'] == 1) $mailstatus = 3;
Spoiler!
In der selben Datei die Zeilemit Folgender ersetzen:Code:db_query("INSERT INTO ".$db_prefix."_kontodaten (uid,passwort,status,hinweis,kontostand) VALUES ('".$_POST['uid']."','".md5($_POST['passwort_1'])."','1','','0')");
In der selben Datei nachCode:db_query("INSERT INTO ".$db_prefix."_kontodaten (uid,passwort,status,hinweis,kontostand) VALUES ('".$_POST['uid']."','".md5($_POST['passwort_1'])."','1','','" . $startkapital . "')");
folgenden Code einfügen:Code:<tr>
<td class="main"><b>Passwortbestätigung:</b></td>
<td class="main"><input type="password" name="passwort_2"></td>
</tr>
Und zu guter Letzt irgendwo im Menü eine Verlinkung auf "?content=/konto/refgutschein" erstellen. Fertig.Code:<tr>
<td class="main"><b>Gutschein:</b></td>
<td class="main"><input type="text" name="refkey"></td>
</tr>
Ich habs mal nacheditiert. Diese Antwort dient lediglich dem "Push" im Forum :)
:eek: Na wenigstens benutzt du den Konjunktiv, aber spar dir solche Aussagen besser gleich ganz :)
In der Datei /content/konto/refgutschein.php
Wird nicht grpüft, ob die via POST übergebenen Gutschein IDs auch tatsächlich dem aktuell eingeloggten User zugeordnet sind. Da diese nicht schwer zu erraten sind (Auto_increment), und sofern vorhanden und noch nicht eingelöst dem aktuell eingeloggten User gutgeschrieben werden beim Löschen, naja das solltest du jetzt selber erraten können ...PHP-Code:
if(isset($_POST["delete"])) {
$gg = 0;
$sql = 'DELETE FROM `' . $db_prefix . '_refkeys` WHERE ';
foreach($_POST["delete"] as $data) {
$sqlr = 'SELECT * FROM `' . $db_prefix . '_refkeys` WHERE `id` = ' . $data . ' LIMIT 1';
$erg = db_query($sqlr);
if(mysql_num_rows($erg) > 0) {
$gs = mysql_fetch_object($erg);
if($gs->permanent == 0 AND $gs->bonus > 0 AND $gs->ref == 0) {
$buchungs_id = create_code(14);
db_query('UPDATE `' . $db_prefix . '_kontodaten` SET `kontostand` = `kontostand` + ' . $gs->bonus . ' WHERE `uid` = ' . $_SESSION['uid'] . ' LIMIT 1');
buchungsliste($buchungs_id,$gs->bonus,"Ref-Gutschein gelöscht",$_SESSION['uid']);
//....
Achso, $_POST["delete"] wird auch nicht geprüft auf SQL Injection, weiter hab ichs mir nicht angeschaut.
Und so einer traut sich dann zu, ein VMS Reloaded....., ach egal ^^
Uhhh. Ein böser Kritiker.
Die Prüfung, ob dem User die Gutscheine auch gehören ist ruckzuck eingebaut. Und Fehler macht jeder mal. Also halt mal schön die Backen.
Es wird sofort geändert und hier in der Anleitung korrigiert.
Und darüber hinaus: Das VMSR wird seit WOCHEN von mir bearbeitet. Ich schau an jeder Ecke. Ich habe 6 Tester "anwerben" dürfen, die das VMSR auf Herz und Nieren testen und solche Fehler, die du hier kritisierst, aufspüren zu versuchen.
DIESES kurze Script habe ich alleine umgesetzt und auch alleine getestet. Deine Kritik, dass ich EINE sache vergessen habe, fruchtet mal überhaupt nicht im Bezug aufs VMSR. Gehirn einschalten, Freundchen.
Nobody is Perfect. Und wer nen Fehler findet, kann diesen Fehler gerne melden. Aber nich dazu verwenden, kritik an anderen Projekten auszuüben, was damit nichts zu tun hat.
Darüber hinaus: Versuch du mal aus den Fingern ein Script zu saugen, was bis jetzt nur diesen gravierenden fehler drin hat.
Wenn du nochmal sowas vom Stapel lässt, werd ich anfangen, an deinen Projekten so agressiv destruktiv rumzukritisieren.
@ Neogriever: Du solltest auch dein "Gehirn anschalten, Freundchen" ... Wenn hier ein alter Hase im Bezug auf Sicherheit besogt ist, solltest du dir dies zu Herzen nehmen und nicht sowas hier vom Stapel lassen. Mehr brauch ich dazu nicht sagen, war schon fast zu viel sich einzumischen.
MfG
Er hätte es mir auch etwas anders mitteilen können als es gleich so hinzustellen, als hätte ich nix drauf. Ich habe das Script halt in kurzer Zeit umgesetzt und wie schon mehrfach gesagt: Nobody is perfect. Kritik schön und gut. Aber dann noch an was anderem rummeckern, was hiermit nix zu tun hat und wo ich schon wesentlich länger dran arbeite, ist wohl etwas zu viel der übertreibung gewesen.
Allein die Reaktion sagt schon so viel aus ^^
Aber egal, am Ende müssen die Webbis das selber entscheiden, ob sie ein von dir "überarbeitetes" Skript einsetzen wollen oder eben nicht.
Es geht in diesem Post NICHT um das VMSR ... Was ist DARAN so schwer zu verstehen? Und nur, weil ich hier eine Kleinigkeit übersehen habe, was man mir durchaus vergeben kann, machst du hier so nen Aufstand? Hallo? Ich glaub mal, lange hier aktiv sein heißt nicht, alt genug sein. Dein Benehmen gleicht nämlich einem 7 jährigem Jungen, der unbedingt Recht behalten will, obwohl es schon lange bewiesen ist, dass er kein Recht hat.
Dass ich HIER 1 Fehler gemacht habe, das habe ich eingesehen. Und auch prompt korrigiert. Aber SOFORT am VMSR, welches wesentlich mehr Planung, Arbeit und Zeit gefressen hat, rummeckern und es hiermit gleich stellen ist ein NOGO.
Und du scheinst es ja noch nichmal zu raffen, dass das jetzige Problem nichts mit dem von mir vergessenen Sicherheits-Sachen zu tun hat, sondern damit, WIE du diesen Fehler gemeldet hast.
Nur zum Vergleich.
"Oh. An deiner Gabel fehlt eine Zacke. Das ist gefährlich. Du solltest besser kein Auto mehr fahren, wenn du nichtmal eine Gabel ganz lassen kannst."
SO hast du argumentiert.
Haste noch nen Fehler im Script gefunden? Wenn ja, dann sags mir. Wenn nein, dann (sorry für den Ausdruck) HALT DEN SCHACHT!!! -.-
:D Genau das meinte ich...
Btw: genau genommen ja 2 Fehler....
Dann sei konstruktiv und sag einfach, welche Fehler und wie man sie ggf. beheben kann.
Derzeit bist du sehr destruktiv. Kein Wunder, dass das VMS nicht vorangekommen ist, bei solch einem User hier ...
Mich macht alleine die Einschätzung stutzig.
Vergeben kann man es Dir auf jeden Fall Alleine schon weil Du hier den Code veröffentlicht hast, anstatt ein verbugtes Addon zu verkaufen.
Allerdings ist die Einschätzung des Fehlers als Kleinigkeit meiner Meinung nach ziemlich daneben.
Sowas kann JEDEM passieren.
Allerdings sollte derjenige dann auch erkenen, dass es sich eben NICHT um eine Kleinigkeit handelt.
Der Verweis auf das VMSR ist in meinen Augen auch OK.
Ich habe auch sofort an deine Arbeit am VMSR gedacht, als ich das hier gelesen habe.
Dass Du dann allerdings aufgrund der Tonart etwas ungehalten reagierst ist auch verständlich.
Trotzdem ist jpwfour mal einer ist der wirklich Ahnung hat und was von Seinem "Handwerk" versteht.
Auch wenn er Dir gegenüber grade etwas weniger freundlich ist, solltest Du erkennen, dass Sein Hinweis eigentlich Gold Wert ist.
Habe seinen Hinweis auch direkt umgesetzt.
Es ist aus meiner Sicht ein Fehler, den ich schlichtweg übersehen habe, da die Änderung, die zur Korrektur nötig waren, kleinigkeiten waren.
Die offene Sicherheitslücke habe ich NICHT als kleinigkeit abgetan.
Ich bin dieser Diskussion langsam leid.