Seite 1 von 1

Kategorie editieren

Verfasst: 10.05.2006 23:47
von aLFie
So wie ich es im Code gesehen habe, lässt das Script ein editieren der Kategorie auch zu, wenn das POST-Array leer ist!


Datei: /phpbb/admin/admin_forums.php

Code: Alles auswählen

		case 'modcat':
			// Modify a category in the DB
			$sql = "UPDATE " . CATEGORIES_TABLE . "
				SET cat_title = '" . str_replace("\'", "''", $HTTP_POST_VARS['cat_title']) . "'
				WHERE cat_id = " . intval($HTTP_POST_VARS[POST_CAT_URL]);
			if( !$result = $db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, "Couldn't update forum information", "", __LINE__, __FILE__, $sql);
			}

			$message = $lang['Forums_updated'] . "<br /><br />" . sprintf($lang['Click_return_forumadmin'], "<a href=\"" . append_sid("admin_forums.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");

			message_die(GENERAL_MESSAGE, $message);

			break;
geändert in

Code: Alles auswählen

		case 'modcat':
			// Modify a category in the DB
			if( trim($HTTP_POST_VARS['cat_title']) == '')
			{
				message_die(GENERAL_ERROR, "Can't edit a category without a name");
			}
			
			$sql = "UPDATE " . CATEGORIES_TABLE . "
				SET cat_title = '" . str_replace("\'", "''", $HTTP_POST_VARS['cat_title']) . "'
				WHERE cat_id = " . intval($HTTP_POST_VARS[POST_CAT_URL]);
			if( !$result = $db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, "Couldn't update forum information", "", __LINE__, __FILE__, $sql);
			}

			$message = $lang['Forums_updated'] . "<br /><br />" . sprintf($lang['Click_return_forumadmin'], "<a href=\"" . append_sid("admin_forums.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");

			message_die(GENERAL_MESSAGE, $message);

			break;
LG aLFie

Verfasst: 11.05.2006 01:36
von cYbercOsmOnauT
So ganz verstehe ich das nicht. Wichtig ist doch nicht der Titel der Kategorie, sondern seine ID. Wer gerne Kategorien ohne Titel hat (welchen Sinn auch immer das haben sollte), kann es nutzen.

Sollte die cat_id nicht mit übermittelt werden, kommt es bei der SQL sowieso zu einer Fehlermeldung.

Grüße,
Tekin

Verfasst: 11.05.2006 13:50
von aLFie
Nunja, ich hab das eher in dem Zusammenhang gesehen, das es selbst bei Kategorieerstellung gefordert wird einen Kategorienamen anzugeben!
Hat sich mit der editierung widersprochen, weil da egal ist, ob ein Name angegeben wurde oder nicht! Mit der ID das ist klar das sich sql da meldet!

Entweder steht es von Anfang an zur Verfügung eine Kategorie ohne Namen zu erstellen oder nicht! Halbe Sachen auf doppeltem Weg zu erschaffen fällt unter meine ethischen Grundsätze der Programmierung eines Scriptes! :P

LG