Seite 1 von 3

Nickpage eines Users komplett löschen

Verfasst: Di 19.Okt, 2004 12:38
von bce
hallo.

als admin hat man die möglichkeit eine nickpage eines noch angemeldeten user zu sperren, nicht aber zu löschen.

bräuchte am besten einen eintrag im acp das man eine np komplett löschen kann. das in keiner der nickpage-tabelle in der datenbank reste zu finden sind.

kann mir einer helfen?

Verfasst: Di 19.Okt, 2004 18:35
von oxpus
Hier die Befehle:

Code: Alles auswählen

DELETE FROM phpbb_nickpagebuddies WHERE uid = 2;

DELETE FROM phpbb_nickpagefavs WHERE uid = 2;

DELETE FROM phpbb_nickpagegalerie WHERE uid = 2;

DELETE FROM phpbb_nickpagegb WHERE aid = 2;

DELETE FROM phpbb_nickpagemod WHERE uid = 2;

DELETE FROM phpbb_nickpagevotes WHERE uid = 2;
Ersetze ggf. "phpbb_" mit Deinem Tabellenprefix und "2" mit der User-ID, die gelöscht werden soll.

Hinweis:
"aid = 2" bei "DELETE FROM phpbb_nickpagegb" ist kein Schreibfehler!

Verfasst: Mi 20.Okt, 2004 10:37
von bce
danke.

bedarf es viel, die möglichkeit eine np zu löschen mit ins acp aufzunehmen? ähnlich np sperren.

auf was muss ich achten? die template dateien dürften nicht das problem sein.

Verfasst: Mi 20.Okt, 2004 20:03
von oxpus
Öhm, es müsste eine Liste der Nickpages angezeigt werden, von der man dann per Button, Link oder Checkbox die betreffende Nickpage löschen könnte.
Mal schauen, ob ich das irgendwie zwischen meine aktuellen Projekte schieben kann. Ist schliesslich nicht sooooo umfangreich.

Verfasst: Do 21.Okt, 2004 10:29
von bce
stimmt. müßte eigentlich nur ne auswahlmöglichkeit geben. die sql-befehle hast ja schon zusammen ;)

das wäre prima!

Verfasst: Do 21.Okt, 2004 17:51
von bce
um den speicherplatz der datenbank in grenzen zu halten wäre auch praktisch, wenn man im acp einstellen könnte, dass die einträge in der nickpage nach xx tagen automatisch gelöscht werden.

Verfasst: Fr 22.Okt, 2004 10:06
von oxpus
. oder man würde nur X zulassen und bei einem neuen Eintrag den ältesten löschen.
Aber nur mal am Rande:
Schalte zunächst mal Gzip ein und errechne/überschlage mal die Grösse der GB-Einträge. Text wird in der Datenbank eh komprimiert abgelegt und bis man 1MB Text vollgeschrieben hat, braucht es schon gewaltig viele Einträge.
Wieviel Platz hast Du denn überhaupt zur Verfügung?

Verfasst: Fr 22.Okt, 2004 11:23
von bce
dachte, dass das gzip die daten ein wenig komprimiert und dann abgespeckt zum browser schickt. hat also nichts mit der db zu tun!

meine mysql-db darf ca. 15 mb groß sein. zur zeit wird 1,1 mb belegt. aber da mein forum noch am anfang steht, möchte ich schon gleich ein wenig voraus schauen.

ps: die sicherung und das wiederherstellen dauert jetzt bei einer db-größe von 1,1 mb schon lange. was soll das bloss bei 5 oder mehr mb werden?

Verfasst: Fr 22.Okt, 2004 12:11
von oxpus
Dann würde ich eher einen anderen Hoster nehmen.
15MB Datenbankgrösse sind nicht gerade üppig.
Und mit Beiträgen wird die groß, nicht mit Daten von anderen Mods. Jedenfalls seltener.

Verfasst: Fr 22.Okt, 2004 13:36
von bce
hmm. dann werde ich wohl bei den beiträgen automatisch löschen nach geraumer zeit aktivieren müssen :-/

so ne sicherung der db dauert schon ein stück. auch wenns kompriemiert wird.

Verfasst: Fr 22.Okt, 2004 17:44
von oxpus
Kommt aber auch auf den Server selber und die Internet-Verbindung an.
Gerade kostenlose Webspaces (um einen solchen handelt es sich hier sicherlich) setzen sehr viele Accounts auf einen Server und das bremst selbigen ungemein aus. Also auch und gerade ein Backup.

