SwissNetWorX-Blog


Inaktivensuche für das VMSone
Beschreibung
Suchen sie nach Inaktiven Usern.
Versenden sie automatisch an alle user
die ab eingestelltem datum nicht mehr aktive sind eine Infomail.
Löschen sie Inaktive user um ihre DB zu entlasten.
Beim Löschen wird der User gelöscht und in die blackliste gesteckt.
Zusätzlich erhält er eine Informationsemail.

Anleitung
1. Öffne die root/adminforce/content/startseite.php
2. füge nach dem letzten zeichen folgendes ein.

  1. head("Inaktiven-Suche");
  2. echo'<form action="" method="post">
  3.         Zeigt alle User an, die nach einer gegebenen Zeit nicht mehr online waren.<br><br>
  4.                 <table width="100%" valign="top" align="center" border="0" cellpadding="1" cellspacing="1" bgcolor="">
  5.                         <tr bgcolor="#f5f5f5">
  6.                                 <td align="left"><b>Tag (<i>z.B. 04</i>)<br>Monat (<i>z.B. 06</i>)<br>Jahr (<i>z.B. 2000</i>):</b></td>
  7.                                 <td align="left">
  8.                                         <input type="Text" name="tag" value="01"><br>
  9.                                         <input type="Text" name="monat" value="01"><br>
  10.                                         <input type="Text" name="jahr" value="2008">
  11.                                 </td>
  12.                         </tr>
  13.                         <tr bgcolor="#f5f5f5">
  14.                                 <td align="left"><b><br>
  15.                                         User die ab eingabe datum Inaktive sind.<br>  
  16.                                         <font color="#800000">Es gibt keine Sicherheitsabfrage</font><br>
  17.                                         Für Löschung "1" eintippen.<br>
  18.                                         Für eine Erinnerungs-Email eine "2" eintippen</b>
  19.                                 </td>
  20.                                 <td align="left">&nbsp;<input type="Text" name="inaktive" value="0"></td>
  21.                         </tr>
  22.                         <tr>
  23.                                 <td align="center" colspan="2"><br><input type="Submit" name="anzeigen" value="anzeigen !"></td>
  24.                         </tr>
  25.                 </table>
  26.         </form>
  27. ';
  28.         // Zeit angeben
  29.         $timestamp = mktime(0,0,0,$_POST['monat'],$_POST['tag'],$_POST['jahr']);
  30.         $anzahl = 0;
  31.  
  32. if (!isset($_POST['anzeigen'])) $_POST['anzeigen'] = '';
  33.  
  34. if ($_POST['anzeigen'] == 'anzeigen !')
  35. {
  36. $result=mysql_query("SELECT t1.emailadresse AS email,t1.uid,t2.kontostand,t3.nickname
  37.                                            FROM ".$db_prefix."_emaildaten AS t1, vms_kontodaten AS t2,vms_userdaten AS t3
  38.                                            WHERE t1.uid = t2.uid AND t2.uid = t3.uid AND last_active < ".$timestamp."");
  39.         $konto='0';
  40. while($row=mysql_fetch_array($result))
  41. {
  42.         $konto= $konto+$row['kontostand'];
  43.         $anzahl++;
  44. echo "<table width=100%><tr>
  45.         <td width=50%>".$row['email'].";</td>
  46.         <td width=20%>".$row['uid']."</td>
  47.         <td width=30%>".$row['nickname']."</td>
  48.         <td width=30%>".$row['kontostand']."</td>
  49.         </tr></table>
  50.         ";
  51.         if ($_POST['inaktive'] == '1') {
  52.                 $sperrzeit = ( time() + ( 86400 * 365 ) );
  53.                 db_query ('INSERT INTO '.$db_prefix.'_userblacklist (uid,zeit) VALUES ('.$row['uid'].','.$sperrzeit.')');
  54.                 db_query ('DELETE FROM '.$db_prefix.'_kontodaten WHERE uid = '.$row['uid']);
  55.                 db_query ('DELETE FROM '.$db_prefix.'_emaildaten WHERE uid = '.$row['uid']);
  56.                 db_query ('DELETE FROM '.$db_prefix.'_userdaten WHERE uid = '.$row['uid']);
  57.                 db_query ('DELETE FROM '.$db_prefix.'_werberdaten WHERE uid = '.$row['uid']);
  58.                 db_query ('UPDATE '.$db_prefix.'_werberdaten SET werber = 0 WHERE werber = '.$row['uid']);
  59.                 echo '<font color="#00d000">User Gelöscht</font><br><br><br>';
  60.                 $infotext= ' Hallo '.$row['nickname'].'
  61.                                         Leider bist du seit Geraumer Zeit nicht mehr auf '.$seitenname.' Online gewesen.
  62.                                         Leider hast du auch nicht auf emails reagiert,
  63.                                         um unsere Datenbank zu schonen räumen wir jeden monat einmal auf und löschen
  64.                                         user die seit über einem halben jahr inaktive sind.
  65.                                         Falls du wieder bei uns aktive sein möchtest melde dich einfach beim admin und
  66.                                         deine uid wird wieder freigegeben zur anmeldung.
  67.                                         MFG
  68.                                         Admin ';
  69.        
  70.                 usermail ($row['email'], 'Inaktiver Account', $infotext, '"'.$seitenname.'" <'.$betreibermail.'>');
  71.                
  72.                 echo '<font color="#00d000">User Informiert</font><br><br><br>';
  73.        
  74.        
  75.         }
  76.         if ($_POST['inaktive'] == '2') {
  77.        
  78.                 $infotext= ' Hallo '.$row['nickname'].'
  79.                                         Leider bist du seit Geraumer Zeit nicht mehr auf '.$seitenname.' Online gewesen.
  80.                                         Um nicht vom system wegen inaktivität gelöscht zu werden,
  81.                                         bitten wir dich das du dich kurz einmal auf '.$seitenname.' anmeldest
  82.                                         und wenn du lust hast kannst du ja in zukunft auch noch aktive teilnehmen.
  83.                                
  84.                                         MFG
  85.                                         Admin ';
  86.        
  87.                 usermail ($row['email'], 'Inaktiver Account', $infotext, '"'.$seitenname.'" <'.$betreibermail.'>');
  88.                
  89.                 echo '<font color="#00d000">User Informiert</font><br><br><br>';
  90.         }
  91. }
  92.  
  93.         echo "<br>";
  94.         echo "<b>".$anzahl." User gefunden</b>";
  95.         echo "<br>";
  96.         echo "Gesammtguthaben der Inaktiven User:".$konto;
  97. }
  98.  
  99.  foot();

3. Bei Interesse kannst du den emailtext noch anpassen diesen findest du oben so vor:
  1.                         Hallo ".$row["nickname"]."
  2.                                                                 Leider bist du seit Geraumer Zeit nicht mehr auf '.$seitenname.' Online gewesen.
  3.                                                                 Um nicht vom system wegen inaktivität gelöscht zu werden,
  4.                                                                 bitten wir dich das du dich kurz einmal auf '.$seitenname.' anmeldest
  5.                                                                 und wenn du lust hast kannst du ja in zukunft auch noch aktive teilnehmen.
  6.                                                                
  7.                                                                 MFG
  8.                                                                 Admin ";
Eintrag vom 02 May 2010 zur Kategorie Programmierung