Seite 1 von 1

Prime Post Revisions Probleme mit dem Datenbankupdate

Verfasst: 11.06.2013 08:43
von Zebrafink
Hallo zusammen,

ich habe mir http://www.absoluteanime.com/forum/mods ... isions.zip
gezogen und wollte es nutzen. Die Anleitung habe ich genau befolgt,
aber die Datei update_db.php bringt mir die Meldung: Du hast keine Berechtigung, diesen Bereich zu betreten.

Ich habe mich nun wahnsinnig gegoogelt aber ich weis nicht woran es liegt.

in der datei steht:

Code: Alles auswählen

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

// SQL Statements
//---------------------------------------------------------------------------//
$mod_name = 'Prime Post Revisions';

$sql_array['install'][] = $db_tools->sql_create_table(POST_REVISIONS_TABLE, array(
	'COLUMNS' => array(
		'post_id' 			=> array('UINT', 0),
		'post_subject'		=> array('VCHAR', ''),
		'post_text'			=> array('MTEXT', ''),
		'bbcode_uid'		=> array('VCHAR:8', ''),
		'post_edit_time'	=> array('TIMESTAMP', 0),
		'post_edit_user'	=> array('UINT', 0),
		'post_edit_reason'	=> array('VCHAR', ''),
	)
));

$sql_array['remove'][] = $db_tools->sql_table_drop(POST_REVISIONS_TABLE);

/*
$sql_array['install'][] = 'CREATE TABLE ' . POST_REVISIONS_TABLE . ' (
							post_id mediumint(8) UNSIGNED DEFAULT "0" NOT NULL,
							post_subject varchar(255) DEFAULT "" NOT NULL,
							post_text mediumblob NOT NULL,
							bbcode_uid varchar(8) DEFAULT "" NOT NULL,
							post_edit_time int(11) UNSIGNED DEFAULT "0" NOT NULL,
							post_edit_user mediumint(8) UNSIGNED DEFAULT "0" NOT NULL,
							post_edit_reason varchar(255) DEFAULT "" NOT NULL,
							KEY post_id (post_id)
							) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;';

$sql_array['remove'][] = 'DROP TABLE IF EXISTS ' . POST_REVISIONS_TABLE;
*/
//---------------------------------------------------------------------------//

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

?>
was mache ich falsch?
Oder was verlangt die Datei was ich nicht habe?!?

Oder kann mir jemand sagen was bzw. wie ich es in der Datenbank anlegen muss das es geht?

Bin als Boardadministrator angemeldet, nach dem Ausführen werde ich aber immer direkt abgemeldet.

Gruß aus der Hilflosigkeit

Zebrafink

Re: Prime Post Revisions Probleme mit dem Datenbankupdate

Verfasst: 11.06.2013 10:01
von AYYILDIZLAR
Hallo,

Du hast auch die Datei update_db.php ins Root deines Forums gepackt, also da wo die config.php ist?


Grüße

Re: Prime Post Revisions Probleme mit dem Datenbankupdate

Verfasst: 11.06.2013 10:28
von Zebrafink
Hi und ja habe ich ist im selben Verzeichnis.

Liegt es vielleicht daran das das ganze auf xampp liegt?

Re: Prime Post Revisions Probleme mit dem Datenbankupdate

Verfasst: 11.06.2013 11:36
von AYYILDIZLAR
Ich benutze auch bei MOD Installationen xammp, das ist auch richtig so, so kannst du Fehler auf deinem Live-Forum verhindern. An xammp sollte es nicht liegen, gesagt, getan und da ich gerade Zeit hatte, habe ich mal die MOD bei mir lokal installiert.
Gleiche Fehlermeldung wie bei dir bei Aufruf der update_db.php Du hast keine Berechtigung, diesen Bereich zu betreten.
Also, das lag schonmal nicht an dir, würde ich mal so galopp sagen.

Hab mir jetzt mal die update_db.php angeschaut und war mal so frech und habe dies hier entfernt trigger_error($user->lang['NOT_AUTHORISED']); und danach nochmal update_db.php über mein Browser aufgerufen und voila die Datenbank lies sich aktualisieren. Bin kein Code Experte, aber es scheint so zu funktionieren. Probiere es bitte lokal aus und teste danach die MOD. Ich habe es soweit getestet und die MOD zeigt die bearbeiteten Beiträge der Mitglieder mit einem Link Zeige Beitragsversionen unterhalb der Beiträge an. Die MOD macht also das, was sie machen soll.

Re: Prime Post Revisions Probleme mit dem Datenbankupdate

Verfasst: 11.06.2013 12:27
von Zebrafink
Das hat geholfen :grin:

Vielen vielen Dank!