Moin.
Und zwar mache ich alles, was in der Anleitung steht.
Habe mindestens 4 mal alle Dateien durchgeschaut und trotzdem kein Fehler gefunden.
Wenn ich den Topic it einem Passwort versehen will kommt folgende Meldung:
Couldn't insert row in forums table
DEBUG MODE
SQL Error : 1064 You have an error in your SQL syntax near '0, 0, 0, 0, 0, 1, 1, 3, 3, 1, 1)' at line 2
INSERT INTO phpbb_forums (forum_id, forum_name, cat_id, forum_desc, forum_order, forum_status, forum_password, prune_enable, auth_view, auth_read, auth_post, auth_reply, auth_edit, auth_delete, auth_sticky, auth_announce, auth_vote, auth_pollcreate) VALUES ('14', 'Test', 2, '', 120, 0, 'hoherat' 0, 0, 0, 0, 0, 1, 1, 3, 3, 1, 1)
Line : 408
File : c:\apache\htdocs\phpbb\admin\admin_forums.php
Wo liegt da denn der Fehler?
Gruß,
Masacrime
[Problem] mit Password-protected forums 0.5.1
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
So. Danke. Das hat sich erledigt.
Jetzt habe ich einen Provider. Der Hack sollte jetzt eigentlich Funktionieren. Tut er aber nicht. Wenn ich alles so mache wie es in der Beschreibung steht kommt folgender Fehler.
Leute was ist denn da los. Ich sehe in der Beschreibung auch nicht, dass ich dort etwas reinschreiben soll.
Hier mal die Anleitung:
Kann mir da jemand helfen, oder Tipps geben?
Gruß,
Masacrime
Jetzt habe ich einen Provider. Der Hack sollte jetzt eigentlich Funktionieren. Tut er aber nicht. Wenn ich alles so mache wie es in der Beschreibung steht kommt folgender Fehler.
Code: Alles auswählen
Template->loadfile(): File /kunden/69304_22587/webseiten/community/templates/subSilver/password_body.tpl for handle body is empty
Hier mal die Anleitung:
Ich weiss es echt nicht. Dabei waren Hack immer so einfach zu machen.###############################################
## Hack Title: Password-protected forums
## Hack Version: 0.5.1
## Author: Freakin' Booty ;-P
## Description: Protect a forum from being viewed without a password. A password will have to be entered
## if one wants to enter the forum.
## Compatibility: 2.0.4 - 2.0.6
##
## Installation Level: Easy
## Installation Time: 20 - 25 minutes
## Files To Edit: 9
## posting.php
## search.php
## viewtopic.php
## viewforum.php
## admin/admin_forums.php
## includes/functions.php
## includes/sessions.php
## language/lang_english/lang_main.php
## templates/subSilver/admin/forum_edit_body.tpl
##
## Included Files: 2
## db_update.php
## templates/subSilver/password_body.tpl
##
## History:
## 0.5.1: Added the right password template file to the package.
## 0.5: Added extra security, flushing all passwords when the user logs in / logs out.
## Fixed a major bug, where users can read topics using the search function.
## 0.4: Restructured the code so it is compatible with Password-protected Topics.
## 0.3: Moved the password check until AFTER the auth check. This way, if a user is not auth-ed to view
## a forum, he will not know the forum exists.
## Admins and moderators now see the forum without a password.
## 0.2: Passwords are now stored in md5-format in the cookie.
## 0.1: Initial release
##
## Author Notes:
## - If you have Password-protected Topics already installed, some code will already be present. Be sure
## to use the install file "upgrade from Password-protected Topics x.x".
## Doing the upgrade will also make sure you get the latest version of Password-protected Topics.
## - The cookie for each forum expires after each session. This means users have to supply the password
## every time they visit the board. A session expires when you log in, log out, quit your browser or
## leave the website.
##
## Support: http://www.phpbbhacks.com/forums
## Copyright: ©2003 Password-protected forums 0.5.1 - Freakin' Booty ;-P
##
###############################################
## You downloaded this hack from phpBBHacks.com, the #1 source for phpBB related downloads.
## Please visit http://www.phpbbhacks.com/forums for support.
###############################################
##
###############################################
## This hack is released under the GPL License.
## This hack can be freely used, but not distributed, without permission.
## Intellectual Property is retained by the hack author(s) listed above.
###############################################
#
#-----[ COPY ]--------------------------------------------
#
# Run this file once as administrator and then delete it
#
db_update.php => db_update.php
#
#-----[ COPY ]--------------------------------------------
#
# Make sure to create a similar file for every template installed
#
templates/subSilver/password_body.tpl => templates/subSilver/password_body.tpl
#
#-----[ OPEN ]--------------------------------------------
#
posting.php
#
#-----[ FIND ]--------------------------------------------
#
//
// Set toggles for various options
//
#
#-----[ BEFORE, ADD ]-------------------------------------
#
//
// Password check
//
if( !$is_auth['auth_mod'] && $userdata['user_level'] != ADMIN )
{
$redirect = str_replace("&", "&", preg_replace('#.*?([a-z]+?\.' . $phpEx . '.*?)$#i', '\1', htmlspecialchars($HTTP_SERVER_VARS['REQUEST_URI'])));
if( $HTTP_POST_VARS['cancel'] )
{
redirect(append_sid("index.$phpEx"));
}
else if( $HTTP_POST_VARS['pass_login'] )
{
if( $post_info['topic_password'] != '' )
{
password_check('topic', $topic_id, $HTTP_POST_VARS['password'], $redirect);
}
else if( $post_info['forum_password'] != '' )
{
password_check('forum', $forum_id, $HTTP_POST_VARS['password'], $redirect);
}
}
if( $post_info['topic_password'] != '' && $mode != 'newtopic' )
{
$passdata = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_tpass']) ) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_tpass'])) : '';
if( $passdata[$topic_id] != md5($post_info['topic_password']) )
{
password_box('topic', $redirect);
}
}
else if( $post_info['forum_password'] != '' )
{
$passdata = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_fpass']) ) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_fpass'])) : '';
if( $passdata[$forum_id] != md5($post_info['forum_password']) )
{
password_box('forum', $redirect);
}
}
}
//
// END: Password check
//
#
#-----[ OPEN ]--------------------------------------------
#
search.php
#
#-----[ FIND ]--------------------------------------------
#
$auth_sql = '';
if ( $search_forum != -1 )
{
$is_auth = auth(AUTH_READ, $search_forum, $userdata);
if ( !$is_auth['auth_read'] )
#
#-----[ REPLACE WITH ]------------------------------------
#
$passdata = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_fpass']) ) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_fpass'])) : '';
$auth_sql = '';
if ( $search_forum != -1 )
{
$is_auth = auth(AUTH_ALL, $search_forum, $userdata);
$has_access = true;
if( !$is_auth['auth_mod'] && $userdata['user_level'] != ADMIN )
{
$sql = "SELECT forum_password FROM " . FORUMS_TABLE . " WHERE forum_id = " . $search_forum;
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not retrieve forum password information', '', __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if( $row['forum_password'] != '' && $passdata[$key] != md5($row['forum_password']) )
{
$has_access = false;
}
}
if ( !$is_auth['auth_read'] || !$has_access )
#
#-----[ FIND ]--------------------------------------------
#
$is_auth_ary = auth(AUTH_READ, AUTH_LIST_ALL, $userdata);
if ( $search_cat != -1 )
{
#
#-----[ REPLACE WITH ]------------------------------------
#
$is_auth_ary = auth(AUTH_ALL, AUTH_LIST_ALL, $userdata);
if ( $search_cat != -1 )
{
#
#-----[ FIND ]--------------------------------------------
#
$ignore_forum_sql = '';
while( list($key, $value) = each($is_auth_ary) )
{
if ( !$value['auth_read'] )
#
#-----[ REPLACE WITH ]------------------------------------
#
$ignore_forum_sql = '';
while( list($key, $value) = each($is_auth_ary) )
{
$has_access = true;
if( !$is_auth['auth_mod'] && $userdata['user_level'] != ADMIN )
{
$sql = "SELECT forum_password FROM " . FORUMS_TABLE . " WHERE forum_id = " . $key;
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not retrieve forum password information', '', __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if( $row['forum_password'] != '' && $passdata[$key] != md5($row['forum_password']) )
{
$has_access = false;
}
}
if ( !$value['auth_read'] || !$has_access )
#
#-----[ OPEN ]--------------------------------------------
#
viewforum.php
#
#-----[ FIND ]--------------------------------------------
#
//
// End of auth check
//
#
#-----[ AFTER, ADD ]--------------------------------------
#
//
// Password check
//
if( !$is_auth['auth_mod'] && $userdata['user_level'] != ADMIN )
{
$redirect = str_replace("&", "&", preg_replace('#.*?([a-z]+?\.' . $phpEx . '.*?)$#i', '\1', htmlspecialchars($HTTP_SERVER_VARS['REQUEST_URI'])));
if( $HTTP_POST_VARS['cancel'] )
{
redirect(append_sid("index.$phpEx"));
}
else if( $HTTP_POST_VARS['pass_login'] )
{
if( $forum_row['forum_password'] != '' )
{
password_check('forum', $forum_id, $HTTP_POST_VARS['password'], $redirect);
}
}
$passdata = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_fpass']) ) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_fpass'])) : '';
if( $forum_row['forum_password'] != '' && ($passdata[$forum_id] != md5($forum_row['forum_password'])) )
{
password_box('forum', $redirect);
}
}
//
// END: Password check
//
#
#-----[ OPEN ]--------------------------------------------
#
viewtopic.php
#
#-----[ FIND ]--------------------------------------------
#
$sql = "SELECT t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments" . $count_sql . "
#
#-----[ INLINE, FIND ]------------------------------------
#
, f.forum_status
#
#-----[ AFTER, ADD ]--------------------------------------
#
, f.forum_password
#
#-----[ FIND ]--------------------------------------------
#
$topic_time = $forum_topic_data['topic_time'];
#
#-----[ AFTER, ADD ]--------------------------------------
#
//
// Password check
//
if( !$is_auth['auth_mod'] && $userdata['user_level'] != ADMIN )
{
$redirect = str_replace("&", "&", preg_replace('#.*?([a-z]+?\.' . $phpEx . '.*?)$#i', '\1', htmlspecialchars($HTTP_SERVER_VARS['REQUEST_URI'])));
if( $HTTP_POST_VARS['cancel'] )
{
redirect(append_sid("index.$phpEx"));
}
else if( $HTTP_POST_VARS['pass_login'] )
{
if( $forum_topic_data['topic_password'] != '' )
{
password_check('topic', $topic_id, $HTTP_POST_VARS['password'], $redirect);
}
else if( $forum_topic_data['forum_password'] != '' )
{
password_check('forum', $forum_id, $HTTP_POST_VARS['password'], $redirect);
}
}
if( $forum_topic_data['topic_password'] != '' )
{
$passdata = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_tpass']) ) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_tpass'])) : '';
if( $passdata[$topic_id] != md5($forum_topic_data['topic_password']) )
{
password_box('topic', $redirect);
}
}
else if( $forum_topic_data['forum_password'] != '' )
{
$passdata = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_fpass']) ) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_fpass'])) : '';
if( $passdata[$forum_id] != md5($forum_topic_data['forum_password']) )
{
password_box('forum', $redirect);
}
}
}
//
// END: Password check
//
#
#-----[ OPEN ]--------------------------------------------
#
admin/admin_forums.php
#
#-----[ FIND ]--------------------------------------------
#
if( !empty($mode) )
{
switch($mode)
{
#
#-----[ BEFORE, ADD ]-------------------------------------
#
if( !empty($HTTP_POST_VARS['password']) )
{
if( !preg_match("#^[A-Za-z0-9]{3,20}$#si", $HTTP_POST_VARS['password']) )
{
message_die(GENERAL_MESSAGE, $lang['Only_alpha_num_chars']);
}
}
#
#-----[ FIND ]--------------------------------------------
#
$forumstatus = $row['forum_status'];
#
#-----[ AFTER, ADD ]--------------------------------------
#
$forum_password = $row['forum_password'];
#
#-----[ FIND ]--------------------------------------------
#
$forumstatus = FORUM_UNLOCKED;
#
#-----[ AFTER, ADD ]--------------------------------------
#
$forum_password = '';
#
#-----[ FIND ]--------------------------------------------
#
'L_FORUM_STATUS' => $lang['Forum_status'],
#
#-----[ AFTER, ADD ]--------------------------------------
#
'L_PASSWORD' => $lang['Forum_password'],
#
#-----[ FIND ]--------------------------------------------
#
'FORUM_NAME' => $forumname,
#
#-----[ AFTER, ADD ]--------------------------------------
#
'FORUM_PASSWORD' => $forum_password,
#
#-----[ FIND ]--------------------------------------------
#
$sql = "INSERT INTO " . FORUMS_TABLE . " (forum_id, forum_name, cat_id, forum_desc, forum_order, forum_status, prune_enable" . $field_sql . ")
VALUES ('" . $next_id . "', '" . str_replace("\'", "''", $HTTP_POST_VARS['forumname']) . "', " . intval($HTTP_POST_VARS[POST_CAT_URL]) . ", '" . str_replace("\'", "''", $HTTP_POST_VARS['forumdesc']) . "', $next_order, " . intval($HTTP_POST_VARS['forumstatus']) . ", " . intval($HTTP_POST_VARS['prune_enable']) . $value_sql . ")";
#
#-----[ INLINE, FIND ]------------------------------------
#
, forum_status
#
#-----[ AFTER, ADD ]--------------------------------------
#
, forum_password
#
#-----[ INLINE, FIND ]------------------------------------
#
, " . intval($HTTP_POST_VARS['forumstatus']) . "
#
#-----[ AFTER, ADD ]--------------------------------------
#
, '" . str_replace("\'", "''", $HTTP_POST_VARS['password']) . "'
#
#-----[ FIND ]--------------------------------------------
#
$sql = "UPDATE " . FORUMS_TABLE . "
SET forum_name = '" . str_replace("\'", "''", $HTTP_POST_VARS['forumname']) . "', cat_id = " . intval($HTTP_POST_VARS[POST_CAT_URL]) . ", forum_desc = '" . str_replace("\'", "''", $HTTP_POST_VARS['forumdesc']) . "', forum_status = " . intval($HTTP_POST_VARS['forumstatus']) . ", prune_enable = " . intval($HTTP_POST_VARS['prune_enable']) . "
#
#-----[ INLINE, FIND ]------------------------------------
#
, forum_status = " . intval($HTTP_POST_VARS['forumstatus']) . "
#
#-----[ AFTER, ADD ]--------------------------------------
#
, forum_password = '" . str_replace("\'", "''", $HTTP_POST_VARS['password']) . "'
#
#-----[ OPEN ]--------------------------------------------
#
includes/functions.php
#
#-----[ FIND ]--------------------------------------------
#
?>
#
#-----[ BEFORE, ADD ]-------------------------------------
#
//
// Password-protected topics/forums
//
function password_check ($mode, $id, $password, $redirect)
{
global $db, $template, $theme, $board_config, $lang, $phpEx, $phpbb_root_path, $gen_simple_header;
global $userdata;
global $HTTP_COOKIE_VARS;
$cookie_name = $board_config['cookie_name'];
$cookie_path = $board_config['cookie_path'];
$cookie_domain = $board_config['cookie_domain'];
$cookie_secure = $board_config['cookie_secure'];
switch($mode)
{
case 'topic':
$sql = "SELECT topic_password AS password FROM " . TOPICS_TABLE . " WHERE topic_id = $id";
$passdata = ( isset($HTTP_COOKIE_VARS[$cookie_name . '_tpass']) ) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookie_name . '_tpass'])) : '';
$savename = $cookie_name . '_tpass';
break;
case 'forum':
$sql = "SELECT forum_password AS password FROM " . FORUMS_TABLE . " WHERE forum_id = $id";
$passdata = ( isset($HTTP_COOKIE_VARS[$cookie_name . '_fpass']) ) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookie_name . '_fpass'])) : '';
$savename = $cookie_name . '_fpass';
break;
default:
$sql = '';
$passdata = '';
}
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not retrieve password', '', __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
if( $password != $row['password'] )
{
$message = ( $mode == 'topic' ) ? $lang['Incorrect_topic_password'] : $lang['Incorrect_forum_password'];
message_die(GENERAL_MESSAGE, $message);
}
$passdata[$id] = md5($password);
setcookie($savename, serialize($passdata), 0, $cookie_path, $cookie_domain, $cookie_secure);
$template->assign_vars(array(
'META' => '<meta http-equiv="refresh" content="3; url="' . $redirect . '" />'
)
);
$message = $lang['Password_login_success'] . '<br /><br />' . sprintf($lang['Click_return_page'], '<a href="' . $redirect . '">', '</a>');
message_die(GENERAL_MESSAGE, $message);
}
function password_box ($mode, $s_form_action)
{
global $db, $template, $theme, $board_config, $lang, $phpEx, $phpbb_root_path, $gen_simple_header;
global $userdata;
$l_enter_password = ( $mode == 'topic' ) ? $lang['Enter_topic_password'] : $lang['Enter_forum_password'];
$page_title = $l_enter_password;
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
$template->set_filenames(array(
'body' => 'password_body.tpl'
)
);
$template->assign_vars(array(
'L_ENTER_PASSWORD' => $l_enter_password,
'L_SUBMIT' => $lang['Submit'],
'L_CANCEL' => $lang['Cancel'],
'S_FORM_ACTION' => $s_form_action
)
);
$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
}
#
#-----[ OPEN ]--------------------------------------------
#
includes/sessions.php
#
#-----[ FIND ]--------------------------------------------
#
setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);
setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);
#
#-----[ AFTER, ADD ]--------------------------------------
#
setcookie($cookiename . '_fpass', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);
#
#-----[ FIND ]--------------------------------------------
#
setcookie($cookiename . '_data', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);
setcookie($cookiename . '_sid', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);
#
#-----[ AFTER, ADD ]--------------------------------------
#
setcookie($cookiename . '_fpass', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);
#
#-----[ OPEN ]--------------------------------------------
#
# Make sure to edit this file for every language installed
#
language/lang_english/lang_main.php
#
#-----[ FIND ]--------------------------------------------
#
//
// That's all, Folks!
// -------------------------------------------------
#
#-----[ BEFORE, ADD ]-------------------------------------
#
//
// Password-protected forums
//
$lang['Forum_password'] = 'Forum password';
$lang['Enter_forum_password'] = 'Enter forum password';
$lang['Incorrect_forum_password'] = 'Incorrect forum password';
$lang['Password_login_success'] = 'Password login was successfull';
$lang['Click_return_page'] = 'Click %sHere%s to return to the page';
$lang['Only_alpha_num_chars'] = 'The password must be between 3-20 characters and can only contain alphanumeric characters (A-Z, a-z, 0-9).';
#
#-----[ OPEN ]--------------------------------------------
#
# Make sure to edit this file for every template installed
#
templates/subSilver/admin/forum_edit_body.tpl
#
#-----[ FIND ]--------------------------------------------
#
<tr>
<td class="row1">{L_FORUM_STATUS}</td>
<td class="row2"><select name="forumstatus">{S_STATUS_LIST}</select></td>
</tr>
#
#-----[ AFTER, ADD ]--------------------------------------
#
<tr>
<td class="row1">{L_PASSWORD}</td>
<td class="row2"><input type="text" name="password" value="{FORUM_PASSWORD}" size="30" maxlength="20" /></td>
</tr>
#
#-----[ SAVE & CLOSE ALL FILES ]--------------------------
#
Kann mir da jemand helfen, oder Tipps geben?
Gruß,
Masacrime