Seite 1 von 2

Fehler in der admin_ug_auth.php

Verfasst: 30.06.2004 03:03
von Gumfuzi
Hallo Leute!

habe folgende Meldung nach dem Einbau des Category Mods und zwar wenn ich einem Moderator Rechte für ein Forum geben will. Es erscheint der Screen, wo man alles ändern kann, aber beim Abspeichern kommt dann diese Meldung.
Noch was:
es kommt nur bei einem Moderator, diesen haben wir erst nach dem Einbau des Mods MOD-Rechte gegeben - alle anderen funzen...

Code: Alles auswählen

Allgemeiner Fehler 
Couldn't update private forum permissions

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax near ' 1)' at line 2

INSERT INTO nuke_phpbb_auth_access (forum_id, group_id, auth_mod) VALUES (30, , 1)

Line : 402
File : /var/www/web1/html/phpBB2/admin/admin_ug_auth.php 
Hier meine admin_ug_auth.php:

Code: Alles auswählen

			//
			// Checks complete, make updates to DB
			//
			$delete_sql = '';
			while( list($forum_id, $action) = @each($forum_auth_action) )
			{
				if ( $action == 'delete' )
				{
					$delete_sql .= ( ( $delete_sql != '' ) ? ', ' : '' ) . $forum_id;
				}
				else
				{
					if ( $action == 'insert' )
					{
						$sql_field = '';
						$sql_value = '';
						while ( list($auth_type, $value) = @each($update_acl_status[$forum_id]) )
						{
							$sql_field .= ( ( $sql_field != '' ) ? ', ' : '' ) . $auth_type;
							$sql_value .= ( ( $sql_value != '' ) ? ', ' : '' ) . $value;
						}
						$sql_field .= ( ( $sql_field != '' ) ? ', ' : '' ) . 'auth_mod';
						$sql_value .= ( ( $sql_value != '' ) ? ', ' : '' ) . ( ( !isset($update_mod_status[$forum_id]) ) ? 0 : $update_mod_status[$forum_id]);

						$sql = "INSERT INTO " . AUTH_ACCESS_TABLE . " (forum_id, group_id, $sql_field) 
							VALUES ($forum_id, $group_id, $sql_value)";
					}
					else
					{
						$sql_values = '';
						while ( list($auth_type, $value) = @each($update_acl_status[$forum_id]) )
						{
							$sql_values .= ( ( $sql_values != '' ) ? ', ' : '' ) . $auth_type . ' = ' . $value;
						}
						$sql_values .= ( ( $sql_values != '' ) ? ', ' : '' ) . 'auth_mod = ' . ( ( !isset($update_mod_status[$forum_id]) ) ? 0 : $update_mod_status[$forum_id]);

						$sql = "UPDATE " . AUTH_ACCESS_TABLE . " 
							SET $sql_values 
							WHERE group_id = $group_id 
								AND forum_id = $forum_id";
					}
					if( !($result = $db->sql_query($sql)) )
					{
						message_die(GENERAL_ERROR, "Couldn't update private forum permissions", "", __LINE__, __FILE__, $sql);
					}
				}
			}

			if ( $delete_sql != '' )
			{
				$sql = "DELETE FROM " . AUTH_ACCESS_TABLE . " 
					WHERE group_id = $group_id 
						AND forum_id IN ($delete_sql)";
				if( !($result = $db->sql_query($sql)) )
				{
					message_die(GENERAL_ERROR, "Couldn't delete permission entries", "", __LINE__, __FILE__, $sql);
				}
			}

			$l_auth_return = ( $mode == 'user' ) ? $lang['Click_return_userauth'] : $lang['Click_return_groupauth'];
			$message = $lang['Auth_updated'] . '<br /><br />' . sprintf($l_auth_return, '<a href="' . append_sid("admin_ug_auth.$phpEx?mode=$mode") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_admin_index'], '<a href="' . append_sid("index.$phpEx?pane=right") . '">', '</a>');
		}

