Seite 1 von 1

externes Benutzer löschen...

Verfasst: 05.09.2011 22:16
von Hitmandsa
Guten Abend liebe phpBB3 Community

Ich setze mich seit einem Tag mit dem externen Löschen von späteren Benutzern meines Boards auseinander.

folgendes Problem ist aufgekommen

es gibt die Funktion delete_user($mode, $user_id) in der includes/function_user.php.
mein Zugriff auf diese Funktion erfolgt folgendermaßen

Code: Alles auswählen

   function phpBB3Delete($username)
    {
      define('IN_PHPBB', true);
            /* set scope for variables required later */
            global $phpbb_root_path;
            global $phpEx;
            global $db;
            global $config;
            global $user;
            global $auth;
            global $cache;
            global $template;

            # your php extension
            $phpEx = substr(strrchr(__FILE__, '.'), 1);
            $phpbb_root_path = '../phpBB3/';

            /* includes all the libraries etc. required */
            require($phpbb_root_path . 'common.php');
            $user->session_begin();
            $auth->acl($user->data);

            /* the file with the actual goodies */
            require($phpbb_root_path . 'includes/functions_user.php');
     user_delete("remove" ,$username);

    }
Wie man schnell bemerkt habe ich, den in der phpBB3 Datenbank gespeicherten Usernamen an die Funktion user_delete(); übergebe und nicht die user_id..
Da ich nur diesen habe und es nicht geschafft habe in oben Aufgezeigter Funktion mit dem Usernamen die User_Id zu bekommen habe ich in der user_delete() ebenfalls am anfang Änderungen vorgenommen...

Code: Alles auswählen

function user_delete($mode, $user_id, $post_username = false)
{
	global $cache, $config, $db, $user, $auth;
	global $phpbb_root_path, $phpEx;

    $sql = "SELECT *
	FROM " . USERS_TABLE . "
	WHERE username = '" . $user_id ."';";
	$result = $db->sql_query($sql);
	$user_row = $db->sql_fetchrow($result);
	$db->sql_freeresult($result);

    $user_id = $user_row["user_id"];

	if (!$user_row)
	{
	    echo"fail";
		return false;
	}
...usw..
Hier ist das was ich geändert habe... wie man sieht soll die Spalte in der DB gefunden werden in welcher der Benutzername steckt.. daraus hole ich mir die user_id und deklariere $user_id neu... Da "fail" jedesmal erscheint muss der Fehler in dem Datenbankzugriff liegen... ich hoffe mir kann geholfen werden

Danke im vorraus :)

Re: externes Benutzer löschen...

Verfasst: 05.09.2011 23:00
von Hitmandsa
okee danke an alle die es gelesen haben...

es musste so heißen..

Code: Alles auswählen

function user_delete($mode, $user_id, $post_username = false)
{
	global $cache, $config, $db, $user, $auth;
	global $phpbb_root_path, $phpEx;

    $sql = "SELECT *
	FROM " . USERS_TABLE . "
	WHERE username = '$user_id';";
	$result = $db->sql_query($sql);
	$user_row = $db->sql_fetchrow($result);
	$db->sql_freeresult($result);

    $user_id = $user_row["user_id"];

	if (!$user_row)
	{
	    echo"fail";
		return false;
	}
:) Bei Fragen zu diesem Thema stehe ich immer gerne zur Verfügung :D

mfg Andre