4images Forum & Community

4images Modifications / Modifikationen => Mods & Plugins (Releases & Support) => Topic started by: b.o.fan on March 16, 2005, 09:55:03 PM

Title: [Mod] User can delete his own account / User kann seinen Account löschen
Post by: b.o.fan on March 16, 2005, 09:55:03 PM
Hello, i found out how the user can delete the own account. This Mod was on the old board. The User i don´t no...
make a backup before edit the files:

files to edit:

./member.php
./template/<your language>/user_logininfo.html OR .templates/<your language>/member_editprofile.html


files to dreate:

./template/<your language>/member_deleteaccount.html


open member.php

find:
Code: [Select]
//-----------------------------------------------------
//--- Clickstream -------------------------------------
//-----------------------------------------------------

add before:
Code: [Select]
//-----------------------------------------------------
//--- Delete Account ----------------------------------
//-----------------------------------------------------
if ($action == "deleteaccount"){
  $passwort=$HTTP_POST_VARS[passwort];
  $progress=$HTTP_POST_VARS[progress];
  $user_id=$user_info['user_id'];
  $user_name=$user_info['user_name'];
  if ($progress == 1){
    if(md5($passwort) == $user_info['user_password']){
      // Group Sachen
      $sql = "DELETE FROM ".GROUP_MATCH_TABLE."
              WHERE user_id = $user_id";
      $site_db->query($sql);
      $sql = "SELECT group_id
              FROM ".GROUPS_TABLE."
              WHERE group_name = '$user_name' AND group_type = ".GROUPTYPE_SINGLE;
      if ($groups_row = $site_db->query_firstrow($sql)) {
        $sql = "DELETE FROM ".GROUPS_TABLE."
                WHERE group_id = ".$groups_row['group_id']." AND group_type = ".GROUPTYPE_SINGLE;
        $site_db->query($sql);

        $sql = "DELETE FROM ".GROUP_ACCESS_TABLE."
                WHERE group_id = ".$groups_row['group_id'];
        $site_db->query($sql);
      }
      //Lighbox
      $sql = "DELETE FROM ".LIGHTBOXES_TABLE."
              WHERE user_id = $user_id";
      $site_db->query($sql);
      //Update Images
      $sql = "UPDATE ".IMAGES_TABLE."
              SET user_id = ".GUEST."
              WHERE user_id = $user_id";
      $site_db->query($sql);
      //Update Comments
      $sql = "UPDATE ".COMMENTS_TABLE."
              SET user_id = ".GUEST.", user_name = '$user_name'
              WHERE user_id = $user_id";
      $site_db->query($sql);
      //Delete User
      $sql = "DELETE FROM ".USERS_TABLE."
              WHERE user_id = ".$user_id."";
      if($site_db->query($sql)) {
        $msg = "<b>".$user_name." your account with the ID: ".$user_id." successfully one deleted.</b>";
        $site_sess->logout($user_info['user_id']);
        header("Location: ".$site_sess->url(ROOT_PATH."index.php?msg=".$msg.""));
      }else{
        $msg = "<b>Your account could not be deleted please turn you to a Admin, thereby the account to be manually deleted can!!!</b>";



      }
    }else{
      $msg= "The account could not be deleted, since the password is wrong. Please it tries again.";
    }
    $content = $site_template->parse_template("member_deleteaccount");
  }else{
    $content = $site_template->parse_template("member_deleteaccount");
  }
}

then create a new .html named: member_deleteaccount.html

Code: [Select]
<form method="post" action="{url_member}" enctype="multipart/form-data" onsubmit="submit.disabled=true;">
  <table width="100%" border="0" cellspacing="0" cellpadding="1">
    <tr>
      <td valign="top" class="head1">
        <table width="100%" border="0" cellpadding="4" cellspacing="0">
          <tr>
            <td valign="top" class="head1">delete Account</td>
          </tr>
          <tr>
            <td class="row2">It harms that you want to leave us!!!<p>Please your password enters for safety reasons:<input type="password" name="passwort" class="input" size="20"></td>
          </tr>
        </table>
      </td>
    </tr>
  </table><center>
  <input type="hidden" name="action" value="deleteaccount">
  <input type="hidden" name="progress" value="1">
  <input type="submit" name="submit" value="delete Account :-(" class="button">
  <input type="reset" name="reset" value="ohh not :-)" class="button"onClick="window.open('{url_home}', '_top');">
