我是使用 phpBB 2.0.6
一樣在安裝完 精華區 這個MOD之後,發生相同的問題
問題是發生在設定完成之後,Redirect 時候發生 Invalid_session 的問題
看了上面幾個文章,還有搜尋過的結果
我覺得應該不是因為 ip 改變的原因造成的
因為加入或刪除精華區的時候並不會改變到 ip 啊..
但是其實發生 Invalid_session 這個問題
並不會影響到精華區的設定
也就是說,雖然有錯誤訊息,但是跟設定是沒有關係的
後來我找了一下
將 modcp.php 的內容改了一下,就沒有錯誤訊息發生了
打開 modcp.php ,尋找\r
代碼: 選擇全部
//Excerption Mod by Howard
case 'excerption':
$topics = ( isset($HTTP_POST_VARS['topic_id_list']) ) ? $HTTP_POST_VARS['topic_id_list'] : array($topic_id);
$topic_id_sql = "";
for($i = 0; $i < count($topics); $i++)
{
if( $topic_id_sql != "")
{
$topic_id_sql .= ", ";
}
$topic_id_sql .= $topics[$i];
}
$sql = "UPDATE " . TOPICS_TABLE . "
SET topic_excerption = 1
WHERE topic_id IN ($topic_id_sql)
AND topic_moved_id = 0";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Could not update topics table!", "Error", __LINE__, __FILE__, $sql);
}
if( !empty($topic_id) )
{
[color=red]$redirect_page = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id");[/color]
$message = sprintf($lang['Click_return_topic'], '<a href="' . $redirect_page . '">', '</a>');
}
else
{
[color=red]$redirect_page = append_sid("modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id");[/color]
$message = sprintf($lang['Click_return_modcp'], '<a href="' . $redirect_page . '">', '</a>');
}
$message = $message . "<br \><br \>" . sprintf($lang['Click_return_forum'], '<a href="' . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id") . '">', '</a>');
$template->assign_vars(array(
"META" => '<meta http-equiv="refresh" content="3;url=' . $redirect_page . '">')
);
message_die(GENERAL_MESSAGE, $lang['Topics_Excerption'] . "<br /><br />" . $message);
break;
case 'unexcerption':
$topics = ( isset($HTTP_POST_VARS['topic_id_list']) ) ? $HTTP_POST_VARS['topic_id_list'] : array($topic_id);
$topic_id_sql = "";
for($i = 0; $i < count($topics); $i++)
{
if( $topic_id_sql != "")
{
$topic_id_sql .= ", ";
}
$topic_id_sql .= $topics[$i];
}
$sql = "UPDATE " . TOPICS_TABLE . "
SET topic_excerption = 0
WHERE topic_id IN ($topic_id_sql)
AND topic_moved_id = 0";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Could not update topics table!", "Error", __LINE__, __FILE__, $sql);
}
if( !empty($topic_id) )
{
[color=red]$redirect_page = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id");[/color]
$message = sprintf($lang['Click_return_topic'], '<a href="' . $redirect_page . '">', '</a>');
}
else
{
[color=red]$redirect_page = append_sid("modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id");[/color]
$message = sprintf($lang['Click_return_modcp'], '<a href="' . $redirect_page . '">', '</a>');
}
$message = $message . "<br \><br \>" . sprintf($lang['Click_return_forum'], '<a href="' . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id") . '">', '</a>');
$template->assign_vars(array(
"META" => '<meta http-equiv="refresh" content="3;url=' . $redirect_page . '">')
);
message_die(GENERAL_MESSAGE, $lang['Topics_Unexcerption'] . "<br /><br />" . $message);
break;
//Excerption Mod end
取代成
代碼: 選擇全部
//Excerption Mod by Howard
case 'excerption':
$topics = ( isset($HTTP_POST_VARS['topic_id_list']) ) ? $HTTP_POST_VARS['topic_id_list'] : array($topic_id);
$topic_id_sql = "";
for($i = 0; $i < count($topics); $i++)
{
if( $topic_id_sql != "")
{
$topic_id_sql .= ", ";
}
$topic_id_sql .= $topics[$i];
}
$sql = "UPDATE " . TOPICS_TABLE . "
SET topic_excerption = 1
WHERE topic_id IN ($topic_id_sql)
AND topic_moved_id = 0";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Could not update topics table!", "Error", __LINE__, __FILE__, $sql);
}
if( !empty($topic_id) )
{
[color=red]$redirect_page = "viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&sid=" . $userdata['session_id'];[/color]
$message = sprintf($lang['Click_return_topic'], '<a href="' . $redirect_page . '">', '</a>');
}
else
{
[color=red]$redirect_page = "modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&sid=" . $userdata['session_id'];[/color]
$message = sprintf($lang['Click_return_modcp'], '<a href="' . $redirect_page . '">', '</a>');
}
$message = $message . "<br \><br \>" . sprintf($lang['Click_return_forum'], '<a href="' . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id") . '">', '</a>');
$template->assign_vars(array(
"META" => '<meta http-equiv="refresh" content="3;url=' . $redirect_page . '">')
);
message_die(GENERAL_MESSAGE, $lang['Topics_Excerption'] . "<br /><br />" . $message);
break;
case 'unexcerption':
$topics = ( isset($HTTP_POST_VARS['topic_id_list']) ) ? $HTTP_POST_VARS['topic_id_list'] : array($topic_id);
$topic_id_sql = "";
for($i = 0; $i < count($topics); $i++)
{
if( $topic_id_sql != "")
{
$topic_id_sql .= ", ";
}
$topic_id_sql .= $topics[$i];
}
$sql = "UPDATE " . TOPICS_TABLE . "
SET topic_excerption = 0
WHERE topic_id IN ($topic_id_sql)
AND topic_moved_id = 0";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Could not update topics table!", "Error", __LINE__, __FILE__, $sql);
}
if( !empty($topic_id) )
{
[color=red]$redirect_page = "viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&sid=" . $userdata['session_id'];[/color]
$message = sprintf($lang['Click_return_topic'], '<a href="' . $redirect_page . '">', '</a>');
}
else
{
[color=red]$redirect_page = "modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&sid=" . $userdata['session_id'];[/color]
$message = sprintf($lang['Click_return_modcp'], '<a href="' . $redirect_page . '">', '</a>');
}
$message = $message . "<br \><br \>" . sprintf($lang['Click_return_forum'], '<a href="' . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id") . '">', '</a>');
$template->assign_vars(array(
"META" => '<meta http-equiv="refresh" content="3;url=' . $redirect_page . '">')
);
message_die(GENERAL_MESSAGE, $lang['Topics_Unexcerption'] . "<br /><br />" . $message);
break;
//Excerption Mod end
其實,就只是將變數 $redirect 的設定改掉 (上面程式碼紅色部分)
不使用 append_sid(); 這個 function 來加入 session_id
我參考了上面其他的 mode (鎖定和解除等)
好像也沒有用 append_sid(); ,不知道當初為什麼要這樣寫?
p.s:初次發表..有錯請多見諒..