Verfasst: 30.06.2004 08:40
von PhilippK
Das ist wohl ein Fehler mit den Gruppen. Installier mal den DB Maintenance Mod und lass den ersten Punkt (Benutzer und Gruppen) rüberlaufen. Vorher besser ein Backup machen, da der Mod evtl. mit dem Category Mod Probleme machen könnte.

Gruß, Philipp

Verfasst: 30.06.2004 12:46
von Gumfuzi
aha, ich muss erst ein Prog finden, das zuverlässig ein DB-Backup macht und in einem Stück wieder einspielen kann - das ist das nöchste Prob. Es gibt zwar einen Mod dafür, aber damit funzt es auch nicht...

Wo wird die DB überhaupt gespeichert (normalerweise; in welchem Ordner?) - finde das nicht. Denn dann könnte ich ja per FTP die Datei runterladen und im Falle eines Backups einfach wieder raufspielen...
Warum gibt es überhaupt ein Limit bei den SQL-Befehlen in PhpMyAdmin?


... aber er schreibt ja, daß es ein Syntax-Fehler ist, das bedeutet ja normalerweise, daß der Befehl falsch geschrieben ist... komisch. Naja, werde das mit dem o.a. Mod probieren, sobald ich ein ordentliches Backup machen kann.

Verfasst: 02.07.2004 22:18
von Gumfuzi
So, das hat nix gebracht - ist noch so wie vorher...

Manuell kann ich es ja in der DB ändern, aber eben im via ACP nicht (nur bei diesem Benutzer)...

Das muss doch etwas an der Syntax nicht stimmern oder?
Es werden nur 3 Felder von der admin_ug_auth.php übermittelt, die Tabelle hat haber 14 Felder dort - liegt es daran?
Oder ist da ein Leerzeichen zuviel nach dem Beistrich, weil genau dort der Fehler angezeigt wird?

Bis das geklärt ist, werde ich bei diesem User wohl "per Hand" das eintragen müssen, nur wie finde ich die Group ID dieses Users heraus? Die ist ungleich der UserID. Es ist ein einzelner User, der den Bereich moderieren soll - keine Gruppe (=GroupID990 oder991).

Wo finde ich das raus?

Verfasst: 03.07.2004 00:10
von PhilippK
Schau in der phpbb_user_group nach, welchen Gruppen der User zugeordnet ist.

Gruß, Philipp

Verfasst: 03.07.2004 10:06
von Gumfuzi
Daran habe ich auch schon gedacht:

Habe dann einen neuen Eintrag gemacht mit einer group_id, die noch nicht vergeben war (13) und habe dazu die user_id (17) eingetragen, dann haben ich im auth...-Table bei der gewünschten forum_id die Gruppe 13 eingetragen.
Wenn ich aber die Forenübersicht aufrufe, steht da gar nix drin von einem Moderator (nicht mal "Moderator:")

Wenn ich im auth...-Table bei der gewünschten forum_id die Gruppe 990 (Crew) eintrage, dann steht das auch in der Übersicht.
Ist da etwas besonderes zu beachten, wenn man keine Gruppe, sondern eine einzelne Person als Mod festlegen will?

Oder habe ich da einen Denkfehler drin?

Verfasst: 03.07.2004 10:42
von PhilippK
Für die einzelne Person muss eben eine 'Einbenutzergruppe' exisitieren, damit das läuft.

Gruß, Philipp

Verfasst: 03.07.2004 12:29
von Gumfuzi
Was ist da (in der SQL-Tabelle) der Unterschied?
Wie kann ich das in der phpbb_user_group direkt festlegen, daß das eine Einbenutzergruppe ist?

Ich habe es nun so:

phpbb_user_group:
group_id: 13
user_id: 17
user_pending: 0

phpbb_auth_access:
group_id: 13
forum_id: 15
rest ist auf "0"
auth_mod: 1

Verfasst: 03.07.2004 12:49
von PhilippK
Wie wär's mit 'nem Eintrag in der phpbb_groups - oder exisitiert der schon?

Gruß, Philipp

Verfasst: 03.07.2004 13:01
von Gumfuzi
*lol* das war's!! *schäm*

Vielen Dank!!!!