</form>

if you want show the link DELETE ACCOUNT in the user_logininfo.html
then open the user_logininfo.html and find:
Code: [Select]
&raquo; <a href="{url_control_panel}">{lang_control_panel}</a><br />
add after:
Code: [Select]
&raquo; <a href="./member.php?action=deleteaccount">Delete Account</a><br />
if you want show the link DELETE ACCOUNT in the member_editprofile.html
then open the member_editprofile.html and find:
Code: [Select]
<form method="post" action="{url_member}" enctype="multipart/form-data">
add above this:
Code: [Select]
<center><a href="./member.php?action=deleteaccount">Delete Account</a></center><br />
thats all. Uplod the files. for testing create a new user and delete him on his controlpanel. DONT use your User. it deletes all!!!!  :twisted:

--------------------
----Deutsch-------
--------------------

so kann der User seinen Account löschen.

Macht vorher einen Backup bevor ihr die Dateien ändert!!!

zubearbeitene Dateien:


./member.php
./template/<your language>/user_logininfo.html ODER .templates/<your language>/member_editprofile.html


zu erstellende Dateien:

./template/<your language>/member_deleteaccount.html

öffne member.php

finde:
Code: [Select]
//-----------------------------------------------------
//--- Clickstream -------------------------------------
//-----------------------------------------------------

füge davor ein:
Code: [Select]
//-----------------------------------------------------
//--- Delete Account ----------------------------------
//-----------------------------------------------------
if ($action == "deleteaccount"){
  $passwort=$HTTP_POST_VARS[passwort];
  $progress=$HTTP_POST_VARS[progress];
  $user_id=$user_info['user_id'];
  $user_name=$user_info['user_name'];
  if ($progress == 1){
    if(md5($passwort) == $user_info['user_password']){
      // Group Sachen
      $sql = "DELETE FROM ".GROUP_MATCH_TABLE."
              WHERE user_id = $user_id";
      $site_db->query($sql);
      $sql = "SELECT group_id
              FROM ".GROUPS_TABLE."
              WHERE group_name = '$user_name' AND group_type = ".GROUPTYPE_SINGLE;
      if ($groups_row = $site_db->query_firstrow($sql)) {
        $sql = "DELETE FROM ".GROUPS_TABLE."
                WHERE group_id = ".$groups_row['group_id']." AND group_type = ".GROUPTYPE_SINGLE;
        $site_db->query($sql);

        $sql = "DELETE FROM ".GROUP_ACCESS_TABLE."
                WHERE group_id = ".$groups_row['group_id'];
        $site_db->query($sql);
      }
      //Lighbox
      $sql = "DELETE FROM ".LIGHTBOXES_TABLE."
              WHERE user_id = $user_id";
      $site_db->query($sql);
      //Update Images
      $sql = "UPDATE ".IMAGES_TABLE."
              SET user_id = ".GUEST."
              WHERE user_id = $user_id";
      $site_db->query($sql);
      //Update Comments
      $sql = "UPDATE ".COMMENTS_TABLE."
              SET user_id = ".GUEST.", user_name = '$user_name'
              WHERE user_id = $user_id";
      $site_db->query($sql);
      //Delete User
      $sql = "DELETE FROM ".USERS_TABLE."
              WHERE user_id = ".$user_id."";
      if($site_db->query($sql)) {
        $msg = "<b>".$user_name." dein Account mit der ID: ".$user_id." wurde erfolgreich gelöscht</b>";
        $site_sess->logout($user_info['user_id']);
        header("Location: ".$site_sess->url(ROOT_PATH."index.php?msg=".$msg.""));
      }else{
        $msg = "<b>Dein Account konnte nicht gelöscht werden bitte Wende dich an einen Admin, damit der Account manuell gelöscht werden kann!!!</b>";



      }
    }else{
      $msg= "Der Account konnte nicht gelöscht werden, da das Passwort falsch ist. Bitte versuche es noch einmal.";
    }
    $content = $site_template->parse_template("member_deleteaccount");
  }else{
    $content = $site_template->parse_template("member_deleteaccount");
  }
}

