Beitragsersteller falsch..

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
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.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
insy
Mitglied
Beiträge: 208
Registriert: 31.10.2005 23:01
Kontaktdaten:

Beitragsersteller falsch..

Beitrag von insy »

Grade eben ist was ganz kurioses passiert.

Ich hab einen Beitrag geschrieben, in dem ich etwas aus dem ersten Post des Topics zitiert hab. Der entspr. User hat darauf wieder geantwortet. Ich daraufhin nochmal geantwortet. Dann hab ich eine Weile nicht in das Topic geschaut. Dann guck ich ne Stunde später wieder rein und seh ne neue Antwort desjenigen, den ich zitiert hatte.. aber diese Antwort mit Text "von ihm" war mit meinem Nick gepostet worden, so als hätte ICH gepostet :o Ich dachte schon, "da hat jemand mein PW rausgekriegt und will mich nun verkackeiern.. shit.. sofort PW ändern.. ".. aber bei Klick auf IP seh ich, dass es meine IP war. Ich weiß aber ganz sicher, dass ich den Beitrag NICHT geschrieben hatte :-?
Dann hab ich den Beitrag gelöscht, der angeblich von mir war. Und auf einmal was dann auch der andere Beitrag von mir auch weg..

Da kam wohl in der Datenbank was durcheinander? Wie kann sowas sein? Wie kann der User auf das Topic antworten, aber der Beitrag ist dann "von mir"..

sorry, wenn ich verwirrt klinge.. ich bin es.

ich gehe davon aus, dass mein Beitrag, nicht abgeschlossen in die Datenbank eingetragen wurde und deshalb die antwort des anderen User (es war ja da ein zitat von mir drin) mit reingehängt wurde in den Datenbankeintrag.. ist da vielleicht ein gaaanz kurzer Datenbankverbindungsabbruch in dem moment wo er oder ich gepostet hatte schuld? Kann ich mir jetzt nur SO logisch erklären ^^
hell is others..
MTV-King
Mitglied
Beiträge: 513
Registriert: 19.10.2006 22:15
Wohnort: Nordenham
Kontaktdaten:

Beitrag von MTV-King »

:o

sowas ich hab nochnie gehört. is ja kurios. weis aber leider keine antwort :(
Mein Projekt: Skiforum
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Hm kann ich mir kaum vorstellen. Eigentlich läuft das so ab, dass der Post in der DB gespeichert wird und dann der Text des Posts mit gleicher ID.

Code: Alles auswählen

$sql = ($mode != "editpost") ? "INSERT INTO " . POSTS_TABLE . " (topic_id, forum_id, poster_id, post_username, post_time, poster_ip, enable_bbcode, enable_html, enable_smilies, enable_sig) VALUES ($topic_id, $forum_id, " . $userdata['user_id'] . ", '$post_username', $current_time, '$user_ip', $bbcode_on, $html_on, $smilies_on, $attach_sig)" : "UPDATE " . POSTS_TABLE . " SET post_username = '$post_username', enable_bbcode = $bbcode_on, enable_html = $html_on, enable_smilies = $smilies_on, enable_sig = $attach_sig" . $edited_sql . " WHERE post_id = $post_id";
	if (!$db->sql_query($sql, BEGIN_TRANSACTION))
	{
		message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
	}

	if ($mode != 'editpost')
	{
		$post_id = $db->sql_nextid();
	}

	$sql = ($mode != 'editpost') ? "INSERT INTO " . POSTS_TEXT_TABLE . " (post_id, post_subject, bbcode_uid, post_text) VALUES ($post_id, '$post_subject', '$bbcode_uid', '$post_message')" : "UPDATE " . POSTS_TEXT_TABLE . " SET post_text = '$post_message',  bbcode_uid = '$bbcode_uid', post_subject = '$post_subject' WHERE post_id = $post_id";
Tritt ein Fehler auf wird sofort mit einer Fehlermeldung abgebrochen (Verbindungsfehler müsste also aufgefallen sein).

Die Frage ist was passiert wenn mehrere User absolut zeitgleich Posten. In den Zeilen

Code: Alles auswählen

	if ($mode != 'editpost')
	{
		$post_id = $db->sql_nextid();
	}
wird die gerade verwendete ID aus der DB geholt (bei einem neuen Post kennt man die ja noch nicht). Die Frage ist jetzt, kann das Skript so unglücklich pausiert worden sein (Multithreading, jetzt ist der andere User dran) dass ausgerechnet vor dem Holen der ID unterbrochen wurde? Dann bekämen beide User aus der DB die gleiche ID zurück. Haken an der Geschichte wäre allerdings dass (zumindest bei mir) die ID der Primärschlüssel in beiden Tabellen ist und somit eine Mehrfacheintragung mit gleicher ID unmöglich (würde auch eine Fehlermeldung generieren).
Oder zeitgleicher Post und die ID's werden durch minimale Zeitunterschiede beim Eintrag vertauscht? Auch unwahrscheinlich, denn der Befehl sollte immer die letzte ID rausrücken und müsste daher auch in diesem Fall beiden die gleiche liefern.

--> Mir fällt keine Situation ein, wo das eintreten könnte was du beschreibst.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
kazwo
Mitglied
Beiträge: 934
Registriert: 29.07.2005 14:10
Wohnort: Mutterstadt des deutschen Fußballs

Beitrag von kazwo »

Schau mal, ob die DB Maintainance Mod nen Fehler in der Datenbank findet. Sollte dem so sein, so sollte die Mod das auch beheben können :)
Blau-Gelb ist nicht Ikea und auch nicht die FDP. Blau-Gelb, das ist die Mannschaft, die ich so gern spielen seh.
Benutzeravatar
insy
Mitglied
Beiträge: 208
Registriert: 31.10.2005 23:01
Kontaktdaten:

Beitrag von insy »

Das Problem hat sich inzwischen gelöst. Einer meiner Moderatoren wollte mich zitieren, er hatte aber stattdessen auf "edit" geklickt und es nicht gemerkt.. :oops: :cry:
hell is others..
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Und wieder einmal sitzt die Fehlerquelle vor dem Computer :grin:
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“