Pagina 1 van 1

phpBB probleem

Geplaatst: 25 jun 2004, 17:04
door Lucky Luke
Ik ben ff phpBB aan het verbouwen :D
maar toch heb ik een probleem :(
ik heb een pagina, admin.php die normaal niet bij phpBB hoort. Nu wil ik ervoor zorgen dat alleen mods en admins daar kunnen komen.
ik heb dit:
admin.php

Code: Selecteer alles

<?
define('IN_PHPBB', true);
$phpbb_root_path = 'forum/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
include($phpbb_root_path . 'includes/functions_admin.'.$phpEx);

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

// session id check
if ($sid == '' || $sid != $userdata['session_id'])
{
        message_die(GENERAL_ERROR, 'Invalid_session');
}

$is_auth = auth(AUTH_ALL, $forum_id, $userdata);
if(!$is_auth['auth_mod'])
{
        message_die(GENERAL_MESSAGE, $lang['Not_Moderator'], $lang['Not_Authorised']);
}
$pagina = "Admin";
include("artiekelen/header.php"); ?>
<TABLE>
<TR class="butnobrdr">
        <TD><font class="16px">Kies een admin panel:</font></TD>
</TR>
<TR>
        <TD><a href="nieuws/nieuwsadmin.php">Nieuws Admin</a></TD>
</TR>
<TR>
        <TD><a href="artiekelen/artiekeladmin.php">Artiekelen Admin</a></TD>
</TR>
<? if($user_rang == 1) { ?><TR>
        <TD><a href="forum/admin/index.php?sid=15584b1200f2b9bb3e970ea1d88eb519">Forum Admin</a></TD>
</TR> <? } ?>
<TR>
        <TD><a href="artiekelen/artiekeladmin.php?actie=uitloggen">Uitloggen</a></TD>
</TR>
</TABLE>
</body>
</html>
maar krijg deze error:
phpBB : Critical Error

Error updating sessions table

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax near 'WHERE session_id = 'b05722659bb168de103166d1200ca0df'' at line 3

UPDATE phpbb_sessions SET session_time = 1088176952, session_page = WHERE session_id = 'b05722659bb168de103166d1200ca0df'

Line : 267
File : /usr/local/psa/home/vhosts/rctlucky.nl/subdomains/zeldacastle/httpdocs/forum/includes/sessions.php
stukje van sessions.php:

Code: Selecteer alles

                                //
                                // Only update session DB a minute or so after last update
                                //
                                if ( $current_time - $userdata['session_time'] > 60 )
                                {
                                        $sql = "UPDATE " . SESSIONS_TABLE . "
                                                SET session_time = $current_time, session_page = $thispage_id
                                                WHERE session_id = '" . $userdata[session_id] . "'";
                                        if ( !$db->sql_query($sql) )
                                        {
                                                message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);
                                        }
Ik ben dan nog niet echt een PHP wonder, maar ik kan het al aardig :)

Geplaatst: 25 jun 2004, 18:19
door mosymuis

Code: Selecteer alles

session_pagestart($user_ip, $forum_id);
Hoe moet hij aan $forum_id komen? Omdat hij die niet kent ontstaat er een lege plek in de sessie query. Geef daarom een bestaande page constante mee aan de functie. Deze defineer je in includes/constants.php, onder

Code: Selecteer alles

define('PAGE_TOPIC_OFFSET', 5000);
Klik hier voor meer informatie over de getallen.

Geplaatst: 25 jun 2004, 19:06
door Lucky Luke
dus als ik het goed begrijp moet ik onder

Code: Selecteer alles

define('PAGE_TOPIC_OFFSET', 5000);

Code: Selecteer alles

define('PAGE_ADMIN, -12);
bijv. zetten?

Geplaatst: 25 jun 2004, 19:13
door mosymuis
Ja, en

Code: Selecteer alles

$userdata = session_pagestart($user_ip, $forum_id);
vervangen voor

Code: Selecteer alles

$userdata = session_pagestart($user_ip, PAGE_ADMIN);

Geplaatst: 25 jun 2004, 19:33
door Lucky Luke
toch nog (denk ik) klein probleempje...
Ik krijg nu steeds Invalid Session :(

Geplaatst: 26 jun 2004, 20:38
door Lucky Luke
hmm... niemand?

Geplaatst: 27 jun 2004, 12:36
door -=|Rik|=-
Lucky Luke schreef:dus als ik het goed begrijp moet ik onder

Code: Selecteer alles

define('PAGE_TOPIC_OFFSET', 5000);

Code: Selecteer alles

define('PAGE_ADMIN, -12);
bijv. zetten?
^^ kijk even of je daar wel een ' hebt staan achter PAGE_ADMIN

Anders moet je die even toevoegen :)

Geplaatst: 27 jun 2004, 18:17
door Lucky Luke
Ok, ik heb dat met die session_is check maar gewoon weg gehaald. Nu krijg ik iig niet meer de message invalid session.
Maar nu krijg ik de message Not Admin :S
ik heb dit nu als code:

Code: Selecteer alles

<?
define('IN_PHPBB', true);
$phpbb_root_path = '';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
include($phpbb_root_path . 'includes/functions_admin.'.$phpEx);




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


if ($userdata['user_level'] != ADMIN || $userdata['user_level'] != MOD)
{
        message_die(GENERAL_MESSAGE, "Not admin");
}
$pagina = "Admin";
include("artiekelen/header.php"); ?>
<TABLE>
<TR class="butnobrdr">
        <TD><font class="16px">Kies een admin panel:</font></TD>
</TR>
<TR>
        <TD><a href="nieuws/nieuwsadmin.php">Nieuws Admin</a></TD>
</TR>
<TR>
        <TD><a href="artiekelen/artiekeladmin.php">Artiekelen Admin</a></TD>
</TR>
<? if($userdata['userlevel'] == ADMIN) { ?><TR>
        <TD><a href="forum/admin/index.php?sid=15584b1200f2b9bb3e970ea1d88eb519">Forum Admin</a></TD>
</TR> <? } ?>
<TR>
        <TD><a href="artiekelen/artiekeladmin.php?actie=uitloggen">Uitloggen</a></TD>
</TR>
</TABLE>
</body>
</html>

Geplaatst: 27 jun 2004, 19:51
door -=|Rik|=-
Er staat

als de gebruiker geen admin is OF als de gebruiker geen moderator is dan ERROR!

Maar je kan niet EN admin EN moderator zijn qua user_level

dus de correcte code zou moeten zijn

Code: Selecteer alles

if ($userdata['user_level'] != ADMIN && $userdata['user_level'] != MOD) 

Geplaatst: 28 jun 2004, 06:42
door Lucky Luke
ach tuurlijk :roll: super thnx! :)