erstelle eine neue .html namens member_deleteaccount.html

Code: [Select]
<form method="post" action="{url_member}" enctype="multipart/form-data" onsubmit="submit.disabled=true;">
  <table width="100%" border="0" cellspacing="0" cellpadding="1">
    <tr>
      <td valign="top" class="head1">
        <table width="100%" border="0" cellpadding="4" cellspacing="0">
          <tr>
            <td valign="top" class="head1">Account löschen</td>
          </tr>
          <tr>
            <td class="row2">Schade, dass du uns verlassen willst!!!<p>Bitte gib aus Sicherheitsgründen dein Passwort ein:<input type="password" name="passwort" class="input" size="20"></td>
          </tr>
        </table>
      </td>
    </tr>
  </table><center>
  <input type="hidden" name="action" value="deleteaccount">
  <input type="hidden" name="progress" value="1">
  <input type="submit" name="submit" value="Account löschen :-(" class="button">
  <input type="reset" name="reset" value="Doch nicht :-)" class="button"onClick="window.open('{url_home}', '_top');">
</form>

wenn du den Link "account löschen" in der user_lofininfo.html haben willst
öffne user_logininfo.html und finde
Code: [Select]
&raquo; <a href="{url_control_panel}">{lang_control_panel}</a><br />füge danch ein:
Code: [Select]
&raquo; <a href="./member.php?action=deleteaccount">Account löschen</a><br />
falls du das in dem kontrollzentrum haben willst dann finde in der member_editprofile.html:
Code: [Select]
<form method="post" action="{url_member}" enctype="multipart/form-data">
füge davor ein:
Code: [Select]
<center><a href="./member.php?action=deleteaccount">Account löschen</a></center>
Das war alles.
Tip: wenn du das testen willst, lege vorher einen Testaccount an. ;-)



b.o.fan
Title: Re: [Mod] User can delete his own account / User kann seinen Account löschen
Post by: V@no on March 16, 2005, 11:36:31 PM
IMHO this should be done through control panel and not through login form...;)
Title: Re: [Mod] User can delete his own account / User kann seinen Account löschen
Post by: b.o.fan on March 16, 2005, 11:41:47 PM
ohh yeah. i look in the templates. and i will change this.
oki?
@ Vano i´ve changed this @ 16.03.2005 at 23.59...
Title: Re: [Mod] User can delete his own account / User kann seinen Account löschen
Post by: Null on May 17, 2005, 09:58:43 AM
Hi,

Will this mod also delete all the users pictures/ categories? And will he get a warning like: Deleting your account will also delete al you pictures! Or can this easely be implemented? And how?

Thx
Title: Re: [Mod] User can delete his own account / User kann seinen Account löschen
Post by: JensF on May 17, 2005, 11:31:14 AM
Hi,

Will this mod also delete all the users pictures/ categories? And will he get a warning like: Deleting your account will also delete al you pictures! Or can this easely be implemented? And how?

Thx

Now, thats my Question, too!
Title: Re: [Mod] User can delete his own account / User kann seinen Account löschen
Post by: b.o.fan on May 17, 2005, 01:33:10 PM
//...........................
//......ENGLISH.........
//...........................

it delete only the USER-Data. not the picture, etc.

that was your question?

//...........................
//......DEUTSCH........
//............................
es löscht nur die USER-Daten. Nicht die Bilder, etc.

