Ergebnis 1 bis 7 von 7

Thema: maximale Anzahl an Paidmails empfangen

  1. #1
    Benutzer
    Registriert seit
    17.04.2008
    Beiträge
    42

    maximale Anzahl an Paidmails empfangen

    Eine Userin meiner Seite fragte mich mal, ob ich nicht den Versand an ihre eMail-Adresse beschränken könne, da ihr manchmal das Postfach zu voll werde.

    Da habe ich mir Gedanken gemacht, wie man das Umsetzen kann, ausser natürlich weniger Paidmails zu versenden.

    Und das ist dabei rausgekommen!

    Ausprobieren konnte ich es bisher noch nicht. Arbeite auch gerade noch an einer einfacheren Variante.

    Es gibt keine Garantie auf die korrekte Funktion und es ist sicherer diese Schnippsel auf einem Testsystem auszuprobieren, bevor es in ein laufendes eingebunden wird.

    Für Fehlerhinweise oder Tipps bin ich sehr dankbar.

    Lieben Gruß
    Ralf

    --------------------------
    --------------------------

    Eine Neue Spalte in der Tabelle anlegen für die Maximalanzahl an Paidmails.
    Code:
    1. SQL ausführen: 
    ALTER TABLE `vms_userdaten` 
    ADD `max_pm` INT( 2 ) NOT NULL 
    DEFAULT '50' AFTER `max_forcedt` ;
    Auswahlmöglichkeit für die User schaffen, wie viele Mails sie haben wollen.
    Code:
     2. in der content/konto/userprofil.php nach
    ---
    
        db_query("UPDATE ".$db_prefix."_emaildaten SET freigabe_fuer = ".$mailstatus.", emailadresse = '".$_POST['emailadresse']."', qmails='".$_POST['qmails']."' WHERE uid=".$_SESSION['uid']."");
        
    Folgendes einfügen:
    
        db_query("UPDATE ".$db_prefix."_userdaten SET max_pm = '".$_POST['max_pm']."' WHERE uid=".$_SESSION['uid']."");
    Code:
    3. und nach
    ---
        <td>Paidmails*:</td>
        <td>
        <select name="paidmails">
        <option value="1" <? if ($paidmails == 1) echo 'selected';?>>Ja</option>
        <option value="0" <? if ($paidmails == 0) echo 'selected';?>>Nein</option>
        </select>
        </td>
       </tr>
    
    Folgendes einfügen:
    <?
    @$maxpm = mysql_fetch_array(db_query("SELECT max_pm FROM ".$db_prefix."_userdaten WHERE uid=".$_SESSION['uid']." LIMIT 1"));
    @$max_pm = $maxpm['max_pm'];
    ?>
        <td>max. Paidmails*:</td>
        <td>
        <select name="max_pm">
        <option value="0" <? if ($max_pm == 0) echo 'selected';?>>0</option>
        <option value="5" <? if ($max_pm == 5) echo 'selected';?>>5</option>
        <option value="10" <? if ($max_pm == 10) echo 'selected';?>>10</option>
        <option value="15" <? if ($max_pm == 15) echo 'selected';?>>15</option>
        <option value="20" <? if ($max_pm == 20) echo 'selected';?>>20</option>
        <option value="25" <? if ($max_pm == 25) echo 'selected';?>>25</option>
        <option value="50" <? if ($max_pm == 50) echo 'selected';?>>50</option>
        <option value="100" <? if ($max_pm == 100) echo 'selected';?>>100</option>
        </select>
        </td>
       </tr>
    Die Maximalpaidmailanzahl (tolles Wort ) runterrechnen und wieder rauf.
    Code:
    4. Suche in der Datei adminforce/content/werbesystem/paidmail_versenden.php:
    ---
    
        $empfaenger =  db_query("SELECT * FROM ".$db_prefix."_emaildaten WHERE freigabe_fuer = '3' or freigabe_fuer = '2'");
    
    und ersetze es durch:
           
        $empfaenger =  db_query("SELECT e. * FROM ".$db_prefix."_emaildaten AS e LEFT JOIN ".$db_prefix."_userdaten AS u ON e.uid = u.uid WHERE ( e.freigabe_fuer = '3' OR e.freigabe_fuer = '2' )  AND u.max_pm > 0");
    Code:
    5. Suche in der Datei pcheck.php;
    ---
        buchungsliste (create_code(14),$mail['verdienst'],'Paidmailverdienst',$mail['uid']);
    
    füge danach folgendes ein:
    
        db_query("UPDATE ".$db_prefix."_userdaten where uid=".$versendet['uid']." SET max_pm=max_pm+1 LIMIT 1");
    Code:
    6. In der adminforce/content/werbesystem/paidmail_versenden.php nach:
    ---
    
            db_query("INSERT INTO ".$db_prefix."_paidmails_empfaenger (uid,gueltig,tan,status,aufendhalt) VALUES ('".$versendet['uid']."','".$bis."','".$_GET['tan']."','0','".$daten['aufendhalt']."')");
    
    folgendes einsetzen:
    
            db_query("UPDATE ".$db_prefix."_userdaten where uid=".$versendet['uid']." SET max_pm=max_pm-1 LIMIT 1");
    Nicht geklickte Mails müssen ja auch wieder rückgerechnet werden.
    Code:
    7. Suche in der Datei adminforce/content/werbesystem/paidmail_hist.php:
    ---
        db_query("INSERT INTO ".$db_prefix."_stats (menge,bestaedigt) VALUES ($abschluss[menge], $abschluss[bestaedigt])");
    
    füge danach folgendes ein:
    
        $pm_korrigieren = db_query("SELECT uid FROM ".$db_prefix."_paidmails_empfaenger WHERE tan='".$_GET['tan']."'");
        while ($genug = mysql_fetch_array($pm_korrigieren)) {
            db_query("UPDATE ".$db_prefix."_userdaten where uid=".$genug['uid']." SET max_pm=max_pm+1 LIMIT 1");
                  }

  2. #2
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    1. ich seh da nirgendswo den Code, der von der gesamtzahl was abzieht?

    2. gibts sowas in der Art nicht schon, meine, dass das einige Seiten haben
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  3. #3
    Erfahrener Benutzer Avatar von Hardy
    Registriert seit
    24.01.2007
    Beiträge
    2.235
    Zitat Zitat von jpwfour Beitrag anzeigen
    2. gibts sowas in der Art nicht schon, meine, dass das einige Seiten haben
    soweit ich weis nur in verbindung mit dem stg_mailer
    Ich nutze den Firefox nur um Opera Google Chrome runterzuladen

  4. #4
    Erfahrener Benutzer Avatar von eRaaaa
    Registriert seit
    06.06.2007
    Beiträge
    702
    also einstellen kann mans vllt, aber wie jpwfour scho sagte, irgnwedwie musste das noch beim versenden beachten ?! musst ja das limit da noch irgnediwe einbauen...

    adminforce/content/werbesystem/paidmail_versenden.php <-- gibts bei mir nicht (std vms), für welches paidmail addon haste das denn angepasst?

    irgendwie versteh ich das inkrementieren von max_pm in der pcheck auch nicht? ;/

  5. #5
    Benutzer
    Registriert seit
    17.04.2008
    Beiträge
    42
    Da war noch was, genau. Hatte ich übersehen. Danke jpwfour.

    Code:
    In der adminforce/content/werbesystem/paidmail_versenden.php nach:
    
            db_query("INSERT INTO ".$db_prefix."_paidmails_empfaenger (uid,gueltig,tan,status,aufendhalt) VALUES ('".$versendet['uid']."','".$bis."','".$_GET['tan']."','0','".$daten['aufendhalt']."')");
    
    folgendes einsetzen:
    
            db_query("UPDATE ".$db_prefix."_userdaten where uid=".$versendet['uid']." SET max_pm=max_pm-1 LIMIT 1");
    @jpwfour
    ja, gibt es, aber nicht für den standard-mail-versand aus den Interface-Mail-Übersichten.

    @eRaaaa
    Sobald ein User die Mail korrekt bestätigt hat, wird der Wert max_pm wieder um 1 hochgesetzt, damit für ihn wieder ein Platz für eine neue Mail wird. Sonst bestätigen die User 50 Mails und danach kommen keine Mehr, weil der max_pm-Wert bei 0 liegt.

  6. #6
    Erfahrener Benutzer Avatar von eRaaaa
    Registriert seit
    06.06.2007
    Beiträge
    702
    ahhh, ja ne, ich hab jetzt erst dein system gerafft (ohne deine letzte änderung hätte es nämlich auch kein sinn gemacht)

    allerdings könntest du dir die eine änderung/db abfrage sparen:

    PHP-Code:
    @$maxpm mysql_fetch_array(db_query("SELECT max_pm FROM ".$db_prefix."_userdaten WHERE uid=".$_SESSION['uid']." LIMIT 1"));
    @
    $max_pm $maxpm['max_pm']; 
    folgendes:
    PHP-Code:
    $max_pm $info['max_pm']; 
    dürfte völlig reichen...da die userdaten zuvor schon abgefragt werden(alle- zumindestens im std vms)

  7. #7
    Neuer Benutzer
    Registriert seit
    11.11.2008
    Beiträge
    10
    es ging am anfang darum:
    es wird zwar festgestellt, dass nur noch ein User Paidmails empfangen sollte, allerdings werden die Paidmails trotzdem an den User geschickt, dessen "max_pm" schon <=0 ist.
    Fehler gefunden und hier die Erklärung dazu:
    in der paidmail_versenden.php muss man die folgende Zeile ersetzen:

    PHP-Code:
    $senden db_query("SELECT * FROM ".$db_prefix."_emaildaten WHERE freigabe_fuer = '3' or freigabe_fuer = '2' ORDER BY RAND() LIMIT ".$daten['menge'].""); 
    durch

    PHP-Code:
    $senden db_query("SELECT e. * FROM ".$db_prefix."_emaildaten AS e LEFT JOIN ".$db_prefix."_userdaten AS u ON e.uid = u.uid WHERE ( e.freigabe_fuer = '3' OR e.freigabe_fuer = '2' )  AND u.max_pm > 0 ORDER BY RAND() LIMIT ".$daten['menge'].""); 
    dadurch wird dann auch die Paidmail nur an die User geschickt, die wirklich >0 Paidmails noch empfangen können

Ähnliche Themen

  1. Forcedbanner Anzahl
    Von christopher93 im Forum Support zum VMSone
    Antworten: 16
    Letzter Beitrag: 22.08.2009, 12:16
  2. Maximale Auszahlung pro Tag
    Von blacky123 im Forum Support zu Addons & Erweiterungen
    Antworten: 6
    Letzter Beitrag: 22.02.2009, 20:46
  3. (S)Addon maximale Auszahlung VMS 1.2.3
    Von Klammgate im Forum Scripte
    Antworten: 1
    Letzter Beitrag: 21.01.2009, 18:33
  4. Faxe online empfangen
    Von Gremlin im Forum Talk, talk, talk...
    Antworten: 2
    Letzter Beitrag: 12.11.2008, 00:52
  5. maximale Ralleyvergütung
    Von Frejia im Forum Support zum VMSone
    Antworten: 3
    Letzter Beitrag: 13.02.2008, 21:46

Berechtigungen

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