Pagina 1 van 1

Couldn't update private forum permission

Geplaatst: 02 mar 2006, 01:00
door Ivoman
Support template:
  • Wat is het probleem?
    error bij "Is Moderator" toepassen
    Wanneer ontstond het probleem?
    Altijd al zo, ook bij de oude phpbb versie en die was heeel oud
    Adres van je forum: http://www.demodderberen.be/forum/
    Geïnstalleerde mods: geen
    Huidige template: graphite
    phpBB versie: 2.0.19
    Waar is je forum gehost: http://www.synaptech.be
    Heb je onlangs iets verandert aan je forum?
    Heb je gezocht naar een antwoord? Ja, welke zoekwoorden? admin_ug_auth. Maar verschillende topics bieden geen antwoord.
Overige opmerkingen:


Een gebruiker op ons forum is "Forum Moderator" en houdt zich met 1 forum bezig. Maar als ik via het Administratorpaneel onder Gebruikers Beheer > Permissies hem voor dat bepaalde forum "Is Moderator" maak, dan verschijnt volgende melding. Wat kan ik hieraan doen?

Afbeelding

dit zijn de codes van lijnen 348 tot 409:

Code: Selecteer alles

//
			// 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>');
		}
dit is de inhoud van de admin_ug_auth.php:
http://users.skynet.be/yvoman/admin_ug_auth.txt

dit is de admin_ug_auth.php zelf:
http://users.skynet.be/yvoman/admin_ug_auth.php

Geplaatst: 02 mar 2006, 13:58
door Bee
Zoek eens op de foutmelding, het is eerder behandeld en had toen te maken met de PHP versie. Dit probleem zou niet mogen optreden bij deze versie.

Geplaatst: 02 mar 2006, 14:32
door Ivoman

Geplaatst: 02 mar 2006, 14:40
door Paul
Ik vermoed dat er iets mis is met de groepen table. Er staat een mod voor op phpbb.com, maar die is nu offline. Je zult dus even moeten wachten :(

Geplaatst: 02 mar 2006, 15:28
door Raimon
Maak eens een file aan met de naam fix.php in wordpad

en voeg er dit in toe:

Code: Selecteer alles

<?php 
//*****  check users and user groups ****// 

define('IN_PHPBB', true); 
$phpbb_root_path = './'; 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 
include($phpbb_root_path . 'includes/functions_search.'.$phpEx); 

// Start session management 
$userdata = session_pagestart($user_ip, PAGE_SEARCH); 
init_userprefs($userdata); 
// End session management 

$sql = "SELECT user_id, username 
    FROM " . USERS_TABLE ." 
    WHERE user_id > 0"; 
if ( !($result = $db->sql_query($sql)) ) 
{ 
    message_die(GENERAL_ERROR, 'Could not obtain user list', '', __LINE__, __FILE__, $sql); 
} 

$liste =''; 
while ( $row = $db->sql_fetchrow($result) ) 
{ 
   $username = $row['username']; 
   $user_id = $row['user_id']; 
   $usergroup = ''; 
    
   $sql1 = "SELECT ug.group_id 
          FROM " . USER_GROUP_TABLE ." ug, ". GROUPS_TABLE. " g 
          WHERE ug.user_id = $user_id 
            AND ug.group_id = g.group_id 
            AND g.group_single_user  = 1 
            "; 
              
   if ( ($result1 = $db->sql_query($sql1)) ) 
   { 
       $row1 = $db->sql_fetchrow($result1); 
          $usergroup =( ( $row1['group_id'] != '' ) ? $row1['group_id'] : 'User has no user group'.$row1 ); 
          
   } 

          if (!($row1['group_id'] != '')) 
          { 
              
         $sql2 = "SELECT MAX(group_id) AS total 
            FROM " . GROUPS_TABLE; 
         if ( !($result2 = $db->sql_query($sql2)) ) 
         { 
            message_die(GENERAL_ERROR, 'Could not obtain next group_id information', '', __LINE__, __FILE__, $sq2l); 
         } 

         if ( !($row2 = $db->sql_fetchrow($result2)) ) 
         { 
            message_die(GENERAL_ERROR, 'Could not obtain next group_id information', '', __LINE__, __FILE__, $sql2); 
         } 
         $group_id = $row2['total'] + 1; 
          
          
         $sql3 = "INSERT INTO " . GROUPS_TABLE . " (group_id, group_name, group_description, group_single_user, group_moderator) 
            VALUES ($group_id, '', 'Personal User', 1, 0)"; 
         if ( !($result3 = $db->sql_query($sql3, BEGIN_TRANSACTION)) ) 
         { 
            message_die(GENERAL_ERROR, 'Could not insert data into groups table', '', __LINE__, __FILE__, $sql3); 
         } 

         $sql4 = "INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending) 
            VALUES ($user_id, $group_id, 0)"; 
         if( !($result4 = $db->sql_query($sql4, END_TRANSACTION)) ) 
         { 
            message_die(GENERAL_ERROR, 'Could not insert data into user_group table', '', __LINE__, __FILE__, $sql4); 
         } 

              
             $usergroup = $usergroup.', adding user group '.$group_id; 
          } 


   $liste .= ( ( $liste != '' ) ? '<br> ' : '' ) . $username.' <b>'.$usergroup.'</b>'; 
} 

message_die(GENERAL_MESSAGE,'Users:<br>'.$liste); 

?>
zodra je dat hebt gedaan voeg hem toe in je ftp waar het bestand config.php staat.
en vervolgens zet je in je adressenbalk domeinnaam.nl/fix.php :wink:

Geplaatst: 02 mar 2006, 15:33
door Ivoman
bij adressbalk: http://www.demodderberen.be/forum/fix.php

Code: Selecteer alles

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/httpd/vhosts/demodderberen.be/httpdocs/forum/fix.php on line 2

Parse error: parse error, unexpected T_STRING in /home/httpd/vhosts/demodderberen.be/httpdocs/forum/fix.php on line 2
:)

