Seite 1 von 6 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 53

Thema: VMS1 Bettelreferrer kontrollieren oder referrer sperren

  1. #1
    Benutzer
    Registriert seit
    08.07.2006
    Beiträge
    81

    VMS1 Bettelreferrer kontrollieren oder referrer sperren

    Als erstes brauchen wir ein Tabelle in der datenbank:
    Code:
    CREATE TABLE vms_bettelreferrercheck (
      url_md5 varchar(32) NOT NULL default '',
      url varchar(255) NOT NULL default '',
      hits int(10) NOT NULL default '0',
      an_aus tinyint(2) NOT NULL default '0',
      PRIMARY KEY  (url_md5),
      KEY hits (hits),
      KEY url (url)
    ) TYPE=MyISAM;

    dann müssen wir die bettelseite abändern.( bitte vorher eine Kopie von der bettelseite machen falls man die alte Bettelseite wieder nutzen will).

    zum abändern /content/betteln.php öffnen und den gesamten inhalt ersetzen mit folgenen inhalt:

    PHP-Code:
    <?

    // SecVMS change begin
    $_GET['ref'] = (int)$_GET['ref'];

    $bettelreferrer            = $_SERVER["HTTP_REFERER"];
    $bettelreferrer_array    = parse_url($bettelreferrer);
    $bettelhost                = $bettelreferrer_array["host"];

    $update_query = db_query(sprintf("update vms_bettelreferrercheck set hits=hits+1 where url_md5='%s'"
    , addslashes(md5($bettelhost))
    ));
    if ( mysql_affected_rows($update_query) == 0 ) {
        db_query(sprintf("INSERT INTO vms_bettelreferrercheck (url_md5,url,hits,an_aus) VALUES ('%s','%s','1','0')",
        addslashes(md5($bettelhost)),
        addslashes($bettelhost)
        ));
    }
    // SecVMS change end

    $bettelrefdaten    = mysql_fetch_array(db_query(sprintf("SELECT * FROM vms_bettelreferrercheck where url= '%s'"
    , $bettelhost
    )));

    if ($bettelrefdaten['an_aus'] == '0') {

                $reloadcheck = db_query("SELECT * FROM ".$db_prefix."_reloads WHERE ip = '".$ip."' and tan = 'bettelaufruf' and bis >= '".time()."'");
                if (!mysql_num_rows($reloadcheck)) {
                $minimum        = $pageconfig['min_betteln'];
                $maximum        = $pageconfig['max_betteln'];
                srand((double)microtime()*1000000);
                $bettelsumme    = rand($minimum*100,$maximum*100)/100;
                // Reload setzen und Umsätze schreiben
                $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." WHERE uid = '".$_GET['ref']."'");
                bonuslose ('+',$bettelsumme,$_GET['ref']);
                $betteltext = '<b>Du hast für den User '.$_GET['ref'].' gerade '.$bettelsumme.' Bonuslose erbettelt!</b>';
                } else {
                $reloadcheck = mysql_fetch_array($reloadcheck);
                $betteltext = '<b><font color="#FF0000">Du bist noch für '. round((($reloadcheck['bis'] - time())/60),0) .' Minuten fürs Betteln gesperrt</font></b>';
                }
    } else {
    $betteltext = '<b><font color="#FF0000">Kein Referrer übergeben oder Eigenklicks oder Referrer gesperrt</font></b>';
    }
                ?>
                <?head("Betteln auf OOOOHPS-LOSE");?>
                Verdiene auch Du mit!<br>
                Melde Dich bei <?=$seitenname;?> an und bewirbe Deinen persönlichen Bettellink, so
                verdienst Du deine <?=$waehrung;?> fast wie im Schlaf!<br>
                <br>
                <div align="center"><?=$betteltext;?></div>
                <?foot();?>
                
                <?head("Werbung dieser Seite");
                $filename = 'lib/texte/bettelwerbung.txt';
                $fp = fopen ($filename, "r");
                $inhalt = fread ($fp, filesize ($filename));
                fclose ($fp);
                $inhalt = str_replace('\\', '', $inhalt);
                echo nl2br($inhalt);
                foot();?>
    dann die betteln.php wieder hochladen. jetzt wüssten schon die referer geloggt werden.

    Jetzt zum admin bereich dazu müssen wir eine seite basteln die bettelreferrercheck.php heist.

    hier diesen inhalt reinsetzen:

    PHP-Code:
    <?
    if($_POST["update"]){
    db_query(sprintf("UPDATE vms_bettelreferrercheck SET an_aus = '%s' where url_md5='%s'"
    , $_POST['an_aus']
    , $_POST['url_md5']));
    }
    if($_POST["delete"]){
    db_query(sprintf("DELETE FROM vms_bettelreferrercheck where url_md5='%s'"
    , $_POST['url_md5']
    ));
    echo $_POST['url_md5'];

    db_query("OPTIMIZE TABLE vms_bettelreferrercheck");
    }
    $bettelrefdaten    = mysql_fetch_array(db_query("SELECT * FROM vms_bettelreferrercheck"));

    head("Urls Sperren"); ?>
    <center><br>
    <font size="3"><b>Url Sperren</font>
    <table border="1">
    <tr><form action="" method="POST">
        <td><b>Url MD5:
        </td>
        <td align="center"><input type="text" name="url_md5" value="">
        </td>
    </tr>
    <tr>
        <td><b>an_aus:
        </td>
        <td align="center">
        <select name="an_aus" size="1">
            <option value="" SELECTED>wählen</option>
            <option value="0">An</option>
            <option value="1">Aus</option>
        </select>
        </td>
    </tr>
    <tr>
        <td align="center" colspan="2"><input type="submit" name="update" value="Eintragen">
        </td>
    </tr>
    </form></table>
    <br>
    <? foot();?>

    <? head("Urls löschen"); ?>
    <center><br>
    <font size="3"><b>Url Löschen</font>
    <table border="1">
    <tr><form action="" method="POST">
        <td><b>URL MD5:
        </td>
        <td align="center"><input type="text" name="url_md5" value="">
        </td>
    </tr>
    <tr>
        <td align="center" colspan="2"><input type="submit" name="delete" value="Löschen">
        </td>
    </tr>
    </form></table>
    <br>
    <? foot();?>
    <?head("Werbung die eingetragen ist");?>
    <table align="center" border="0" cellpadding="3" cellspacing="1"  bgcolor="#FFFFC0" width='450'>
       <tr bgcolor="#FFFFC0">
         <td align="center"><b>URL MD5</b></td>
         <td align="center"><b>URL</b></td>
         <td align="center"><b>HITS</b></td> 
         <td align="center"><b>An/Aus</b></td>   
       </tr>
    <?
    $query = db_query("SELECT * FROM vms_bettelreferrercheck ORDER by hits DESC");
    while ($row = mysql_fetch_array($query)) {    
    ?>
       <tr bgcolor="#FFFFC0">
        <td align="center"><? echo $row["url_md5"];?></td>
        <td align="center"><a href="http://<? echo $row["url"];?>/" target="_blank"><? echo $row["url"];?></a></td>
        <td align="center"><? echo number_format($row["hits"],0,",",".");?></td>
        <td align="center"><? echo $row["an_aus"];?></td>
      </tr>  
    <?
    }
    ?>
    </table>
    <? foot();?>
    jetzt haben wir unsere bettelreferrercheck.php und laden die unter adminforce/content/ auf dem server.

    jetzt setzen wir noch einen link im adminmenue:

    Code:
    &raquo;&nbsp;<a href="?content=/bettelreferrercheck">Bettelcheck</a>


    dann sieht das so aus im adminbereich:



    jetzt kann man urls sperren 0 ist an und 1 ist aus. schaltet man eine url aus wird der bettelaufruf nicht mehr bezahlt und der user bekommt folgende meldung.

    Kein Referrer übergeben oder Eigenklicks oder Referrer gesperrt.

    Ist die url nicht gesperrt (0) bekommt der user ganz normal die vergütung.

    Alle refferurls sind anklickbar das man die seiten kontrollieren kann.

    Ich garantiere nicht das es bei jedem funktioniert der einbau und die nutzung ist auf eigene gefahr. Das Tool wurde von mir geproggt und ist schon seit tagen im einsatz und funktioniert bei mir ohne Fehler.

    Viel spass

  2. #2
    Pitti
    Gast
    Habe ein ähnliches, etwas umfangreicher im einsatz, kann es nur jedem empfehlen, der einen Bettelink auf seiner seite anbietet

  3. #3
    Erfahrener Benutzer Avatar von Bonian
    Registriert seit
    03.02.2007
    Beiträge
    164
    Hört sich sehr interessant und helfenswert an
    Kann man das aber noch so abändern, dass man z.B. eine bestimmte User-ID einibt und das Script einem dann zeig, durch welche Seiten der User eine Vergütung bekommen hat =)?

  4. #4
    Neuer Benutzer
    Registriert seit
    01.10.2006
    Beiträge
    13
    Leider funktioniert die betteln.php nicht ! Die seite bleibt schwarz. Im reload arbeitet sie aber , Zeigt an das ich im Reload bin. Die Seiten lassen sich auch nicht sperren oder freigeben nur löschen.

    Mfg

    Flenders49

  5. #5
    Erfahrener Benutzer Avatar von dude32
    Registriert seit
    27.07.2006
    Beiträge
    1.771
    habs mal auf meiner testseite ausprobiert, beim betteln verschwindet content und rechtes menü, gremlin und ich sind etwas ratlos

    vorallem weil beim reload der seite content und menü wieder da sind und
    du bist fürs betteln noch 59 min gesperrt
    www.scripte-box.de VMS,VMS2 und FWX

  6. #6
    Neuer Benutzer
    Registriert seit
    01.10.2006
    Beiträge
    13
    PHP-Code:
                // Reload setzen und Umsätze schreiben
                
    $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." WHERE uid = '".$_GET['ref']."'");
                
    kontobuchung ('+',$bettelsumme,$key);
                
    $betteltext '<b>Du hast für den User '.$_GET['ref'].' gerade '.$bettelsumme.' Bonuslose erbettelt!</b>';
                } else {
                
    $reloadcheck mysql_fetch_array($reloadcheck);
                
    $betteltext '<b><font color="#FF0000">Du bist noch für 'round((($reloadcheck['bis'] - time())/60),0) .' Minuten fürs Betteln gesperrt</font></b>';
                } 
    Ich habe den Fehler gefunden. Oben steht Bonuslose , bei mir muss aber kontobuchung ('+',$bettelsumme,$key); hin. Bonuslose hab ich nicht definiert

    Danke nochmal fürs gucken. Kannst ja ändern oben. Sonst klappt das prima.

  7. #7
    Erfahrener Benutzer Avatar von dude32
    Registriert seit
    27.07.2006
    Beiträge
    1.771
    war mal so frei die geänderte fassung ohne bonuslose zusammenzupacken und gremlin stellt es gerade in den downloadbereich rein
    www.scripte-box.de VMS,VMS2 und FWX

  8. #8
    Erfahrener Benutzer Avatar von Hardy
    Registriert seit
    24.01.2007
    Beiträge
    2.235
    Original von dude32
    war mal so frei die geänderte fassung ohne bonuslose zusammenzupacken und gremlin stellt es gerade in den downloadbereich rein
    kannst du mal kurz den link zu der test-bettel-seite schicken...
    Ich nutze den Firefox nur um Opera Google Chrome runterzuladen

  9. #9
    Benutzer
    Registriert seit
    29.09.2007
    Beiträge
    34
    hi

    das thema ist zwar schon etwas älter aber das macht ja nichts. das ganze ist nicht schlecht und funktioniert sogar. aber wenn man das ganze einbaut und hat in seinen admin eingestellt das der bettellink deaktiviert ist , dann kann man trotzdem betteln. wäre nicht schlecht wenn man das noch dazu reinnehmen könnte. also wenn man das betteln deaktiviert hat das es dem script auch so ist

    mfg
    missmarple

  10. #10
    Benutzer Avatar von meigl1337
    Registriert seit
    02.03.2007
    Beiträge
    78
    Hi, ist es auch möglich zu loggen von wem der Bettellink stammt?
    Sollte es möglich sein ist das ganze gleich als Auftrag von mir zu werten. Preis ist egal, hauptsache ich finde heraus von wem die seltsamen Links stammen.

    Edit: Kann mir jemand den oberen Code in die VMS1.2 bettel.php einbauen?

    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{
          $reloadcheck = db_query("SELECT bis FROM ".$db_prefix."_reloads_betteln WHERE ip = '".$ip."' and tan = 'bettelaufruf' and bis >= ".time()." LIMIT 1");

          if (!mysql_num_rows($reloadcheck)) {
             $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_betteln (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']."'");

             bilanz(1000,$bettelsumme);   
             $betteltext = '<b>Ein Mitglied ('.$_GET['ref'].') hat durch dich gerade <font color="#FF0000">'.$bettelsumme.' '.$waehrung.' </font>verdient!</b>';
         } else {
         $reloadcheck = mysql_fetch_array($reloadcheck);
         $betteltext = '<b>Du bist noch für '. round((($reloadcheck['bis'] - time())/60),0) .' Minuten gesperrt</b>';
         }
       }
    }
    ?>
    mfg
    __________________

Seite 1 von 6 123 ... LetzteLetzte

Ähnliche Themen

  1. Userseite Sperren ?
    Von Smoopie im Forum [HD] Programmieren
    Antworten: 1
    Letzter Beitrag: 18.02.2018, 18:37
  2. Keine referrer übertragen
    Von cesar im Forum Support zum VMSone
    Antworten: 6
    Letzter Beitrag: 21.02.2011, 21:28
  3. User für die SB sperren??
    Von schlachtherr im Forum Support zu Addons & Erweiterungen
    Antworten: 5
    Letzter Beitrag: 24.07.2010, 19:30
  4. PN-System VMS1.x (R4E) oder (R4R)
    Von olib32 im Forum Scripte
    Antworten: 2
    Letzter Beitrag: 25.09.2008, 14:19
  5. Antworten: 5
    Letzter Beitrag: 20.10.2007, 18:07

Berechtigungen

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