externes Benutzer 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
Hitmandsa
Mitglied
Beiträge: 2
Registriert: 05.09.2011 21:59

externes Benutzer löschen...

Beitrag 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 :)
Hitmandsa
Mitglied
Beiträge: 2
Registriert: 05.09.2011 21:59

Re: externes Benutzer löschen...

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

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