Geplaatst: 02 mar 2006, 15:51
door Raimon

Geplaatst: 02 mar 2006, 15:53
door Ivoman
Raimon schreef:MM en deze file: http://rapidshare.de/files/14506523/fix.php.html

Code: Selecteer alles

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/httpd/vhosts/demodderberen.be/httpdocs/forum/fix.php on line 3
{\rtf1\ansi\ansicpg1252\deff0\deflang1043{\fonttbl{\f0\fmodern\fprq1\fcharset0 Courier New;}{\f1\froman\fcharset0 Times New Roman;}{\f2\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;} {\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\cf1\f0\fs20 \cf0\f1\fs24\par \f2\fs20\par } 

Geplaatst: 02 mar 2006, 15:54
door Raimon
Kijk eens eventjes of het probleem is opgelost of nog niet ?

Geplaatst: 02 mar 2006, 16:16
door Paul

Geplaatst: 02 mar 2006, 20:00
door Ivoman
Raimon schreef:Kijk eens eventjes of het probleem is opgelost of nog niet ?
nee, t was toen niet opgelost. :roll: Zie m'n vorige post; dat gaf ie weer.
paul schreef: http://troep.reallycoding.nl/fix.phps werkt bij mij :)
ik heb de fix.php gewijzigd naar de inhoud van uw fix.phps , Paul
kijk zelf eens :)
http://www.demodderberen.be/forum/fix.php
Het gaat om Frank MB. En bij hem staat:
Frank MB User has no user group, adding user group 3313

En wat blijkt nu... Het werkt! :thumb: :)
Frank MB is nu de "Is Moderator" functie toegekent zonder foutmelding! :thumb: :D

Geplaatst: 04 apr 2006, 15:23
door Tobiaz
Prachtig, die fix heeft mij ook geholpen! Bedankt!