das war deine Frage?
Title: Re: [Mod] User can delete his own account / User kann seinen Account löschen
Post by: Stoleti on March 13, 2006, 12:45:30 AM
the ideial is this delete all from that user (account/pictures)  :roll:
Title: Re: [Mod] User can delete his own account / User kann seinen Account löschen
Post by: IcEcReaM on March 17, 2006, 10:29:48 AM
bin mir zwar jetzt nicht genau sicher,
da ich den code jetzt nicht kenne, von diesem mod,
aber wenn am ende des scripts die weiterleitung über header() erfolgt,
dann ist nach der weiterleitung die variable $msg (also dein text) nicht mehr vorhanden,
da es ja ein neuer aufruf der seite ist.
mögliche lösung wäre, das ganze über ne session bassierte ausgabe zu machen.
gibt hier im forum sicher das ein oder andere beispiel dafür.
Title: Re: [Mod] User can delete his own account / User kann seinen Account löschen
Post by: IcEcReaM on March 17, 2006, 11:13:43 PM
Nur mal der Verständis wegen:
Du hast ein Skript nennen wir es delete.php,
womit der user gelöscht wird,
und dann wird er per header() wieder auf die Startseite geleitet?

ahh ok, hab mir jetzt mal die zeit genommen,
das skript von oben anzuschauen.

also vergiss das ganze mit der session basierten ausgabe,
hab jetzt erst gesehen, dass die lösch meldung per variable übergeben,
und dann auf der startseite angezeigt wird.
deine $msg variable kannst du folgendermassen verändern:

statt
Code: [Select]
$msg = "<b>".$user_name." your account with the ID: ".$user_id." successfully one deleted.</b>";
nimmst du:
Code: [Select]
$msg = "<b>".$user_name.$lang['delete_mod_1'].$user_id.$lang['delete_mod_2']."</b>";

$lang['delete_mod_1'] = " your account with the ID: ";
$lang['delete_mod_2'] = " successfully one deleted.";

die beiden lang variablen kannst du dann in deine main.php packen.
Title: Re: [Mod] User can delete his own account / User kann seinen Account löschen
Post by: IcEcReaM on March 18, 2006, 12:07:32 AM
eigentlich sollte erst genannte methode auch funktionieren,
allerdings muss in der aufgerufenen seite dann auch der $msg parameter wieder korrekt ausgelesen werden,
gerade wenn register_global_off ist.
Title: Re: [Mod] User can delete his own account / User kann seinen Account löschen
Post by: Stoleti on March 18, 2006, 12:11:33 AM
the ideial is this delete all from that user (account/pictures)  :roll:

or clean all data (pms,comments,pics,forum posts)  8)
Title: Re: [Mod] User can delete his own account / User kann seinen Account löschen
Post by: IWS_steffen on April 20, 2006, 06:41:30 AM
Hallo,


das Skript läuft bei mir auch soweit stabil. Super....

Die Idee mit der Bestätigung finde ich auch gut, um ein versehendliches Löschen auszuschließen.

Gruß Steffen
Title: Re: [Mod] User can delete his own account / User kann seinen Account löschen
Post by: JensF on April 21, 2006, 10:25:05 AM
Werden denn jetzt mittlerweile alle Daten gelöscht (User Bild, PMS etc.) ??? Oder verschwindet nur der User???

Coll wäre auch noch wenn man im ACP einstellen kann ob Bilder und Komentare mit gelöscht werden sollen oder nicht. Der Admin sagt also Bilder mit löschen oder nicht!
Title: Re: [Mod] User can delete his own account / User kann seinen Account löschen
Post by: Chicco on May 29, 2006, 12:21:59 PM
Also ich finde, das der User selbst entscheiden sollte, ob seine Bilder sowie Kommentare weiterhin bestehen bleiben dürfen oder ebenfalls gelöscht werden sollen. Schließlich hat auch nur er die Rechte auf seine Bilder bzw. sind es seine Bilder. Wenn er also nicht möchte, das seine Bilder noch bestehen obwohl er selbst kein Mitglied mehr ist, so sollten die Bilder auch gelöscht werden können! 8O