Edit:
Versuchs mal mit den angehängten Dateien.
Achtung, die sind noch ungetestet.

[ Attachment gelöscht am Mo 20.Jun, 2005 23:39 von AmigaLink ]

Verfasst: Do 09.Jun, 2005 18:48
von bce
sooo.. hab da mal was altes aufgegriffen 8)

hab die 2 files entsprechend entpackt.

2 dinge: ein fehler und ein schönheitsfehler...

der schönheitsfehler liegt darin, das der link "nickpage delete" im acp ganz unten unter "benutzer" sich wieder findet... besser wäre im acp unter dem punkt "nickpage"

der fehler ist auf dem bild zu sehen...

Verfasst: Do 09.Jun, 2005 23:18
von oxpus

Verfasst: Fr 10.Jun, 2005 14:02
von bce
ok..

und die fehlermeldung?

muss irgendwie kann er die nickpages nich auslesen..
hier der code der dies machen soll:

Code: Alles auswählen

// Get all verify status from users
	$sql = "SELECT username, user_id FROM " . NICKPAGE_TABLE . "
		ORDER BY username $sort_order
		LIMIT $start, $amount";
	if( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not query nickpages', '', __LINE__, __FILE__, $sql);
	}
in der tabelle "phpbb_nickpagemod" heißen die felder "uid" und "name" (du verwendest im sql-befehl jedoch "username", "user_id")

Verfasst: Fr 10.Jun, 2005 16:05
von oxpus
Dann ändere die Abfrage entsprechend ab. Keine Ahnung, was mich da geritten hat...

Verfasst: Fr 10.Jun, 2005 18:36
von bce
habs geändert.. aber fehler ist immer noch...

ist das ein befehl, der nur unter php5 funktioniert? da in defhlermeldung (siehe bild) was von version steht...

Verfasst: Fr 10.Jun, 2005 19:03
von oxpus
Mit PHP hat das hier nichts zu tun, sondern mit der Datenbank, wenn schon. Von dort kommt der SQL-Fehler zurück.
Nur: Was macht das Dropdown dort in der Anweisung? Das ist hinter $ort_order versteckt und damit kann die Datenbank nunmal wenig mit anfangen.
Ersetze mal diese Variable mit $order, dann sollte es passen.

Verfasst: Di 14.Jun, 2005 12:32
von bce
äderung brachte nur mässigem erfolg... die links führen auf eine nicht vorhandene seite... "Die Seite wurde nicht gefunden..."

optisch passt auch irgendwas nich 100pro...

weiß das du i moment mit dem download-full-pack dich rum schlägst.. deshalb ist mir das hier nich so wichtig... wenns irgendwann mal zeit ist, dann würd ich mich freuen, wenn wir das prob hier gelöst bekommen..

Verfasst: Di 14.Jun, 2005 18:43
von oxpus
Och das geht schon zwischendurch.
Ersetze mal in der admin-Datei den Part (einer Zeile)

Code: Alles auswählen

<img src="'.$images['icon_delpost'].'" border="0" title="'.$lang['Delete'].'" />
durch

Code: Alles auswählen

<img src="../'.$images['icon_delpost'].'" border="0" title="'.$lang['Delete'].'" />
dann sollten die Images erscheinen.

Verfasst: Di 14.Jun, 2005 20:01
von bce
:) ok.. bilder werden nun angezeigt... aber wenn man drauf klickt kommt man nach wie vor auf seite nicht gefunden... und die optik haut auch nich wirklich hin... siehe bild


wenn ich deinen sql-befehle verwende

Code: Alles auswählen

// Get all verify status from users
	$sql = "SELECT username, user_id FROM " . NICKPAGE_TABLE . "
		ORDER BY username $sort_order
		LIMIT $start, $amount";
so geht gar nichts...

habe den sql-befehl geändert.. da in der tabelle name anstatt username und uid anstatt user_id heißt..

