Usern erlauben ihren Account zu löschen?

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Jason

Usern erlauben ihren Account zu löschen?

Beitrag 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
Jason

Beitrag von Jason »

Keiner ne idee warum die leere Seite kommt?Wenn "Yes" eingegeben wurde kommt doch auch die Meldung "Your account deleted." :-?

Jason
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Link zu Deinem Board (will nur ma den Hack testen) ?
Jason

Beitrag 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
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag 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);
}
Thoman
Mitglied
Beiträge: 303
Registriert: 26.12.2002 16:21
Kontaktdaten:

Beitrag 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); 
      }
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag 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.
Thoman
Mitglied
Beiträge: 303
Registriert: 26.12.2002 16:21
Kontaktdaten:

Beitrag 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. :)
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Alejnu
Mitglied
Beiträge: 37
Registriert: 04.03.2003 08:05
Wohnort: Berlin
Kontaktdaten:

Beitrag 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.
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“