Antworten zu häufig gestellten Homepage-Fragen
 Alle Anleitungen
Einige Anleitungen
Intern
Kostenl. Partnerlinks
[,__,] Druckversion

Die Website Homepage-FAQs.de befindet sich im Archivmodus.
FAQS zu HP&Co.
artmedic CMS 3 - Modul forum - bei Eintrag mehrfach Falschmeldungen

(auch für Einzelscript Forum)


Frage: Warum bitte sagt das Forum mir x-mal das es meinen Namen in der Forumsdatenbank nicht gibt und ganz zum Schluss steht dann dass der Beitrag eingetragen wurde?

Antwort: Es handelt sich um einen Fehler im Script, der durch das Versetzen eine geschweiften Klammer behoben werden kann.

In der Datei forum_index.php dieser Abschnitt, Änderungen mit rotem Kommentar versehen.

while (list ($line_num, $line) = each ($userdaten))
{  
$ziffern = explode("&&",$line);
if($ziffern[0] == $forum_username)
{
$username = "1";
$passwort = $ziffern[2];
if($passwort == $forum_userpasswort)
{
//Antwort eintragen
$frageid = time();
$file = "$forum_files$theme"."_$topic.txt";
$fcontent = "$frageid&&$forum_answer&&$forum_username&&$ziffern[1]&&$theme&&$themename&&$date&&$topic&&\n";
$fadd = fopen($file, "a+");
flock($fadd, 2);
fputs($fadd, $fcontent);
flock($fadd, 3);
fclose($fadd);
echo "<div class=\"forum_meldung\">Hallo $forum_username,<br>Ihre Antwort wurde soeben im Forum eingetragen.</div>";
include("forum_mail.php");
}
if($passwort != $forum_userpasswort)
{
echo "<div class=\"forum_meldung\">Fehler: Falsches Passwort! <br> Bitte korrigieren Sie Ihre Eingabe.<br></div>";
}
}
} //hier eine geschweifte Klammer zusätzlich hinzufügen!!!
if($username != "1")
{
echo "<div class=\"forum_meldung\">Hallo $forum_username,<br>Dieser Benutzername konnte nicht im Datenbestand gefunden werden.</div>";
}
//} //dafür die Klammer hier weg machen!!!
$fid = "showtopic";
}

Erklärung:

Die Abfrage if($username != "1") muss nach der While-Schleife stehen, deshalb wird die Klammer versetzt, dann steht die if-Abfrage ausserhalb der While-Schleife und wird nicht x-mal wiederholt.

Der Fehler ist verständlich, da die Scriptschreiberin übersehen hat, daß die If-Anweisung, die weiter oben bei if($fid == "answeraction") beginnt, erst nach
$fid = "showtopic"; endet.

Anleitung (C) 2005 Daniel Wurst - http://www.homepage-faqs.de