Benutzer über user_delete() löschen?

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
der-Webdesigner.net
Mitglied
Beiträge: 44
Registriert: 05.04.2005 15:57
Kontaktdaten:

Benutzer über user_delete() löschen?

Beitrag von der-Webdesigner.net »

Hallo zusammen!

Ich würde gerne einen Benutzer aus dem Forum löschen. Mir ist bewusst, dass ich dies über den Adminbereich tun kann. Was ich aber möchte ist die Möglichkeit, den Benutzer ohne den Adminbereich zu löschen.

Folgendes habe ich versucht:

Code: Alles auswählen

$root = $_SERVER['DOCUMENT_ROOT'];

define('IN_PHPBB', true);
$phpbb_root_path = "$root/forum/";
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
$db->sql_close();

// als Beispiel
$userId = 83;

include_once('../forum/includes/functions_user.php');
user_delete('retain', $userId);
Das funktioniert aber nicht, da scheinbar der folgende Ausdruck in der Funktion user_delete() wahr wird:

Code: Alles auswählen

if (!$user_row)
{
  return false;
}
Kommentiere ich das aus kracht es später. Habe ich irgendwas vergessen? Muss ich vorher noch etwas tun?

Vielen Dank für Tipps :)
Lg,
Manuel
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: Benutzer über user_delete() löschen?

Beitrag von Dr.Death »

Hallo,

wenn die Abfrage "wahr" wird, dann gibt es den User mit der user_id = 83 nicht.

Code: Alles auswählen

$sql = 'SELECT *
		FROM ' . USERS_TABLE . '
		WHERE user_id = ' . $user_id;
	$result = $db->sql_query($sql);
	$user_row = $db->sql_fetchrow($result);
Wenn es die $user_id 83 nicht gibt, wird man kein Result-Set erhalten und somit ist $user_row nicht existent... also: false.
der-Webdesigner.net
Mitglied
Beiträge: 44
Registriert: 05.04.2005 15:57
Kontaktdaten:

Re: Benutzer über user_delete() löschen?

Beitrag von der-Webdesigner.net »

Hi du!

Leider existiert diese ID aber. Ansonsten wäre es mir auch klar, dass ich als Ergebnis keine, also 0 Zeilen erhalte und somit das Ergebnis false wird.
Ich habe mir auch den Query ausgeben lassen weil ich dachte, dass die Variable "USERS_TABLE" nicht richtig interpretiert wird, aber auch das stimmt.

Danke für deine Antwort und für jegliche andere Ideen!
Vielleicht stehe ich ja auch einfach nur auf dem Schlauch und mache einen total trivialen Fehler.

Lg,
Manuel
Benutzeravatar
marc1706
phpBB.com
Beiträge: 323
Registriert: 20.08.2008 11:11
Wohnort: München
Kontaktdaten:

Re: Benutzer über user_delete() löschen?

Beitrag von marc1706 »

Gibt es einen speziellen Grund, wieso du das hier in deinem Code stehen hast?:

Code: Alles auswählen

$db->sql_close();


Vielleicht mal ohne probieren.
phpBB Lead Developer
der-Webdesigner.net
Mitglied
Beiträge: 44
Registriert: 05.04.2005 15:57
Kontaktdaten:

Re: Benutzer über user_delete() löschen?

Beitrag von der-Webdesigner.net »

Oh man, wie peinlich... ;)

Hatte den Quellcode einfach aus meiner Hauptdatei übernommen und darauf nicht geachtet. Dummerweise baue ich selbst noch eine Datenbankverbindung auf, für die ich ebenfalls bereits seit Jahren die Variable $db verwende...jetzt alles umzuschreiben ist mir zu aufwändig, daher überschreibe ich die Variable jetzt einfach und dann funktioniert auch alles. Vielen Dank für den Hinweis. Manchmal sehen 4 Augen einfach mehr als 2 ;)

Liebe Grüße,
Manuel
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“