Página 1 de 2

DEBUG error en pestaña Permiso del ACP

Publicado: 19 Jul 2012, 20:52
por Persephone
Buenas, antes que nada decir que he buscado por el buscador y no he encontrado nada. Siento si me pase algún tema similar pero no di con ninguno. Bien, llevo desde ayer con el modo DEBUG puesto porque hubo un "incidente" algo extraño con un usuario y quería ver si había alguna parte del foro que me arrojara algún error. Hasta ahora no me había dado ninguno, pero cual ha sido mi sorpresa al arrojarme uno ahora mismo en el ACP.

Aclaro la ruta:

ACP > Usuarios y Grupos > Administrar Usuarios > Usuario X > Permisos

Decir que tampoco me lo hace con todos los usuarios... que es lo más extraño :? y si llego a permisos desde otra ruta (como desde la pestaña permisos directamente) tampoco me tira el error. Le doy actualizar y carga bien la pagina desapareciendo el error del DEBUG :S

Este es el error que me arroja:

Código: Seleccionar todo

[phpBB Debug] PHP Notice: in file [ROOT]/includes/auth.php on line 889: Undefined index: 122
[phpBB Debug] PHP Notice: in file [ROOT]/includes/auth.php on line 889: Undefined index: 122
[phpBB Debug] PHP Notice: in file [ROOT]/includes/auth.php on line 890: Undefined offset: 0
[phpBB Debug] PHP Warning: in file [ROOT]/adm/index.php on line 150: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3819)
[phpBB Debug] PHP Warning: in file [ROOT]/adm/index.php on line 152: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3819)
[phpBB Debug] PHP Warning: in file [ROOT]/adm/index.php on line 153: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3819)
[phpBB Debug] PHP Warning: in file [ROOT]/adm/index.php on line 154: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3819)
¿Alguien sabe a que es debido y como puedo solucionarlo? Los datos de soporte están en mi firma.

Re: DEBUG error en pestaña Permiso del ACP

Publicado: 19 Jul 2012, 22:09
por Makoto
haber usa el STK y en administracion heramientas de soporte/remover permisos duplicados

pues creo que son permisos que no existen 8-)

Re: DEBUG error en pestaña Permiso del ACP

Publicado: 19 Jul 2012, 22:47
por Persephone
Hola Makoto, gracias por responder.
He instalado el stk y he hecho lo que me has dicho, pero me dice esto:

Código: Seleccionar todo

Información

La herramienta ha finalizado la comprobación y no ha encontrado permisos duplicados.

Volver a la herramienta anterior
Indicé de Support Toolkit
Y me sigue dando el mismo error el DEBUG :(

Re: DEBUG error en pestaña Permiso del ACP

Publicado: 19 Jul 2012, 22:57
por Makoto
al actualizar no te tiro errores?

Re: DEBUG error en pestaña Permiso del ACP

Publicado: 19 Jul 2012, 23:02
por Persephone
¿Te refieres al actualizar a 3.0.10? No, no me tiro ningún error.
Si por el contrario dices al actualizar el navegador después de hacer lo de la stk si, sigue dando el mismo error el DEBUG :(

Re: DEBUG error en pestaña Permiso del ACP

Publicado: 20 Jul 2012, 01:29
por Persephone
Siento el doble post, pero es que no me deja editar mi mensaje anterior.

Bien ahora ya no solo da error el DEBUG donde he dicho antes, tambien lo da en el indice del foro :(

Código: Seleccionar todo

[phpBB Debug] PHP Notice: in file [ROOT]/includes/auth.php  on line 889: Undefined index: 122
[phpBB Debug] PHP Notice: in file [ROOT]/includes/auth.php on line 889: Undefined index: 122
[phpBB Debug] PHP Notice: in file [ROOT]/includes/auth.php on line 890: Undefined offset: 0
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4791: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3819)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4793: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3819)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4794: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3819)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4795: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3819)
Como podéis ver es más o menos el mismo error que arroja en la pestaña antes mencionada del ACP. Os pongo las lineas en cuestión.

/includes/auth.php (lineas 889,890)

Código: Seleccionar todo

$flag = substr($this->acl_options['option'][$option_id], 0, strpos($this->acl_options['option'][$option_id], '_') + 1);
$flag = (int) $this->acl_options['id'][$flag];
/includes/functions.php (lineas 4791, 4793, 4794, 4795)

Código: Seleccionar todo

header('Content-type: text/html; charset=UTF-8');

header('Cache-Control: private, no-cache="set-cookie"');
header('Expires: 0');
header('Pragma: no-cache');
/includes/functions.php (linea 3819)

Código: Seleccionar todo

