Could not update user level när jag ändrar permissions

Detta är ett arkiv för phpBB2 Support, Diskussion, MODar, Stilar och översättningar. Den tillhandahålls endast för referensändamål.

Moderatorer: Moderatorgrupp, Supportgrupp

Joakim
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 319
Blev medlem: 2003-10-19 18:26
Svar: 0

Could not update user level när jag ändrar permissions

Inlägg av Joakim »

Jag får detta meddelandet när jag försöker ändra rättigheter på mina användare:

Kod: Markera allt

Could not update user level

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 3

UPDATE phpbb_users SET user_level = 0 WHERE user_id IN ()

Line : 555
File : admin_ug_auth.php
...och min fil ser ut så här vid detta området:

Kod: Markera allt

{
			$sql = "UPDATE " . USERS_TABLE . " 
				SET user_level = " . USER . ( isset($rankcfg[RANK_CFG_MOD.',1']) ? ', user_rank = 0' : '' ) . "
				WHERE user_id IN ($unset_mod)";
			if ( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql);


			}
Någon som vet vad det kan vara ?
Feel the Force !
windsurf.se
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6565
Blev medlem: 2004-06-09 09:32
Svar: 1

Inlägg av Holger »

Se efter i uppdateringsanvisningarna (för du har väl uppdaterat till 2.0.18?!) om du har gjort rätt. Det verkar som om något har hamnat en rad för långt upp eller ner.
Holger Gremminger
Ingen support via PM!
Joakim
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 319
Blev medlem: 2003-10-19 18:26
Svar: 0

Inlägg av Joakim »

Hmm...visst har jag uppdaterat, men jag kan inte hitta något fel. Ersätter ju bara befintliga raden i just den filen också :?
Feel the Force !
windsurf.se
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6565
Blev medlem: 2004-06-09 09:32
Svar: 1

Inlägg av Holger »

Hos mig ser det ut så här:

Kod: Markera allt

		if ( $unset_mod != '' )
		{
			$sql = "UPDATE " . USERS_TABLE . " 
				SET user_level = " . USER . " 
				WHERE user_id IN ($unset_mod)";
			if( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, "Couldn't update user level", "", __LINE__, __FILE__, $sql);
			}
		}
EDIT! Tog fel ställe!!!
Holger Gremminger
Ingen support via PM!
Joakim
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 319
Blev medlem: 2003-10-19 18:26
Svar: 0

Inlägg av Joakim »

Vad menar du nu ? Gjorde du fel nu eller har jag gjort det ? :)
Feel the Force !
windsurf.se
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6565
Blev medlem: 2004-06-09 09:32
Svar: 1

Inlägg av Holger »

Detta har jag och det funkar bra:

Kod: Markera allt

      if ( $unset_mod != '' ) 
      { 
         $sql = "UPDATE " . USERS_TABLE . " 
            SET user_level = " . USER . " 
            WHERE user_id IN ($unset_mod)"; 
         if( !($result = $db->sql_query($sql)) ) 
         { 
            message_die(GENERAL_ERROR, "Couldn't update user level", "", __LINE__, __FILE__, $sql); 
         } 
      }
Det verkar som om något har blivit fel i din kod ...
Holger Gremminger
Ingen support via PM!
Joakim
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 319
Blev medlem: 2003-10-19 18:26
Svar: 0

Inlägg av Joakim »

Ser dina rader runt 550 ut sådär ?

Så här sitt mer ut runt dessa raderna:

Kod: Markera allt

if (sizeof($group_user))
		{
			$sql = "UPDATE " . USERS_TABLE . " 
				SET user_level = " . USER . ( isset($rankcfg[RANK_CFG_MOD.',1']) ? ', user_rank = 0' : '' ) . "
				WHERE user_id IN ($unset_mod)";
			if ( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql);
			}
		}

		if ( $unset_mod != '' )
		{
			$sql = "UPDATE " . USERS_TABLE . " 
				SET user_level = " . USER . " 
				WHERE user_id IN ($unset_mod)";
			if( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, "Couldn't update user level", "", __LINE__, __FILE__, $sql);
			}
		}

		message_die(GENERAL_MESSAGE, $message);
	}
}
Senast redigerad av Joakim den 2005-11-09 16:38, redigerad totalt 1 gång.
Feel the Force !
windsurf.se
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6565
Blev medlem: 2004-06-09 09:32
Svar: 1

Inlägg av Holger »

Japp!
Holger Gremminger
Ingen support via PM!
Joakim
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 319
Blev medlem: 2003-10-19 18:26
Svar: 0

Inlägg av Joakim »

Kolla igen...uppdaterade mitt förra inlägg....
Feel the Force !
windsurf.se
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6565
Blev medlem: 2004-06-09 09:32
Svar: 1

Inlägg av Holger »

Nä, du verkar ha en modd, mina ser ut så här:

Kod: Markera allt

		if (sizeof($group_user))
		{
			$sql = "UPDATE " . USERS_TABLE . " 
				SET user_level = " . USER . " 
				WHERE user_id IN (" . implode(', ', $group_user) . ") AND user_level = " . MOD;
			if ( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql);
			}
		}

		message_die(GENERAL_MESSAGE, $message);
	}
}
else if ( ( $mode == 'user' && ( isset($HTTP_POST_VARS['username']) || $user_id ) ) || ( $mode == 'group' && $group_id ) )
{
	if ( isset($HTTP_POST_VARS['username']) )
	{
		$this_userdata = get_userdata($HTTP_POST_VARS['username'], true);
		if ( !is_array($this_userdata) )
		{
			message_die(GENERAL_MESSAGE, $lang['No_such_user']);
		}
		$user_id = $this_userdata['user_id'];
	}
Ok, jag tror att det kan bero på att inte alla dina användare har tillordnats en grupp (det måste de vara).

Prova detta skript
http://www.phpbb.com/phpBB/viewtopic.ph ... highlight=

Kod: Markera allt

<?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); 

?>
Glöm inte att göra backup av dina databas först!
Holger Gremminger
Ingen support via PM!
Joakim
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 319
Blev medlem: 2003-10-19 18:26
Svar: 0

Inlägg av Joakim »

Fixade det. Hade på någotvis lagt modden på fel ställe. Det märkliga är att jag inte märkt det tidigare :)

Tack för hjälpen Holger
Feel the Force !
windsurf.se
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6565
Blev medlem: 2004-06-09 09:32
Svar: 1

Inlägg av Holger »

Låter bra! :-)
Holger Gremminger
Ingen support via PM!
Skriv svar

Vilka är online

Användare som besöker denna kategori: 11 och 0 gäster