Code: Alles auswählen

	// Get all verify status from users
	$sql = "SELECT name, uid FROM " . NICKPAGE_TABLE . "
		ORDER BY name 
		LIMIT $start, $amount";
	if( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not query nickpages', '', __LINE__, __FILE__, $sql);
	}

	$nickpages = array();
	while ( $row = $db->sql_fetchrow($result) )
	{
		$nickpages[]['name'] = $row['name'];
		$nickpages[]['uid'] = $row['uid'];
	}

	$db->sql_freeresult($result);

	// Prepare nickpages and send to template
	for ( $i = 0; $i < count($nickpages); $i++ )
	{
		$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];

		$userid = $nickpages[$i]['uid'];
		$username = $nickpages[$i]['name'];
		$user_link = '<a href="'.append_sid("profile.$phpEx?mode=viewprofile&".POST_USER_URL."=".$nickpages[$i]['uid']).'" class="nav">'.$nickpages[$i]['name'].'</a>';
		$user_delete = '<a href="'.append_sid("admin/admin_nickpage_delete.$phpEx?mode=confirm&".POST_USER_URL."=".$nickpages[$i]['uid']).'"><img src="../'.$images['icon_delpost'].'" border="0" title="'.$lang['Delete'].'" /></a>';

		$template->assign_block_vars('nickpage_row', array(
			'ROW_CLASS' => $row_class,
			'USER_LINK' => $user_link,
			'USER_DELETE' => $user_delete)
		);
	}

Verfasst: Mi 15.Jun, 2005 00:31
von oxpus
Wohl nicht bei jeder Nickpage ein Name hinterlegt?

Verfasst: Mi 15.Jun, 2005 11:10
von bce
hab grad mal geschaut.. stimmt.. ist nicht bei jedem user ein name in der nickpage eingetragen...

so wie mans aufm bild sieht so geht es weiter... ein name, dann in der nächsten zeile kein name eingetragen usw...

Verfasst: Mi 15.Jun, 2005 14:06
von oxpus
Dann müsste die Abfrage

Code: Alles auswählen

// Get all verify status from users 
   $sql = "SELECT name, uid FROM " . NICKPAGE_TABLE . " 
      ORDER BY name 
      LIMIT $start, $amount"; 
schon eher so lauten:

Code: Alles auswählen

// Get all verify status from users 
   $sql = "SELECT u.username as name, n.uid FROM " . NICKPAGE_TABLE . " n, " . USERS_TABLE . " u
      WHERE u.user_id = n.uid
      ORDER BY name 
      LIMIT $start, $amount"; 

Verfasst: Mi 15.Jun, 2005 14:36
von bce
wird langsam...
jetzt werden alle user aufgelistet, die eine nickpage eingerichtet haben...
eine leere zwischenzeile entsteht irgendwie...
am rechten rand erscheint in jeder zeile das lösch-icon...

ein klick auf irgendein icon sowie auf einen name führt zu keinem erfolg...
das müßte an folgendem code liegen:

Code: Alles auswählen

	$nickpages = array();
	while ( $row = $db->sql_fetchrow($result) )
	{
		$nickpages[]['name'] = $row['name'];
		$nickpages[]['uid'] = $row['uid'];
	}

	$db->sql_freeresult($result);

	// Prepare nickpages and send to template
	for ( $i = 0; $i < count($nickpages); $i++ )
	{
		$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];

		$userid = $nickpages[$i]['uid'];
		$username = $nickpages[$i]['name'];
		$user_link = '<a href="'.append_sid("profile.$phpEx?mode=viewprofile&".POST_USER_URL."=".$nickpages[$i]['uid']).'" class="nav">'.$nickpages[$i]['name'].'</a>';
		$user_delete = '<a href="'.append_sid("admin/admin_nickpage_delete.$phpEx?mode=confirm&".POST_USER_URL."=".$nickpages[$i]['uid']).'"><img src="../'.$images['icon_delpost'].'" border="0" title="'.$lang['Delete'].'" /></a>';

		$template->assign_block_vars('nickpage_row', array(
			'ROW_CLASS' => $row_class,
			'USER_LINK' => $user_link,
			'USER_DELETE' => $user_delete)
		);
	}
oben wird ein array erstellt auf das unten zugegriffen wird..
hab das array mal abgecheckt mit

Code: Alles auswählen

for ( $i = 0; $i < count($nickpages); $i++ )
	{
	echo "<br>$i-" . $nickpages[$i]['uid'] . $nickpages[$i]['name'];
	}
in einer zeile sthet der namen und in der nächsten die userid... und immer im wechsel...

anbei mal meine admin_nickpage_delete.php

[ Attachment gelöscht am Mi 15.Jun, 2005 18:19 von oxpus ]

Verfasst: Mi 15.Jun, 2005 17:48
von oxpus
Und eine Klammer fehlte auch noch, daher die falsche Darstellung.
Hiermit sollte nun alles behoben sein:

[ Attachment gelöscht am Mi 15.Jun, 2005 18:20 von oxpus ]