echo '<b>[phpBB Debug] ' . $error_name . '</b>: in file <b>' . $errfile . '</b> on line <b>' . $errline . '</b>: <b>' . $msg_text . '</b><br />' . "\n";
Y el primer erro DEBUG que es él del primer mensaje de mi tema, es todas las lineas anteriores más estas:

/adm/index.php (lineas 150, 152, 153, 154)

Código: Seleccionar todo

header('Content-type: text/html; charset=UTF-8');

header('Cache-Control: private, no-cache="set-cookie"');
header('Expires: 0');
header('Pragma: no-cache');
¿Alguna idea de que es y que debo hacer por favor? u.u

Re: DEBUG error en pestaña Permiso del ACP

Publicado: 20 Jul 2012, 15:11
por Makoto
hasta donde sé esto es

Código: Seleccionar todo

$flag = substr($this->acl_options['option'][$option_id], 0, strpos($this->acl_options['option'][$option_id], '_') + 1);
$flag = (int) $this->acl_options['id'][$flag];
es para marcar temas, u_u despues no se que mas puede ser u_u

Re: DEBUG error en pestaña Permiso del ACP

Publicado: 20 Jul 2012, 15:23
por Persephone
¿Pero en las líneas que señala no hay ningún error? :?
Yo es que no se que más hacer, ayer desinstale el último mod que instale hace poco para ver si era de eso. Pero nada, el error seguía por lo que lo descarte :(

Re: DEBUG error en pestaña Permiso del ACP

Publicado: 21 Jul 2012, 02:22
por leviatan21
Persephone escribió:¿Pero en las líneas que señala no hay ningún error? :?
Yo es que no se que más hacer, ayer desinstale el último mod que instale hace poco para ver si era de eso. Pero nada, el error seguía por lo que lo descarte :(
En esas lineas no hay error, el error es que en esas lineas se hace referencia a permisos de grupos y si quitaste algún MOD que en su momento agregó los permisos, y no fueron debidamente eliminados de la base, quedan esas referencias.

Re: DEBUG error en pestaña Permiso del ACP

Publicado: 21 Jul 2012, 14:37
por Persephone
¿Hay alguna manera de solucionarlo o averiguar que mod es el que ha dejado restos en la base de datos? u.u
Si lo dejo tal como esta dara algun problema?

Re: DEBUG error en pestaña Permiso del ACP

Publicado: 21 Jul 2012, 20:32
por Makoto
podrias ir al acp, permisos/roles de usuario/ y darles enviar a todos xD haci "creo" que los permisos se vas a actualizar

Re: DEBUG error en pestaña Permiso del ACP

Publicado: 21 Jul 2012, 20:58
por Persephone
¿Puedes explicarme mejor que quieres decir Makoto? Es que no entendí nada, a veces ando un poco lenta lo siento jajaja

Creo haber encontrado el mod que dejo el resto en la base de datos, lo se porque dejo otro resto en el panel que ando ahora mismo quitando después de pasarme todo el tiempo investigando los archivos en los que esta el error del DEBUG. El mod es el Prime Trash Bin. Este mod solo trae un update para la base de datos. Es un scrip para hacer las consultas de manera automática en esta, con solo subirlo al servidor y abrirlo en el navegador. El problema (y de ahí que este los restos en la base de datos) es que este scrip no es como otros que he visto, que tiene la opción de desistalar ademas de instalar. Por lo que, no se como invertir el proceso en la base de datos :s

Aquí esta el update en cuestión, por si podéis indicarme como eliminar los cambios hechos por el en la base de datos :(

Código: Seleccionar todo

<?php
/**
*
* @copyright (c) 2011 Ken F. Innes IV
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
* Instructions: You must be logged in as an administrator to use this file.
* Copy this file to your phpBB root directory, then access it from your browser.
* Make sure to delete this file when the update is complete.
*/

/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/db/db_tools.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('acp/common');
if (!$auth->acl_get('a_'))
{
	trigger_error($user->lang['NOT_AUTHORISED']);
}

$message = '';
$error = false;
$sql_array = array();
$db->sql_return_on_error(true);
$db_tools = new phpbb_db_tools($db);
$db_tools->return_statements = true;

/**
* Build an SQL query string for adding a new permission if it does not already exist.
*/
function sql_add_permission($data)
{
	global $db;
	
	$sql_query = 'SELECT COUNT(*) as total FROM ' . ACL_OPTIONS_TABLE . " WHERE auth_option = '{$data['auth_option']}'";
	$result = $db->sql_query($sql_query);
	$total = (int) $db->sql_fetchfield('total');
	$db->sql_freeresult($result);
	$sql_query = !empty($total) ? '' : 'INSERT INTO ' . ACL_OPTIONS_TABLE . ' ' . $db->sql_build_array('INSERT', $data);
	return $sql_query;
}

// SQL Statements
//---------------------------------------------------------------------------//
$mod_name = 'Prime Trash Bin';

$sql_array['install'][] = sql_add_permission(array('auth_option' => 'f_delete_forever',	'is_global' => 0, 'is_local' => 1, 'founder_only' => 0));
$sql_array['install'][] = sql_add_permission(array('auth_option' => 'f_undelete',			'is_global' => 0, 'is_local' => 1, 'founder_only' => 0));
$sql_array['install'][] = sql_add_permission(array('auth_option' => 'm_delete_forever',	'is_global' => 1, 'is_local' => 1, 'founder_only' => 0));
$sql_array['install'][] = sql_add_permission(array('auth_option' => 'm_undelete',			'is_global' => 1, 'is_local' => 1, 'founder_only' => 0));
$schema_changes = array(
	'add_columns' => array(
		TOPICS_TABLE => array(
			'topic_deleted_from'	=> array('UINT', 0),
			'topic_deleted_user'	=> array('UINT', 0),
			'topic_deleted_time'	=> array('TIMESTAMP', 0),
			'topic_deleted_reason'	=> array('VCHAR_UNI', ''),
		),
		POSTS_TABLE => array(
			'post_deleted_from'		=> array('UINT', 0),
			'post_deleted_user'		=> array('UINT', 0),
			'post_deleted_time'		=> array('TIMESTAMP', 0),
			'post_deleted_reason'	=> array('VCHAR_UNI', ''),
		),
	),
);
$sql_array['install'] = array_merge($sql_array['install'], $db_tools->perform_schema_changes($schema_changes));


$sql_array['remove'][] = 'DELETE FROM ' . ACL_OPTIONS_TABLE . ' WHERE auth_option = \'f_delete_forever\'';
$sql_array['remove'][] = 'DELETE FROM ' . ACL_OPTIONS_TABLE . ' WHERE auth_option = \'f_undelete\'';
$sql_array['remove'][] = 'DELETE FROM ' . ACL_OPTIONS_TABLE . ' WHERE auth_option = \'m_delete_forever\'';
$sql_array['remove'][] = 'DELETE FROM ' . ACL_OPTIONS_TABLE . ' WHERE auth_option = \'m_undelete\'';
$schema_changes = array(
	'drop_columns' => array(
		TOPICS_TABLE => array(
			'topic_deleted_from',
			'topic_deleted_user',
			'topic_deleted_time',
			'topic_deleted_reason',
		),
		POSTS_TABLE => array(
			'post_deleted_from',
			'post_deleted_user',
			'post_deleted_time',
			'post_deleted_reason',
		),
	),
);
$sql_array['remove'] = array_merge($sql_array['remove'], $db_tools->perform_schema_changes($schema_changes));

//---------------------------------------------------------------------------//

// Language strings
$user->add_lang('install');
$user->add_lang('acp/common');
$user->lang['SQL_STATEMENT_SQL']    	= $user->lang['SQL'];
$user->lang['SQL_STATEMENT_SUCCESS']	= $user->lang['DONE'];
$user->lang['SQL_STATEMENT_FAILURE']	= $user->lang['ERROR'];
$user->lang['SQL_RESULT_SUCCESS']		= $user->lang['UPDATE_DB_SUCCESS'];
$user->lang['SQL_RESULT_FAILURE']		= $user->lang['SOME_QUERIES_FAILED'];
$user->lang['DB_UPDATE_TITLE']			= $user->lang['STAGE_UPDATE_DB'];
$user->lang['DB_UPDATE_INSTALL']		= $user->lang['INSTALL'];
$user->lang['DB_UPDATE_REMOVE']			= $user->lang['REMOVE'];
$user->lang['DB_UPDATE_PREVIEW']		= $user->lang['PREVIEW'];
$user->lang['DB_UPDATE_EXECUTE']		= $user->lang['RUN_DATABASE_SCRIPT']; // $user->lang['SUBMIT']
$user->lang['DB_UPDATE_NONE']			= $user->lang['NA'];

function execute_sql_list($sql_list, $preview = false)
{
	global $user, $db, $error;
	
	$message = '';
	foreach ($sql_list as $sql_query)
	{
		if (is_array($sql_query))
		{
			$message .= execute_sql_list($sql_query, $preview);
		}
		else if ($sql_query === 'begin' || $sql_query === 'commit')
		{
			$db->sql_transaction($sql_query);
		}
		else if (!empty($sql_query))
		{
			$result_msg = '';
			if (!$preview)
			{
				$result = $db->sql_query($sql_query);
				if ($result)
				{
					$result_msg = '<strong style="color:green;">' . $user->lang['SQL_STATEMENT_SUCCESS'] . '!</strong>';
				}
				else
				{
					$error = true;
					$db_error = $db->sql_error();
					$result_msg = '<span style="color:red;"><strong>' . $user->lang['SQL_STATEMENT_FAILURE'] . ': </strong>' . $db_error['message'] . '</span>';
				}
			}
			$message .= '<span style="display:block;background-color:#FAFAFA;color:#333;padding-left:4px;padding-right:4px;"><span style="font-family:\'Courier New\',monospace"><strong>' . $user->lang['SQL_STATEMENT_SQL'] . ': </strong>' . $sql_query . '</span><br/>' . $result_msg . '</span>';
			$message .= '<br/>';
		}
	}
	return $message;
}

$msg_title = $user->lang['DB_UPDATE_TITLE'] . (!empty($mod_name) ? ': ' . $mod_name : '');
$db_update_mode = request_var('db_update_mode', '');
$db_update_preview = request_var('db_update_preview', '');
$sql_list = isset($sql_array[$db_update_mode]) ? $sql_array[$db_update_mode] : array();

$db_update_form = '
	</p><form action="" method="post" style="margin-bottom:1em;"><fieldset><legend style="display:none;">' . $mod_name . '</legend><p>
		<label><input type="radio" name="db_update_mode" value="install" class="radio" ' . ($db_update_mode != 'remove' ? ' checked="checked"' : '') . '/> ' . $user->lang['DB_UPDATE_INSTALL'] . '</label>
		<label><input type="radio" name="db_update_mode" value="remove" class="radio"' . ($db_update_mode == 'remove' ? ' checked="checked"' : '') . '/> ' . $user->lang['DB_UPDATE_REMOVE'] . '</label>
		<br/><br/>
		<input type="submit" value="' . $user->lang['DB_UPDATE_EXECUTE'] . '" class="button1"/> &nbsp;
		<input type="submit" value="' . $user->lang['DB_UPDATE_PREVIEW'] . '" class="button1" name="db_update_preview"/>
	</p></fieldset></form><p>
';

if (isset($_POST['db_update_mode']) && empty($db_update_preview) && !empty($sql_list) && ($db_update_mode == 'install' || $db_update_mode == 'remove'))
{
	// Begin executing SQL statements
	$results_msg = execute_sql_list($sql_list);

	// Final result
	if ($error == true)
	{
		$message .= '<span style="border:1px solid #A00;background-color:#FEE;display:block;padding:2px;"><strong>' . $user->lang['RESULT'] . ': </strong>' . $user->lang['SQL_RESULT_FAILURE'] . '</span><br/>' . $results_msg;
	}
	else if (!empty($results_msg))
	{
		$message .= '<span style="border:1px solid #0A0;background-color:#EFE;display:block;padding:2px;"><strong>' . $user->lang['RESULT'] . ': </strong>' . $user->lang['SQL_RESULT_SUCCESS'] . '</span><br/>' . $results_msg;
	}
	else
	{
		$message .= $db_update_form . '<strong>' . $user->lang['RESULT'] . ': </strong>' . $user->lang['DB_UPDATE_NONE'];
	}

	$cache->purge();
}
else
{
	$message = $db_update_form;
	
	// Preview
	if (strcmp($db_update_preview, $user->lang['DB_UPDATE_PREVIEW']) === 0)
	{
		$message .= '<strong>' . $user->lang['DB_UPDATE_PREVIEW'] . ': </strong>';
		$results_msg = execute_sql_list($sql_list, true);
		$message .= empty($results_msg) ? $user->lang['DB_UPDATE_NONE'] : $results_msg;
	}
}
trigger_error($message);

?>

Re: DEBUG error en pestaña Permiso del ACP

Publicado: 22 Jul 2012, 17:24
por Alorse
Has verificado que no sea un error de mala codificación o edición de idioma?
Muchas veces dicho error suele ser por eso, para comprobarlo cambia tu idioma a ingles y vuelve a mirar si sale el error en el ACP.

Re: DEBUG error en pestaña Permiso del ACP

Publicado: 22 Jul 2012, 23:27
por Persephone
Sigue dando el mismo error alorse, pero la verdad es que en los dos sitios que arroja el DEBUG el error hace referencia a las lineas que habla sobre codificación en UTF8. Hace poco cambien en la base de datos el cortejamiento de latin a UTF8-bin ¿puede ser por eso?

Re: DEBUG error en pestaña Permiso del ACP

Publicado: 23 Jul 2012, 00:58
por Alorse
Persephone escribió:Hace poco cambien en la base de datos el cortejamiento de latin a UTF8-bin ¿puede ser por eso?
Lo más seguro, tienes una copia? (solo para verificar si es eso)