PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : kleines problem mit bedanko


asus
07.08.2010, 23:17
ich hab bei mir im forum ein kleines problem
wenn ich mich bedanke und ein user nach mir, dann kann ich mich nochmal bedanken

ich hoffe ihr wisst was ich meine

leider finde ich nicht wo der fehler sein soll evt kann mir einer helfen
hier mal die sache
$bedanko = $arr["bedanko"];

//---- Get poster thanks

$resa = mysql_query("SELECT * FROM postthanks WHERE topicid = $topicid") or sqlerr(__FILE__, __LINE__);
if (mysql_num_rows($resa) > 0) {
while ($arra = mysql_fetch_array($resa)) {
$ptuserid = $arra["userid"];
$ptpostid = $arra["postid"];

$resb = mysql_query("SELECT id, username, class, anon FROM users WHERE id = $ptuserid") or print(mysql_error());
while ($arrb = mysql_fetch_assoc($resb)) {
if ($thanks) $thanks .= ",\n";

if ($arrb[anon] == no || (($arrb[id] == $CURUSER[id]) || get_user_class() >= UC_MODERATOR)) {
$thanks .= "<a href=userdetails.php?id=" . $arrb["id"] . "><font class=".get_class_color($arrb["class"])."><b>" . $arrb["username"] . "</b></font></a>";
} else {
$thanks .= "<font class=".get_class_color($arrb["class"])."><b>" . $arrb["username"] . "</b></font>";
}
}
}
}

$thanksbutton = ("<form method=\"post\" action=\"forums.php?action=thanks&topicid=$topicid&postid=$postid&userid=$userid\" style=\"display:inline\"><input type=\"submit\" value=\"Bedanken\"></form>");


//---- Get poster detailsund hier der aufruf

if ($bedanko == "2" && $ptuserid != $CURUSER[id]) {
$body1 .= "<br>$thanksbutton<br>";
}

if ($thanks && $ptpostid == $postid) {
$body1 .= "<br>Für diesen Beitrag haben sich bedankt:";
$body1 .= "<br>$thanks";
}lg asus

Rasta
07.08.2010, 23:21
das prop haben viele unteranderem ich


und brauche auch ne info...

asus
07.08.2010, 23:25
alles scheisse außer mutti :D

DefCon3
08.08.2010, 00:05
alles scheisse außer mutti :D

nich meggern ... php.net

das ding sollte ma dringend überarbeitet werden^^ schau ma ob es geht. Ansonsten bitte gute ne gute beschreibung abgeben was nicht geht

// edit, hab ne var falsch benannt, ist hier korrigiert
<?php
$bedanko = $arr['bedanko'];
//---- Get poster thanks

$resa = mysql_query('
SELECT
`userid` AS `thxUser`,
`postid`,
(SELECT `username` FROM `users` WHERE `id` = `thxUser`) AS `userName`,
(SELECT `class` FROM `users` WHERE `id` = `thxUser`) AS `userClass`,
(SELECT `anon` FROM `users` WHERE `id` = `thxUser`) AS `anonym`
FROM
`postthanks`
WHERE
`topicid` = ' . $topicid) or sqlerr(__FILE__, __LINE__);

if (mysql_num_rows($resa) > 0) {
$thxUser = Array();
$thxPostID = Array();
$thanks = Array();
while ($arra = mysql_fetch_assoc($resa))
{
$thxUser[] = $arra['thxUser'];
$thxPostID[] = $arra['postid'];

if ($arra['anonym'] == 'no' || $arra['thxUser'] == $CURUSER['id'] || get_user_class() >= UC_MODERATOR) {
$thanks[] = '<a href="userdetails.php?id=' . $arra['userid'] . '"><font class=' . get_class_color($arra['userClass']) . '><b>' . $arra['userName'] . '</b></font></a>';
}
else {
$thanks[] = '<font class=' . get_class_color($arra['userClass']) . '><b>' . $arra['userName'] . '</b></font>';
}
}
}

$thanksbutton = '<form method="post" action="forums.php?action=thanks&topicid=' . $topicid . '&postid=' . $postid . '&userid=' . $userid .'" style="display: inline;">
<input type="submit" value="Bedanken">
</form>';


//---- Get poster details

if ( $bedanko == 2 && !in_array($CURUSER['id'], $thxUser) ) {
$body1 .= '<br />' . $thanksbutton . '<br />';
}

if ( !empty($thanks) && !in_array($postid, $thxPostID) ) {
$body1 .= '<br />Für diesen Beitrag haben sich bedankt:';
$body1 .= '<br />' . implode(', ', $thanks);
}

asus
08.08.2010, 00:10
hmm ich hab bei deiner nur nen danke button klick ich drauf passiert nix und die alten thanks sind auch nicht mehr zu sehn

DefCon3
08.08.2010, 00:15
nimm den code nochma, hab ihn editiert

asus
08.08.2010, 00:21
ok hab mich bei deinem bedankt nur sehe ich keine namen auch bei den alten threads nicht

button kommt nciht wieder

DefCon3
08.08.2010, 00:28
mach doch mal nen paar debug ausgaben ... fummel dich durch. Guck was der query leifert und die prüfungen ergeben. Morgen hab ich etwas Zeit... bin heut den 6 Tag arbeiten und muss morgen auch um 7 auf arbeit sein. Bin zu fertig heute ^^

asus
08.08.2010, 00:34
ok ich schau noch etwas evt bekomm ich es ja hin danke dir aber schonmal



--======================================--
--== Beitrag erstellt: 00:32 um 00:30 ==--
--== geantwortet auf Beitrag vom ==--
--== automatische Beitragszusammenführung ==--
--======================================--


asus schrieb nach 1 Minute und 47 Sekunden:

habs hinbekommen

das

$thxPostID[] = $arra['postid'];


muss so

$thxPostID[] = $arra['posterid'];



--======================================--
--== Beitrag erstellt: 00:34 um 00:32 ==--
--== geantwortet auf Beitrag vom ==--
--== automatische Beitragszusammenführung ==--
--======================================--


asus schrieb nach 2 Minuten und 11 Sekunden:

aber schon kommt das nächste aufn tisch hehe

nun seh ich bei jedem post wer sich bedankt hat ich schau nochmal ^^

DefCon3
08.08.2010, 09:37
wo holstn das her?
$thxPostID[] = $arra['posterid'];

in der Abfrage is das nicht mit bei ...

asus
08.08.2010, 10:50
ne hast recht aufjedenfall waren die ersten danke im ersten post wenn ich es so gemacht habe

hab nur noch das problem das die überall angezeigt wird nur im ersten post nicht

http://www.netvision-technik.de/forum/picture.php?albumid=45&pictureid=328

DefCon3
08.08.2010, 10:56
seh ich das richtig das man sich für jeden Beitrag bedanken kann ...? Ich kenne es das man sich fürn Thread bedankt, aber jeden einzelnen Beitrag is doch etwas naja übertrieben, ist doch nen overhead vom feinsten!

Also nochmal von vorne:
Was genau funktioniert jetzt?
Kannst du dich nur einmal bedanken?
geht das Bedanken überhaupt?
Anzeige bei allen Beiträgen ausser dem ersten?
Oder den letzten?

Entity
08.08.2010, 11:02
klingt ja komisch alles

asus
08.08.2010, 11:02
nein mann kann sich nur fpr diesen thread bedanken!

der danke button befindet sich im ersten post!

sobald ich drauf klicke ist er weg und kommt für diesen user auch nciht wieder! (so wie es soll)

Anzeige bei allen Beiträgen ausser dem ersten!

DefCon3
08.08.2010, 11:04
warum werden die User die sich bedankt haben in jedem Beitrag angezeigt? Sollte doch nur einmal sein, am besten direkt uter dem Startbeitrag, oder?

Entity
08.08.2010, 11:05
ja so sollte es schon ich hab das gleiche auch

asus
08.08.2010, 11:16
ja die sollen unter dem ersten beitrag oder unter dem ganzen thread ist eigendlich egal

nur wenn ich es woanders hinsetze sieht man nix



--======================================--
--== Beitrag erstellt: 11:16 um 11:07 ==--
--== geantwortet auf Beitrag vom ==--
--== automatische Beitragszusammenführung ==--
--======================================--


asus schrieb nach 8 Minuten und 31 Sekunden:

immoment sieht es bei mir so aus (nicht aufgeräumt kommt später)

while ($arr = mysql_fetch_assoc($res)) {
++$pn;
$postid = $arr["id"];
$posterid = $arr["userid"];
$added = $arr["added"];
$body = $arr["body"];
$email = $arr["guestmail"];
$user = $arr["guestname"];
$answer = $arr["answer"];


$res2 = mysql_query("SELECT * FROM users WHERE id=$posterid") or sqlerr(__FILE__, __LINE__);
$arr2 = mysql_fetch_assoc($res2);
$anon = $arr2[anon];
$sig = $arr2[sig];

$dt = time() - 180;
$dt = sqlesc(get_date_time($dt));

$postername = ("<font class=\"".get_class_color($arr2['class'])."\">$arr2[username]</font>");

if ($arr[guestuser] == "yes") {
$by = "<b>Gast: $arr[guestname]</b>";
} else {
if ($arr2[username] == "") {
$by = "<b>Gelöscht</b>";

} else {
if ($anon && (($posterid == $CURUSER[id]) || get_user_class() >= UC_MODERATOR)) {
$by = "<a href=userdetails.php?id=$posterid><b>$postername</b></a>" . ($arr2["donor"] == "yes" ? " <img src=\"".
$GLOBALS["PIC_BASE_URL"]."star.gif\" title=\"Dieses Mitglied hat gespendet\">" : "") . ($arr2["enabled"] == "no" ? "<img src=\"".
$GLOBALS["PIC_BASE_URL"]."disabled.gif\" title=\"Dieses Mitglied wurde gesperrt\" style='margin-left: 2px'>" : ($arr2["warned"] == "yes" ? "<a href=rules.php#warning class=altlink><img src=\"".$GLOBALS["PIC_BASE_URL"]."warned.gif\" title=\"Dieses Mitglied wurde verwarnd\" border=\"0\"></a>" : "")) . "";

} else {
$by = "<b>$postername</b>";
}
}
}
print("<a name=$postid>");

if ($pn == $pc) {
print("<a name=last>");
if ($postid > $lpr)
mysql_query("UPDATE readposts SET lastpostread=$postid WHERE userid=$userid AND topicid=$topicid") or sqlerr(__FILE__, __LINE__);
}

if ($arr2["avatar"]) {
$avatar = ("<img style=\"width:120px;\" src=\"".htmlspecialchars($arr2["avatar"])."\">");

} else {
$avatar = ("<img style=\"max-width:120px;\" src=\"".$GLOBALS["PIC_BASE_URL"]."default_avatar.gif\">");
}

$res3 = mysql_query("SELECT COUNT(*) FROM posts WHERE userid=$posterid") or sqlerr(__FILE__, __LINE__);
$arr3 = mysql_fetch_row($res3);
$forumposts = $arr3[0];


print("<table align=\"center\" cellpadding=\"4\" cellspacing=\"1\" border=\"0\" width=\"770\" class=\"tableinborder\">
<tr><td align=\"center\" class=\"tabled\">$by</td>
<td class=\"tabled\" style=\"vertical-align: middle;\">
<table width=\"100%\"><tr><td class=\"tabled\"><b>Vom:</b> $added</td>
<td align=\"right\" class=\"tabled\" style=\"vertical-align: middle;\">");


if ($arr["guestuser"] == "no") {
print("$aktion");
} else {
if ($arr["guestuser"] == "yes" && $arr["answer"] == "no") {
print("<form method=\"post\" action=\"staffemail.php?action=send&email=$email&user=$user&title=$subject&postid=$postid\" style=\"display:inline\"><input type=\"submit\" value=\"Antworten\"></form>");
} else {

print("<form method=\"post\" action=\"forums.php?action=answer&topicid=$topicid&postid=$postid\" style=\"display:inline\"><input type=\"submit\" value=\"Bearbeitet\"></form>");
}
}


if ($arr[guestuser] == "no") {
if (!$locked && $maypost) {
print("&nbsp;<form method=\"post\" action=\"forums.php?action=quotepost&topicid=$topicid&postid=$postid\" style=\"display:inline\"><input type=\"submit\" value=\"Zitieren\"></form>");
}
if (($CURUSER["id"] == $posterid && !$locked) || get_user_class() >= UC_MODERATOR) {
print("&nbsp;<form method=\"post\" action=\"forums.php?action=edit&postid=$postid&forumid=$forumid\" style=\"display:inline\"><input type=\"submit\" value=\"Bearbeiten\"></form>");
}
if (get_user_class() >= UC_MODERATOR) {
print("&nbsp;<form method=\"post\" action=\"forums.php?action=deletepost&postid=$postid&forumid=$forumid\" style=\"display:inline\"><input type=\"submit\" value=\"Löschen\"></form>");
}
}

if ($arr[guestuser] == "no") {
print("&nbsp;<form method=\"post\" action=\"treport.php?postid=$postid\" style=\"display:inline\"><input type=\"submit\" value=\"Melden\"></form>");
}
print("&nbsp;<a href=\"#top\"><img src=\"".$GLOBALS["PIC_BASE_URL"]."top.gif\" border=0 title='Top'></a></td></tr></table></td></tr>");

print("<tr><td align=\"center\" valign=\"top\" class=\"tableb\" width=\"120\">");

print("<table align=\"center\" cellpadding=\"4\" cellspacing=\"0\" border=\"0\" width=\"100\">
<tr><td align=\"center\" valign=\"top\" class=\"tabled\" width=\"120\">$avatar</td></tr>");
print("<tr><td class=\"tabled\" width=\"120\">");

if ($forumposts && (($posterid == $CURUSER[id]) || get_user_class() >= UC_MODERATOR)) {
print("Beiträge: <a href=\"userhistory.php?action=viewposts&id=$posterid\">$forumposts</a>");

} else {
print("Beiträge: $forumposts");
}
print("</td></tr></table>");

$body1 = "".format_comment($arr["body"])."";

$bedanko = $arr['bedanko'];
//---- Get poster thanks

$resa = mysql_query('
SELECT
`userid` AS `thxUser`,
`postid`,
(SELECT `username` FROM `users` WHERE `id` = `thxUser`) AS `userName`,
(SELECT `class` FROM `users` WHERE `id` = `thxUser`) AS `userClass`,
(SELECT `id` FROM `users` WHERE `id` = `thxUser`) AS `userid`,
(SELECT `anon` FROM `users` WHERE `id` = `thxUser`) AS `anonym`
FROM
`postthanks`
WHERE
`topicid` = ' . $topicid) or sqlerr(__FILE__, __LINE__);

if (mysql_num_rows($resa) > 0) {
$thxUser = Array();
$thxPostID = Array();
$thanks = Array();
while ($arra = mysql_fetch_assoc($resa))
{
$thxUser[] = $arra['thxUser'];
$thxPostID[] = $arra['postid'];

if ($arra['anonym'] == 'no' || $arra['thxUser'] == $CURUSER['id'] || get_user_class() >= UC_MODERATOR) {
$thanks[] = '<a href="userdetails.php?id=' . $arra['userid'] . '"><font class=' . get_class_color($arra['userClass']) . '><b>' . $arra['userName'] . '</b></font></a>';
}
else {
$thanks[] = '<font class=' . get_class_color($arra['userClass']) . '><b>' . $arra['userName'] . '</b></font>';
}
}
}

$thanksbutton = '<form method="post" action="forums.php?action=thanks&topicid=' . $topicid . '&postid=' . $postid . '&userid=' . $userid .'" style="display: inline;">
<input type="submit" value="Bedanken">
</form>';


//---- Get poster details

if ( $bedanko == 2 && !in_array($CURUSER['id'], $thxUser) ) {
$body1 .= '<br />' . $thanksbutton . '<br />';
}

if ( !empty($thanks) && !in_array($postid, $thxPostID) ) {
$body1 .= '<br />Für diesen Beitrag haben sich bedankt:';
$body1 .= '<br />' . implode(', ', $thanks);
}

if (is_valid_id($arr['editedby'])) {
$res4 = mysql_query("SELECT id, username, class, anon FROM users WHERE id=$arr[editedby]");
if (mysql_num_rows($res4) == 1) {
$arr4 = mysql_fetch_assoc($res4);
if ($arr4[anon] == no || (($arr4[id] == $CURUSER[id]) || get_user_class() >= UC_MODERATOR)) {
$body1 .= "<br><br><font class=\"smallfont\">Zuletzt bearbeitet von <a href=\"userdetails.php?id=$arr[editedby]\"><b><font class=\"".get_class_color($arr4["class"])."\">$arr4[username]</font></b></a> am $arr[editedat]</font>.";

} else {
$body1 .= "<br><br><font class=\"smallfont\">Zuletzt bearbeitet von <b><font class=\"".get_class_color($arr4["class"])."\">$arr4[username]</font></b> am $arr[editedat]</font>.";
}
}
}

if ($sig) {
$body1 .= "<br>____________________<br>".format_comment($sig)."";
}

print("</td><td class=\"tablea\" valign=\"top\" width=\"650\"><div style=\"width:100%;min-height:100px;overflow:auto;\">".$body1."</div></td></tr>");

print("<tr><td align=\"center\" class=\"tableb\">");
print("&nbsp;".("'" . $arr2['last_access'] . "'" > $dt?"<font color=\"green\"><b>Online</b></font>":"<font color=\"red\"><b>Offline</b></font>") . "");
print("</td><td class=\"tableb\">");

if ($arr[guestuser] == "no") {
if ($CURUSER[id] != $posterid) {
print("&nbsp;<form method=\"post\" action=\"messages.php?action=send&receiver=$posterid\" style=\"display:inline\"><input type=\"submit\" value=\"PN\" class=\"btn\"></form>");
print("&nbsp;<form method=\"post\" action=\"friends.php?action=add&targetid=$posterid&type=friend\" style=\"display:inline\"><input type=\"hidden\" name=\"type\" value=\"friend\"><input type=\"submit\" value=\"Freund\" class=\"btn\"></form>");
print("&nbsp;<form method=\"post\" action=\"friends.php?action=add&targetid=$posterid&type=block\" style=\"display:inline\"><input type=\"hidden\" name=\"type\" value=\"block\"><input type=\"submit\" value=\"Blocken\" class=\"btn\"></form>");
}
if ($arr2[anon] == no || (($posterid == $CURUSER[id]) || get_user_class() >= UC_MODERATOR)) {
if ($arr2["icq"]) {
print("&nbsp;<img style=\"vertical-align: middle;\" src=\"http://web.icq.com/whitepages/online?icq=".$arr2["icq"]."&img=5\" alt=\"icq\" title=\"icq\" border=\"0\"> ".htmlspecialchars($arr2["icq"])."");
}
if ($arr2["msn"]) {
print("&nbsp;<img style=\"vertical-align: middle;\" src=\"".$GLOBALS["PIC_BASE_URL"]."/messenger/msn.gif\" alt=\"msn\" title=\"msn\" border=\"0\"> ".htmlspecialchars($arr2["msn"])."");
}
if ($arr2["aim"]) {
print("&nbsp;<img style=\"vertical-align: middle;\" src=\"".$GLOBALS["PIC_BASE_URL"]."/messenger/aim.gif\" alt=\"aim\" title=\"aim\" border=\"0\"> ".htmlspecialchars($arr2["aim"])."");
}
if ($arr2["yahoo"]) {
print("&nbsp;<img style=\"vertical-align: middle;\" src=\"".$GLOBALS["PIC_BASE_URL"]."/messenger/yahoo.gif\" alt=\"yahoo\" title=\"yahoo\" border=\"0\"> ".htmlspecialchars($arr2["yahoo"])."");
}
if ($arr2["skype"]) {
print("&nbsp;<img style=\"vertical-align: middle;\" src=\"http://mystatus.skype.com/smallicon/".$arr2["skype"]."\" alt-\"skype\" title=\"skype\" border=\"0\"> ".htmlspecialchars($arr2["skype"])."");
}
}
}

print("</td></tr></table><br>");
}


so setze ich dieses
if ( !empty($thanks) && !in_array($postid, $thxPostID) ) {
$body1 .= '<br />Für diesen Beitrag haben sich bedankt:';
$body1 .= '<br />' . implode(', ', $thanks);
}

unter dem ganzen sieht man keine anzeige mehr der sich bedankt hat

DefCon3
08.08.2010, 11:27
es ist doch gesamt an der falschen Stelle oder nicht? Du bist in der while die für die Beiträge verantwortlich ist, der gesamte part sollte doch egentlich nur unter dem Startbeitrag. Du fragst bei jedem Beitrag sämtliche Danke und so ab! Such mal die Stelle raus wo der Startbeitrag angezeigt wird. Denn da sollte es drunter

vom aufbau sollte es doch so sein:

Anzeige des Startbeitrags
Anzeige der Danke
Anzeige der Beiträge

asus
08.08.2010, 11:35
also nochmal zum mit mitfassen

nach dem erstellen des thread hab ich den danke button im ersten beitrag siehe screen (sehe gerade da ist auch noch ein fehler in der zeile 910 das wäre das hier

Warning: in_array() [function.in-array]: Wrong datatype for second argument in /var/www/baustelle/forums.php on line 910
das wäre der code
if ( $bedanko == 2 && !in_array($CURUSER['id'], $thxUser) ) {
http://www.netvision-technik.de/forum/picture.php?albumid=45&pictureid=329

so und nun aufm bild zwei die anzeige wer sich bedankt hat
http://www.netvision-technik.de/forum/picture.php?albumid=45&pictureid=330

das sieht man bei den anderen beiträgen auch dann nur im ersten nicht der fehler ist auch weg wenn man sich bedankt hat



--======================================--
--== Beitrag erstellt: 11:33 um 11:31 ==--
--== geantwortet auf Beitrag vom ==--
--== automatische Beitragszusammenführung ==--
--======================================--


asus schrieb nach 2 Minuten:

das mit deinem beschriebenden aufbau ist richtig nur war es vorher auch so:) das forum kommt vom skydiver oder so



--======================================--
--== Beitrag erstellt: 11:35 um 11:33 ==--
--== geantwortet auf Beitrag vom ==--
--== automatische Beitragszusammenführung ==--
--======================================--


asus schrieb nach 2 Minuten und 31 Sekunden:

äh in dem forum gibt es doch keine stelle wo nur der erste beitrag angezeigt wird das hängt alles zusammen

DefCon3
08.08.2010, 11:49
jo caste es ma aufm array, kommt weil es leer ist.
if ( $bedanko == 2 && !in_array($CURUSER['id'], (array)$thxUser) ) {der code muss aus der while schleife raus der für die Beiträge verantwortlich ist. Warum sollte denn bei jedem Beitrag erneut die Danke abgefragt werden? Das nötige was du für die Danke brauchst ist doch nur die topic id.

Ich kenne das Forum auch nicht. Ansonsten sollte es kein Problem sein die Danke nur im ersten beitrag anzuzeigen. Mach einfach ne kontroll variable. Auf die prüfst du ob es schon angezeigt wurde.

Die Abfragen für die Danke müssen nicht in die while der beiträge. $topicid ist schon vor der while verfügbar.

so mein ich das ungefähr ... damit die thx nur einmal angezeigt werden
$displayThx = false; // kontroll variable
$dankeQueryUndSo = mysql_query('SELECT fooThx FROM barThx WHERE foobarThx = barfooThx'); // danke query und so

while ($arr = mysql_fetch_assoc($res)) // die while die du gepostet hast, stark abgekürzt
{
echo $arr . ' Beitraege'; // normale beiträge in der while
if ( $displayThx === false ) {
echo 'den ganzen danke kram';
$displayThx = true; // jo wir haben es jetzt einmal angezeigt
} // beim nächsten durchlauf wirds ignoriert und anzeige nur der nachfolgenden beitraege
}

tantetoni2
08.08.2010, 14:08
haut das für die dankesager doch ganz einfach unter dem angezeigten beiträgen wenn die while schleife dafür zuende ist.

auf die idee müsste man doch selber kommen, und der code dafür ist ja schon da

asus
08.08.2010, 15:44
hmm sobald ich es aus der while schleife schmeiße wird mir nix mehr angezeigt irgendwie bin ich wohl zu doof

ich hänge meine forums.php mal an (ist ein sauhaufen ich weiß ist ja nicht von mir! sie wird noch aufgeräumt)

danke euch das ihr zumindest helfen tut

hänge da nun stunden dran leider bleibt es so wie ich es schon gesagt habe :-(

Baba
01.12.2010, 12:09
Mahlzeit,

also ich habe das bei mir so drin in der forums.php und es funzt bei mir.

Öffnet Eure forums.php und suche das:
//---- Get poster thanks
$resa = mysql_query("SELECT * FROM postthanks WHERE topicid = $topicid") or sqlerr(__FILE__, __LINE__);
if (mysql_num_rows($resa) > 0) {
while ($arra = mysql_fetch_array($resa)) {
$ptuserid = $arra["userid"];
$ptpostid = $arra["postid"];

$resb = mysql_query("SELECT id, username, class FROM users WHERE id = $ptuserid") or print(mysql_error());
while($arrb = mysql_fetch_assoc($resb)) {
if ($thanks) $thanks .= ",\n";
$thanks .= "<a href=userdetails.php?id=" . $arrb["id"] . "><font class=".get_class_color($arrb["class"])."><b>" . $arrb["username"] . "</b></font></a>";
}
}
}
$thanksbutton = ("<form method=\"post\" action=\"forums.php?action=thanks&topicid=$topicid&postid=$postid&userid=$userid\" style=\"display:inline\"><input type=\"submit\" value=\"Bedanken\"></form>");und ersetze das mit dem:
//---- Get poster thanks
$is_thx = false;
$resa = mysql_query("SELECT * FROM postthanks WHERE topicid = $topicid") or sqlerr(__FILE__, __LINE__);
if (mysql_num_rows($resa) > 0) {
while ($arra = mysql_fetch_array($resa)) {
$ptuserid = $arra["userid"];
$ptpostid = $arra["postid"];

if ($CURUSER["id"] == $ptuserid && $ptpostid == $postid) $is_thx = true;

$resb = mysql_query("SELECT id, username, class FROM users WHERE id = $ptuserid") or print(mysql_error());
while($arrb = mysql_fetch_assoc($resb)) {
if ($thanks) $thanks .= ",\n";
$thanks .= "<a href=userdetails.php?id=" . $arrb["id"] . "><font class=".get_class_color($arrb["class"])."><b>" . $arrb["username"] . "</b></font></a>";
}
}
}
$thanksbutton = ("<form method=\"post\" action=\"forums.php?action=thanks&topicid=$topicid&postid=$postid&userid=$userid\" style=\"display:inline\"><input type=\"submit\" value=\"Bedanken\"></form>");dann suche weiter nach dem:
if ($bedanko == "2" && $ptuserid != $CURUSER[id]) {
$body1 .= "<br>$thanksbutton<br>";
}
if ($thanks && $ptpostid == $postid) {
$body1 .= "<br>Bedankt für diesen Beitrag haben sich:";
$body1 .= "<br>$thanks<br>";
}und ersetze das mit dem:
if ($bedanko == "2" && !$is_thx) {
$body1 .= "<br>$thanksbutton<br>";
}
if ($thanks && $ptpostid == $postid) {
$body1 .= "<br>Bedankt für diesen Beitrag haben sich:";
$body1 .= "<br>$thanks<br>";
}suche weiter nach dem:
//-------- Action: Thanks
if ($action == "thanks") {
$userid = $_GET["userid"];
$topicid = $_GET["topicid"];
$postid = $_GET["postid"];

if (!is_valid_id($topicid))
stderr("Forum Fehler", "<b><p>Falsche Beitrags ID $postid.</p></b>");

mysql_query("INSERT INTO postthanks (id,topicid,postid,userid) VALUES (id,$topicid,$postid,$userid)") or sqlerr(__FILE__, __LINE__);

header("Location: $BASEURL/forums.php?action=viewtopic&topicid=$topicid");
die;
}und ersetze es mit dem:
//-------- Action: Thanks
if ($action == "thanks") {
$userid = $CURUSER["id"]; // Nicht die $_GET["userid"], das kann jeder Faken!
$topicid = $_GET["topicid"];
$postid = $_GET["postid"];

$query_check = mysql_query("SELECT * FROM postthanks WHERE topicid = $topicid AND postid= $postid AND userid= $userid") or sqlerr(__FILE__, __LINE__);
$row_check = mysql_num_rows($query_check);

if (!is_valid_id($topicid))
stderr("Forum Fehler", "<b><p>Falsche Beitrags ID $postid.</p></b>");
elseif($row_check > 0)
stderr("Forum Fehler", "<b><p>Du hast dich bereits bedankt !</p></b>");

mysql_query("INSERT INTO postthanks (id,topicid,postid,userid) VALUES (id,$topicid,$postid,$userid)") or sqlerr(__FILE__, __LINE__);

header("Location: $BASEURL/forums.php?action=viewtopic&topicid=$topicid");
die;
}Ich hoffe ich konnte helfen und habe jetzt nix vergessen.

MFG