Ich habe mir mittlerweile eine Löschfunktion eingebaut, bei dem der User ein einfaches Formular ausfüllen muss. Dabei muss er sein Usernamen, sein momentanes Passwort sowie seine Mailadresse mit angeben. Darunter kann er per Radio-Buttons noch entscheiden, ob seine Bilder und Kommentare ebenfalls gelöscht werden sollen oder bleiben dürfen.

Ich bekomme als Admin dann diese Mail, checke kurz ob das Passwort stimmt indem ich mich als dieser User einlogge und lösche dann im ACP den User mit oder ohne Bilder und Kommentare.

So behalte ich als Admin auch den Überblick, WER seine Mitgliedschaft beendet hat und ob die Bilder noch bestehen oder nicht. Bei einer vollautomatischen Kündigung hat man nach einer Weile doch kein Plan mehr, wer wann gekündigt hatte. Oder? :?

Der User bekommt automatisch eine Antwortmail zugeschickt, das ich seine Kundigung bekommen habe. Ein zusätzliches Bemerkungsfeld, bei dem der User noch angeben kann, warum er seine Mitgliedschaft kündigt, kommt noch nachträglich rein.
Title: Re: [Mod] User can delete his own account / User kann seinen Account löschen
Post by: Alonso on April 30, 2007, 01:04:11 AM
@Chicco

Diese Variante würde mir auch gut gefallen haste das schon fertig ?
Title: Re: [Mod] User can delete his own account / User kann seinen Account löschen
Post by: komsho24 on March 25, 2009, 10:57:58 AM
Hi,

  I use this mode a long time.. and now i see i have a little problem...

I register a test user.. and all its fine.. but when i remove account with this mode... i can use again same username "test" but email, i can't...


Actualy, i have message, that email alredy use.. but i get email about registration on mail...


How i can fix this ?


Thank you !
Title: Re: [Mod] User can delete his own account / User kann seinen Account löschen
Post by: moto1985 on March 27, 2009, 01:48:32 PM
Wie muss ich es anstellen das ich ein Button angezeigt bekomme anstatt nur den Text "Account löschen"

habe es so gemacht und der Butten wird angezeigt nur tut sich nichts wenn ich diesen klicke

<center><input type="submit" href="./member.php?action=deleteaccount" value="Account löschen" class="button" /></center>
Title: Re: [Mod] User can delete his own account / User kann seinen Account löschen
Post by: KurtW on March 27, 2009, 02:15:33 PM
Hallo,

Code: [Select]
<form method="post" action="{url_member}">
  <input type="hidden" name="action" value="deleteaccount">
  <input type="hidden" name="progress" value="1">
  <center><input type="submit" value="Account löschen" class="button" /></center>
</form>


Ist aber auch im Mod Thread beschrieben  8O


Gruss
Kurt
Title: Re: [Mod] User can delete his own account / User kann seinen Account löschen
Post by: moto1985 on March 27, 2009, 02:21:00 PM
danke dir
Title: Re: [Mod] User can delete his own account / User kann seinen Account löschen
Post by: tutoko on October 26, 2012, 06:03:21 AM
I cant get this one to work with using passwort as the input field to match the stored password in the database. If I change the matching input from the passwort field to username and delete the md5 encryption then the code works fine. So, my error is somewhere in matching the entered password (passwort) with the stored password in the database. Any ideas on what is going wrong with that match - Im using 4images 7.11.

THanking in advance for any solutions provided.
Title: Re: [Mod] User can delete his own account / User kann seinen Account löschen
Post by: FairyCosmo on September 15, 2014, 08:11:02 PM
Same problem here... 1.7.11. Btw the author should fix the grammar in that mod and remove that stupid smilies and expclamation marks. Would be much better when its more serious!