Statistik |
Beiträge: 144.531 (Täglich: 19,19 )
Themen: 16.700
Mitglieder: 13.209
Neuestes Mitglied: zitronentee.
Ausl. d. letzten Minute: 253%
Ausl. d. letzten 5 Minuten: 209%
Ausl. d. letzten 15 Minuten: 232%
Aktulle Uhrzeit: 19:12
Freier Webspace: 4.04 TB
PHP-Version: 7.4.33
|
|
|
|
|
split/fusion weiße seite nach send, aber ausführung |
|
split/fusion weiße seite nach send, aber ausführung |
|
ich habe ein kleines problem mit dem split/fusion hack. er funktioniert, das gleich zu beginn gesagt. man kann die themen teilen und/oder zusammenfügen. aber, wenn man auf senden klickt, erhält man eine weiße seite, sollte aber eigentlich in das neue bzw zusammengefügte thema geführt werden.
seit etwa einer stunde werkel ich daran rum, aber mir mag es einfach nicht gelingen den fehler zu finden. ich habe es bereits mit den anderen funktionen in der modcp.php verglichen, aber konnte keine großen unterschiede erkennen.
ferner erhalte ich eine deprecated fehlermeldung (verweis auf zeile 7 des gleich folgenden code), mit der ich aktuell nicht viel anfangen kann. vielleicht mag mir jemand helfen und super gerne auch viel erklären. ich mag das verstehen.
der code:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
|
if($action=="thread_fusion") {
if(!$ismod) access_error();
if($_POST['send']=="send") {
list($tmp,$query) = explode("?",$_POST['fusion_thread']);
$query = explode("&",$query);
while(list($key,$val) = each($query)) {
list($key,$val) = explode("=",$val);
if($key == "threadid") {
$fusion_threadid = $val;
break;
}
if($key == "postid") {
$fusion_postid = $val;
break;
}
}
if(!$fusion_postid && !$fusion_threadid) eval("error(\"".$tpl->get("error_cantmerge")."\");");
if($fusion_postid) $fusion_thread = $db->query_first("SELECT t.* FROM bb".$n."_posts p, bb".$n."_threads t WHERE p.threadid=t.threadid AND p.postid='$fusion_postid'");
if($fusion_threadid) $fusion_thread = $db->query_first("SELECT * FROM bb".$n."_threads WHERE threadid='$fusion_threadid'");
// update new thread
if($fusion_thread['lastposttime']>$thread['lastposttime']) {
if($fusion_thread['starttime']<$thread['starttime']) $db->query("UPDATE bb".$n."_threads SET replycount=replycount+'".($fusion_thread['replycount']+1)."', views=views+'".$fusion_thread['views']."', attachments=attachments+'".$fusion_thread['attachments']."', lastposttime='".$fusion_thread['lastposttime']."', lastposterid='".$fusion_thread['lastposterid']."', lastposter='".addslashes($fusion_thread['lastposter'])."', starttime='".$fusion_thread['starttime']."', starterid='".$fusion_thread['starterid']."', starter='".addslashes($fusion_thread['starter'])."' WHERE threadid='$threadid'");
else $db->query("UPDATE bb".$n."_threads SET replycount=replycount+'".($fusion_thread['replycount']+1)."', views=views+'".$fusion_thread['views']."', attachments=attachments+'".$fusion_thread['attachments']."', lastposttime='".$fusion_thread['lastposttime']."', lastposterid='".$fusion_thread['lastposterid']."', lastposter='".addslashes($fusion_thread['lastposter'])."' WHERE threadid='$threadid'");
}
else {
if($fusion_thread['starttime']<$thread['starttime']) $db->query("UPDATE bb".$n."_threads SET replycount=replycount+'".($fusion_thread['replycount']+1)."', views=views+'".$fusion_thread['views']."', attachments=attachments+'".$fusion_thread['attachments']."', starttime='".$fusion_thread['starttime']."', starterid='".$fusion_thread['starterid']."', starter='".addslashes($fusion_thread['starter'])."' WHERE threadid='$threadid'");
else $db->query("UPDATE bb".$n."_threads SET replycount=replycount+'".($fusion_thread['replycount']+1)."', views=views+'".$fusion_thread['views']."', attachments=attachments+'".$fusion_thread['attachments']."' WHERE threadid='$threadid'");
}
// delete old thread and announcement
$db->query("DELETE FROM bb".$n."_threads WHERE threadid = '$fusion_threadid'");
if($fusion_thread['important']==2) $db->query("DELETE FROM bb".$n."_announcements WHERE threadid = '$fusion_threadid'",1);
// delete old subscriptions
$db->query("DELETE FROM bb".$n."_subscribethreads WHERE threadid='$fusion_thread[threadid]'");
// delete old poll
if($fusion_thread['pollid']){
$db->query("DELETE FROM bb".$n."_polls WHERE pollid='$fusion_thread[pollid]'");
$db->query("DELETE FROM bb".$n."_polloptions WHERE pollid='$fusion_thread[pollid]'");
$db->query("DELETE FROM bb".$n."_votes WHERE id='$fusion_thread[pollid]' AND votemode=1");
}
// update posts
$db->query("UPDATE bb".$n."_posts SET threadid='$threadid' WHERE threadid='$fusion_threadid'");
if($fusion_thread['boardid'] == $boardid) {
$db->query("UPDATE bb".$n."_boards SET threadcount=threadcount-1 WHERE boardid IN ($boardid,$board[parentlist])");
if($board['lastthreadid'] == $fusion_threadid) $db->query("UPDATE bb".$n."_boards SET lastthreadid='$threadid' WHERE boardid IN ($boardid,$board[parentlist]) AND lastthreadid='$fusion_threadid'");
}
else {
$fusion_board = $db->query_first("SELECT * FROM bb".$n."_boards WHERE boardid='".$fusion_thread['boardid']."'");
$db->query("UPDATE bb".$n."_boards SET threadcount=threadcount-1, postcount=postcount-'".($fusion_thread['replycount']+1)."' WHERE boardid IN (".$fusion_board['boardid'].",".$fusion_board['parentlist'].")");
$db->query("UPDATE bb".$n."_boards SET postcount=postcount+'".($fusion_thread['replycount']+1)."' WHERE boardid IN ($boardid,".$board['parentlist'].")");
if($fusion_board['lastthreadid'] == $fusion_threadid) updateBoardInfo("$fusion_board[boardid], $fusion_board[parentlist]", 0, $fusion_threadid);
if($board['lastposttime'] <= $fusion_thread['lastposttime']) updateBoardInfo("$boardid, $board[parentlist]", $fusion_thread['lastposttime']);
}
header("Location: thread.php?threadid=$threadid&sid=$session[hash]");
exit();
}
else {
$navbar=getNavbar($board['parentlist']);
eval ("\$navbar .= \"".$tpl->get("navbar_board")."\";");
eval("\$tpl->output(\"".$tpl->get("modcp_thread_fusion")."\");");
}
} |
|
|
|
12.04.2022 14:05 |
|
|
|
ich habe es hinbekommen, hoffe ich und lasse die lösung mal hier.
ersetze
php: |
1:
|
while(list($key,$val) = each($query)) { |
|
mit
php: |
1:
|
foreach($query as $key => $val) { |
|
und hoffe, dass das kein mumpitz ist. aber es macht jetzt genau das, was es soll und die weiße seite ist weg.
|
|
12.04.2022 19:50 |
|
|
|
|
|
|