Seite 1 von 5 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 42

Thema: Verzögerte Bettelseiten-Vergütung

  1. #1
    Erfahrener Benutzer Avatar von h-m
    Registriert seit
    02.09.2006
    Beiträge
    115

    Verzögerte Bettelseiten-Vergütung

    Letze Änderung der Scripte 31.07.2008 05:19 - Bei Bedarf bitte erneut installieren
    Da es vor Kurzem angefragt wurde und mir langweilig war, hier mal ein Codeschnippsel der bewirkt, dass die Vergütung eines Bettelseiten-Aufrufs nicht sofort erfolgt, sondern erst nach sechs Sekunden Verzögerung.

    Bitte wie immer nicht vergessen Backups anzulegen bevor irgendwelche Dateien überschrieben werden. Datenbank-Backup ist auch sinnvoll.

    Neue "betteln.php":
    Code:
    <?
    $_GET['ref'] = (int)$_GET['ref'];
    
    
    if ($pageconfig['reload_betteln'] == 0){
    	$betteltext = '<b>Die Bettelfunktion ist auf dieser Seite deaktiviert';
    }else{
    	if ($_SESSION['uid'] == $_GET['ref'] || $_GET['ref'] == $_COOKIE['uid']){
    		$betteltext = '<b><font color="#FF0000">Du kannst dich nicht selbst anbetteln!</font></b>';
    	}else{
    		$new_reload = 
    		$_SESSION['betteldelay'] = time() + 5;
    		$doload = true;
    		$betteltext = '<b><font color="#FF0000">Bitte warte ein paar Sekunden bis die Verg&uuml;tung erfolgt ist.</font></b>';
    	}
    }
    ?>
    
    <?head("Betteln auf ".$seitenname);?>
    Verdiene auch Du mit!<br>
    Melde Dich bei <?=$seitenname;?> an und bewirbe Deinen pers&ouml;nlichen Bettellink, so
    verdienst Du Deine <?=$waehrung;?> fast wie im Schlaf!<br>
    <br>
    <div align="center" id="betteltext"><?=$betteltext;?></div>
    
    <? if ( $doload === true ) { ?>
    	<script type="text/javascript">
    	window.setTimeout(function(){
    		var ifr = document.createElement('iframe');
    		ifr.setAttribute( 'width', '0' );
    		ifr.setAttribute( 'height', '0' );
    		ifr.setAttribute( 'src', '/index.php?content=/betteln_verg&ref=<?=$_GET['ref'];?>' );
    		document.getElementsByTagName('body')[0].appendChild(ifr);
    	}, 6000);
    	</script>
    <? }
    
    foot();
    
    $filename = 'lib/texte/bettelwerbung.txt';
    $fp = fopen ($filename, "r");
    $inhalt = fread ($fp, filesize ($filename));
    fclose ($fp);
    $inhalt = str_replace('\\', '', $inhalt);
    
    if ($inhalt != ''){
    	head("Werbung dieser Seite");
    	echo nl2br($inhalt);
    	foot();
    }
    ?>
    Neue Datei "betteln_verg.php":
    Code:
    <?
    // Autor: profitgeier
    // Diese Datei enthält geschützten Quellcode von Designerscripte.net
    
    $_GET['ref'] = (int)$_GET['ref'];
    
    if ($pageconfig['reload_betteln'] != 0){
    
    	// prüfe ob Bettelseite noch im Reload
    	$reloadcheck = db_query("SELECT bis FROM ".$db_prefix."_reloads WHERE ip = '".$ip."' and tan = 'bettelaufruf' and bis >= ".time()." LIMIT 1");
    
    	if (!mysql_num_rows($reloadcheck)) {
    	
    		// prüfe ob Zeit vergangen sind
    		if (isset($_SESSION['betteldelay'])) $delaycheck = ( $_SESSION['betteldelay'] < time() );
    		else $delaycheck = false;
    
    		if ($delaycheck) {
    			
    			$minimum		= $pageconfig['min_betteln'];
    			$maximum		= $pageconfig['max_betteln'];
    			srand((double)microtime()*1000000);
    			$bettelsumme	= rand($minimum*100,$maximum*100)/100;
    			
    			$new_reload = time()+$pageconfig['reload_betteln'];
    			db_query("INSERT INTO ".$db_prefix."_reloads (ip,uid,tan,bis) VALUES ('".$ip."','".$_GET['ref']."','bettelaufruf','".$new_reload."')");
    			
    			db_query("UPDATE ".$db_prefix."_kontodaten  SET angebettelt =angebettelt + 1, bv = bv + ".$bettelsumme.", kontostand = kontostand + '".$bettelsumme."' WHERE uid = '".$_GET['ref']."'");
    			
    			refumsatz ($bettelsumme,$_GET['ref']);
    			aktivralley ($bettelsumme,$_GET['ref']);
    			bilanz(0,$bettelsumme);
    						
    			$betteltext = '<b>Du hast f&uuml;r den User '.$_GET['ref'].' gerade '.$bettelsumme.' '.$waehrung.' erbettelt!</b>';
    			
    			unset($_SESSION['betteldelay']);
    		} else {
    			// Bettelvergütung zu schnell angefordert 
    			$betteltext = '<b><font color="#FF0000">Fehler bei Bettel-Verg&uuml;tung! Vergütung ist nicht erfolgt.</font></b>';
    		}
    	} else {
    		// Bettelseite noch im Reload
    		$reloadcheck = mysql_fetch_array($reloadcheck);
    		$betteltext = '<b><font color="#FF0000">Du bist noch f&uuml;r '. round((($reloadcheck['bis'] - time())),0) .' Sekunden f&uuml;rs Betteln gesperrt</font></b>';
    	}
    }
    
    ?>
    <script type="text/javascript">
    	parent.document.getElementById('betteltext').innerHTML = '<?=$betteltext;?>';
    </script>
    Beide Dateien gehören in den Ordner "/content", wie die originale "betteln.php".

    • Die Vergütung erfolgt nach etwa 6 Sekunden (Abhängig von Systemauslastung / Browser des Users, d.h. wenn er mehrere JavaScript-Lastige Webseiten nebenbei geöffnet hat könnte es ein wenig länger als 6 Sekunden dauern).
    • JavaScript muss eingeschaltet sein, damit eine Vergütung erfolgen kann.
    • Popup-Blocker von Firefox wird ausgehebelt, indem das Iframe erst zur Laufzeit mit JavaScript kreiert und in den Elementbaum der Seite gehängt wird.
    • Iframe-Blocker und NoScirpt habe ich nicht getestet
    • Funktoniert möglicherweise ab IE 5.5, Opera 7.0, Firefox 1.0 laut SelfHTML-Angaben zu den JavaScript-Befehlen "createElement", "setAttribute" und "appendChild". Dies wurde jedoch nicht getestet.
    • Erfolgreich getestet mit FF 3.0.1, Opera 9.5.1, IE 7 Pro.


    Anpassung der Verzögerungs-Zeit:
    in betteln.php:
    $_SESSION['betteldelay'] = time() + 5;
    sowie
    }, 6000);
    den eigenen Anforderungen anpassen.

    Erster Wert sind Sekunden, zweiter Wert Millisekunden.
    Wenn ich beides auf fünf Sekunden gestellt hatte, dann wurde oft die betteln_verg.php zu früh geladen so dass keine Vergütung stattfand (ich vermute das hängt ab von der Auslastung des Web-Servers und des Datenbank-Servers oder vom JavaScript-Interpreter des Clients (Browsers)). Deshalb habe ich den ersten Wert auf fünf und den zweiten auf sechs Sekunden gestellt, damit wurde die betteln_verg.php nicht mehr zu früh geladen.

    Ich habe nur kurze Tests durchgeführt, also bitte vor dem Einsatz ausgiebig testen, denn bei stark beworbenen Bettelseiten könnte ein kleiner Fehler großen Verlust bedeuten.

    Kleingedrucktes:
    Die Nutzung erfolgt auf eigene Verantwortung. Ich hafte nicht für Schäden irgendeiner Art.

    Freundliche Grüße,
    profitgeier / hm

    ps. basierend auf der Bettelseite von VMS v1.2.3 und nur dort getestet.

  2. #2
    Erfahrener Benutzer
    Registriert seit
    05.07.2006
    Beiträge
    134
    zwei kleine Anmerkungen

    1. Warum den betteldelay in der DB speichern?
    Kostet nur unnötige DB-Abfragen. Es würde voll ausreichen den betteldelay in ner Session zu Speichern und diese nach Vergütung direkt wieder zu löschen.

    2. Um das Problem mit dem nicht eingeschalteten JS zu umgehen würde auch ein einfacher <meta refresh> tun. Um nicht die ganze Seite neu zu laden könnte man den Refresh auch in nem Iframe ablaufen lassen das halt direkt geladen wird.
    Loseschleuder.de

    Jede Stunde mehrfach bis zu 100.000 Lose geschenkt!
    Keine extra Anmeldung nötig! Klamm ID genügt! -> Auszahlung ab 100.000 Losen

  3. #3
    Erfahrener Benutzer Avatar von h-m
    Registriert seit
    02.09.2006
    Beiträge
    115
    Zitat Zitat von schulz3000 Beitrag anzeigen
    zwei kleine Anmerkungen

    1. Warum den betteldelay in der DB speichern?
    Kostet nur unnötige DB-Abfragen. Es würde voll ausreichen den betteldelay in ner Session zu Speichern und diese nach Vergütung direkt wieder zu löschen.
    Grund: nicht dran gedacht. Danke für die Info.

    Zitat Zitat von schulz3000 Beitrag anzeigen
    2. Um das Problem mit dem nicht eingeschalteten JS zu umgehen würde auch ein einfacher <meta refresh> tun. Um nicht die ganze Seite neu zu laden könnte man den Refresh auch in nem Iframe ablaufen lassen das halt direkt geladen wird.
    Interessant. Vergüten Sponsoren/Sponsonetzwerke denn wenn JavaScript ausgeschaltet ist? Denn viele Lose-Webmaster machen doch Layer-Werbung auf ihre Bettelseiten, dachte immer das geht nur mit JavaScript. Ziel ist es ja dass der Webmaster seine Vergütung vom Sponsor erhält.

    Bin offen für mehr Infos & Ideen.
    Freundliche Grüße, hm

  4. #4
    Erfahrener Benutzer Avatar von h-m
    Registriert seit
    02.09.2006
    Beiträge
    115
    So ich habe mal den ersten Beitrag geändert.
    Das "betteldelay" wird nun in der Session statt in der Datenbank gespeichert, wie schulz3000 es vorgeschlagen hat.
    Wenn man schon 24h wach war und dann so was schnell hinrotzt wie ich oben dann denkt man nicht an alles.

    Was meint Ihr dazu dass JavaScript benötigt wird?
    Stimmt das überhaut was ich zu den Vergütungen geschrieben habe, dass man bei manchen Sponsoren nur vergütet wird wenn man JavaScript an hat?
    Ich habe da noch keine so großen Erfahrungen, deshalb würde ich mich über Rückmeldungen freuen.

  5. #5
    Erfahrener Benutzer
    Registriert seit
    05.07.2006
    Beiträge
    134
    Das mit dem Javascript stimmt schon, also das man es braucht um bei den Sponsoren vergütet zu werden. Hier gibts ja aber leider das Firefoxaddon noscript mit dem man z.B. für alle Sponsorennetzwerkurls Javascript deaktivieren kann. Für die Bettelseite ist es dann zwar aktiviert aber für die Sponsoren nicht und so bekommt der User die Vergütung fürs Betteln der Betreiber aber keine Lose vom Sponsorennetzwerk. So gesehen ist es also eigentlich egal wie man die Zeit runterzählt. Wenn mans mit JS macht filtert man halt noch nen paar User raus die JS generell deaktiviert haben.

    Zu deinem Code hab ich auch noch ne kleine Anmerkung.
    Du sollstest die Session nach Benutzung wieder löschen.
    Warum?
    Du frägst ja ab ob $_SESSION[betteldelay] gesetzt ist mit isset()
    Wenn ein User jetzt ein zweites mal auf die Seite kommt ist die Session immer noch gesetzt vom letzten mal. Der User könnte also gleich die zweite Seite aufrufen und würde vergütet (sofern er nicht mehr im Bettelreload ist)

    Also einfach noch zwischen: if ($delaycheck) {
    und } else {
    irgendwo bei bilanz_neu ('-',$bettelsumme,'Betteln');
    ein unset($_SESSION[betteldelay]) einfügen.
    Loseschleuder.de

    Jede Stunde mehrfach bis zu 100.000 Lose geschenkt!
    Keine extra Anmeldung nötig! Klamm ID genügt! -> Auszahlung ab 100.000 Losen

  6. #6
    Erfahrener Benutzer Avatar von h-m
    Registriert seit
    02.09.2006
    Beiträge
    115
    cool, vielen Dank für die Infos. Ich habe den Code der betteln_verg.php nochmal angepasst und das unset() eingefügt ... und bilanz_neu rausgeschmissen.

    Die JavaScript-Abhängigkeit entferne ich möglicherweise in ein paar Tagen, so dass man die Wahl hat zwischen JS- und nicht-JS-Version.

    Freundliche Grüße,
    hm

  7. #7
    Erfahrener Benutzer
    Registriert seit
    05.07.2006
    Beiträge
    134
    Stop! die bilanz_neu soll nicht raus! nur das unset soll in dieser Gegend rein!
    Da hast du mich woll falsch verstanden.
    Loseschleuder.de

    Jede Stunde mehrfach bis zu 100.000 Lose geschenkt!
    Keine extra Anmeldung nötig! Klamm ID genügt! -> Auszahlung ab 100.000 Losen

  8. #8
    Erfahrener Benutzer Avatar von h-m
    Registriert seit
    02.09.2006
    Beiträge
    115
    danke für den hinweis, ist schon korrekt so, denn "bilanz_neu" ist nicht standardmäßig im VMS sondern ein befehl von einem addon.
    gruß, hm

  9. #9
    Erfahrener Benutzer Avatar von didith1207
    Registriert seit
    17.09.2006
    Beiträge
    1.580
    Tolles teil danke

  10. #10
    Erfahrener Benutzer Avatar von halk
    Registriert seit
    15.11.2006
    Beiträge
    559
    Hallo


    Ich habe dies mal eingesetzt aber irgenwie klappt dies bei mir net,denn es kommt immer Fehler bei Bettel-Vergütung! Vergütung ist nicht erfolgt.

    Woran kann dies liegen ??



    Mfg halk
    Mfg Halk


Seite 1 von 5 123 ... LetzteLetzte

Ähnliche Themen

  1. Bettelseiten Liste + Infos
    Von aukweb im Forum Talk, talk, talk...
    Antworten: 3
    Letzter Beitrag: 24.04.2015, 12:21
  2. Bettelseiten Addons
    Von Satimania im Forum Scripte
    Antworten: 5
    Letzter Beitrag: 25.07.2013, 08:26
  3. Script flut auf den Bettelseiten
    Von Warlord im Forum Talk, talk, talk...
    Antworten: 12
    Letzter Beitrag: 21.02.2009, 12:50
  4. Bettelseiten - Besuchertausch!
    Von Bonian im Forum [HD] Grafik, Server & Sonstiges
    Antworten: 10
    Letzter Beitrag: 25.02.2008, 18:36
  5. [S] Bettelseiten
    Von dude32 im Forum Ref & Werberhandel
    Antworten: 6
    Letzter Beitrag: 18.12.2007, 16:16

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •