Seite 1 von 1

Usern erlauben ihren Account zu löschen?

Verfasst: 25.02.2003 17:09
von Jason
Hi,
ich suche einen Mod der es den usern erlaubt ihren eigenen Account zu löschen.Ich habe etwas dazu auf phpbbhacks.com gefunden: http://www.phpbbhacks.com/forums/viewto ... 3460#33460 das funktioniert aber wenn jemand die Checkbox anklickt und im eingabefeld steht noch NO bekommt man nur ne weisse Seite und nicht wie es sein sollte ne Fehlermeldung.Hat jemand ne idee wie man das beheben kann oder wo ich eine funktionierende Version von diesem Mod finden kann?

Ich hatte schon auf phpbbhacks.com gepostet aber dort antwortet mir niemand :(

Grüße Jason

Verfasst: 25.02.2003 22:58
von Jason
Keiner ne idee warum die leere Seite kommt?Wenn "Yes" eingegeben wurde kommt doch auch die Meldung "Your account deleted." :-?

Jason

Verfasst: 26.02.2003 14:22
von Acid
Link zu Deinem Board (will nur ma den Hack testen) ?

Verfasst: 26.02.2003 15:19
von Jason
Mein Board läuft bisher nur auf meinem PC aber du kannst es dir hier ansehen: http://www.theministryoftruth.org/forum/

Grüße Jason

Verfasst: 27.02.2003 11:52
von Acid
In der profile.php am Ende nach (auf die beiden Endklammern achten)..

Code: Alles auswählen

            message_die(GENERAL_MESSAGE, "Your account deleted."); 
         } 
      }
..folgendes einfügen..

Code: Alles auswählen

