Seite 1 von 1

Benutzer über user_delete() löschen?

Verfasst: 09.04.2009 02:07
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

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

Verfasst: 09.04.2009 20:43
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.

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

Verfasst: 10.04.2009 15:04
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

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

Verfasst: 11.04.2009 15:21
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.

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

Verfasst: 12.04.2009 01:22
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