else
{
	$message = $lang['Profile_updated'] . '<br /><br />' . sprintf($lang['Click_return_index'],  '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
	message_die(GENERAL_MESSAGE, $message);
}

Verfasst: 25.06.2003 02:14
von Thoman
könnte man den mod auch so umbauen das man anstatt yes einzutippen auch eine schaltfläche drücken kann ?

Code: Alles auswählen

Open: 

templates/xxx/profile_add_body.tpl 

Find: 

Code: 
      <input type="password" class="post" style="width: 200px" name="password_confirm" size="25" maxlength="100" value="{PASSWORD_CONFIRM}" /> 
     </td> 
   </tr> 

After add: 

Code: 
<!-- BEGIN deletemerow --> 
   <tr> 
     <td class="row1"><span class="gen">{deletemerow.L_DELETE_ME}: </span><br /> 
      <span class="gensmall">{deletemerow.L_DELETE_ME_INFO}</span></td> 
     <td class="row2">{deletemerow.S_DELETE_ME}</td> 
   </tr> 
<!-- END deletemerow --> 


Open: 

profile.php 

Find: 

Code: 
   $mode = ( isset($HTTP_GET_VARS['mode']) ) ? $HTTP_GET_VARS['mode'] : $HTTP_POST_VARS['mode']; 


After add: 
Code: 

   if( isset($HTTP_GET_VARS['deleteme']) || isset($HTTP_POST_VARS['deleteme']) ) 
   { 
   $mode = 'deleteme'; 
   } 
   if ( $mode == "editprofile" ) 
   { 
      $template->assign_block_vars("deletemerow", array( 
      "L_DELETE_ME" => "Delete Your Account", 
      "L_DELETE_ME_INFO" => "Check the box and type YES (all capital letters) in the other box.  This can not be undone!", 
      "S_DELETE_ME" => '<input type="checkbox" name="deleteme">&&<input type="text" size="3" maxlength="3" name="deleteme_confirm" value="NO">') 
   ); 
   } 


Find: 

Code: 
   else if ( $mode == 'email' ) 
   { 
      include($phpbb_root_path . 'includes/usercp_email.'.$phpEx); 
      exit; 

After add: 

Code: 
   }   else if( $mode == "deleteme" ) 
   { 
      $clear_confirm = ( isset($HTTP_POST_VARS['deleteme_confirm']) ) ? $HTTP_POST_VARS['deleteme_confirm'] : $HTTP_GET_VARS['deleteme_confirm']; 
      if ($clear_confirm == 'YES') 
      { 
         $sql = "SELECT g.group_id 
         FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g 
         WHERE ug.user_id = " . $userdata['user_id'] . " 
         AND g.group_id = ug.group_id 
         AND g.group_single_user = 1"; 
         if( !$result = $db->sql_query($sql) ) 
         { 
            message_die(GENERAL_ERROR, "Couldn't obtain group information for this user", "", __LINE__, __FILE__, $sql); 
         } 

         $row = $db->sql_fetchrow($result); 

         $sql = "SELECT user_id FROM " . USERS_TABLE . " WHERE user_id = '" . $user_id . "'"; 
         if ( !($result = $db->sql_query($sql)) ) 
         { 
            message_die(GENERAL_ERROR, 'Could not get user information', '', __LINE, __FILE__, $sql); 
         } 
              
         $xrow = $db->sql_fetchrow($xresult); 

         $sql = "UPDATE " . POSTS_TABLE . " 
         SET poster_id = '-1', post_username = '" .  $userdata['username'] . "' 
         WHERE poster_id = " . $userdata['user_id']; 
         if( $result = $db->sql_query($sql) ) 
         { 
            $sql = "UPDATE " . TOPICS_TABLE . " 
            SET topic_poster = '-1' 
            WHERE topic_poster = " . $userdata['user_id']; 
            if( $result = $db->sql_query($sql) ) 
            { 
               $sql = "DELETE FROM " . USERS_TABLE . " 
               WHERE user_id = " . $userdata['user_id']; 
               if( $result = $db->sql_query($sql) ) 
               { 
                  $sql = "DELETE FROM " . USER_GROUP_TABLE . " 
                  WHERE user_id = " . $userdata['user_id']; 
                  if( $result = $db->sql_query($sql) ) 
                  { 
                     $sql = "DELETE FROM " . GROUPS_TABLE . " 
                     WHERE group_id = " . $row['group_id']; 
                     if( $result = $db->sql_query($sql) ) 
                     { 
                        $sql = "DELETE FROM " . TOPICS_WATCH_TABLE . " 
                        WHERE user_id = " . $userdata['user_id']; 
                        $result = @$db->sql_query($sql); 
                     } 
                     else 
                     { 
                        $error = TRUE; 
                     } 
                  } 
                  else 
                  { 
                     $error = TRUE; 
                  } 
               } 
               else 
               { 
                  $error = TRUE; 
               } 
            } 
            else 
            { 
               $error = TRUE; 
            } 
         } 
         else 
         { 
            $error = TRUE; 
         } 

         if( $error == TRUE ) 
         { 
            message_die(GENERAL_MESSAGE, "Error deleting your account."); 
         } 
         else 
         { 
            message_die(GENERAL_MESSAGE, "Your account deleted."); 
         } 
      } 
      else 
      { 
         $message = $lang['Profile_updated'] . '<br /><br />' . sprintf($lang['Click_return_index'],  '<a href="' . append_sid("index.$phpEx") . '">', '</a>'); 
         message_die(GENERAL_MESSAGE, $message); 
      }

Verfasst: 25.06.2003 10:50
von Acid
Meinst du einen Ja/Nein Button... es ist ja aus Sicherheitsgründen auf diese Weise geregelt (Checkbox + Input zum Eintragen von "Yes"), damit die User nicht aus Versehen auf "Ja" klicken.

Verfasst: 25.06.2003 12:25
von Thoman
ja das meinte ich ein button,

man könnte ja ein button einbauen bloß wenn sie dann ausversehen ja drücken sollten dann müsste nochmal eine sicherheitsabfrage kommen ob sie sich wirklich sicher sind. :)

Verfasst: 02.07.2003 13:19
von Acid

Verfasst: 07.09.2003 20:03
von Alejnu
hab's nach der version von acid gemacht, funktioniert nur leider nicht. es wird zwar alles richtig angezeigt aber der user wird trotzdem nicht gelöscht. da steht dann, dass das profil aktualisiert wurde und man landet wieder auf der startseite und ist noch eingeloggt.