edit funktion defekt

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
magicpain
Mitglied
Beiträge: 18
Registriert: 31.10.2006 01:35
Wohnort: Augsburg
Kontaktdaten:

edit funktion defekt

Beitrag von magicpain »

hallo alle,

ich habe seit einiger zeit ein problem mit der edit funktion. jedes mal, wenn ein user oder auch der admin versucht einen beitrag zu editieren, kommt volgende meldung "Du musst ein Thema für deine Antwort auswählen.", sobald man auf die edit schaltfläche klickt.

soweit ich es noch weis, ist das problem seit dem ich das quick reply mod für den anti bot question mod installiert habe.

kann mir jemand helfen?

der dennis.
-= ich poste, also bin ich =-
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Beitrag von cYbercOsmOnauT »

Dann überprüf bei beiden Mods nochmal die Schritte in der posting.php und schau wo Du den Fehler verbockt hast. :)

Grüße,
Tekin
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
magicpain
Mitglied
Beiträge: 18
Registriert: 31.10.2006 01:35
Wohnort: Augsburg
Kontaktdaten:

Beitrag von magicpain »

danke für den anhaltspunkt.
ich bin die installation nochmal durchgegangen, hab aber keinen fehler gefunden.

ich hab hier mal die posting.php als .txt datei. kann sich das eventuell mal jemand ansehen? vielleicht bin ich zu blind dafür?! wär echt toll, wenn mir da jemand helfen könnte.

danke schonmal, dennis
-= ich poste, also bin ich =-
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Ohne da einen Blick rein geworfen zu haben:

Wie sieht denn die Ziel URL des Links(Editbuttons) aus?

Wenn da nämlich schon ein Fehler drin ist, dann brauchen wir in der posting.php nicht zu suchen...


EDIT: Ich vermute ich habe den Fehler:

Code: Alles auswählen

// Anti Bot Question Mod - Start
			ABQ_AntwortPruefen('P');
	// Anti Bot Question Mod - End
Ich denke diese Stelle muss VOR

Code: Alles auswählen

case 'editpost':
und nicht danach. Ich kenne den Mod zwar nicht genau, aber es macht für mich wenig Sinn im Falle des Edits die Antwort zu prüfen, editieren kann man ja sowieso nur wenn man angemeldet ist.
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.
magicpain
Mitglied
Beiträge: 18
Registriert: 31.10.2006 01:35
Wohnort: Augsburg
Kontaktdaten:

Beitrag von magicpain »

der edit button ist auf die posting.php verlinkt
ich hab jetzt den code

Code: Alles auswählen

// Anti Bot Question Mod - Start
         ABQ_AntwortPruefen('P');
   // Anti Bot Question Mod - End
jetzt VOR

Code: Alles auswählen

case 'editpost':
gesetzt. wenn ich jetzt auf einen edit- oder auch einen anderen postbutton klicke, kommt nur noch eine weisse seite ohne meldungen. habs also wieder rückgängig gemacht.

fällt dir noch was ein?
-= ich poste, also bin ich =-
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Also die Stelle die ich gepostet habe ist auf jeden Fall der Fehler. In der original posting.php sieht der Bereich so aus:

Code: Alles auswählen

switch ( $mode )
{
	case 'newtopic':
		if ( empty($forum_id) )
		{
			message_die(GENERAL_MESSAGE, $lang['Forum_not_exist']);
		}

...SONSTIGER CODE...
		break;

	case 'reply':
	case 'vote':
		if ( empty( $topic_id) )
		{
			message_die(GENERAL_MESSAGE, $lang['No_topic_id']);
		}
...SONSTIGER CODE...
		break;

	case 'quote':
	case 'editpost':
	case 'delete':
	case 'poll_delete':
		if ( empty($post_id) )
		{
			message_die(GENERAL_MESSAGE, $lang['No_post_id']);
		}
...SONSTIGER CODE...
		break;

	default:
		message_die(GENERAL_MESSAGE, $lang['No_valid_mode']);
}
In deinem Code sind die Gruppen völlig anders und falsch aufgeteilt:

Code: Alles auswählen

switch ( $mode )
{
	case 'newtopic':
		if ( empty($forum_id) )
		{
			message_die(GENERAL_MESSAGE, $lang['Forum_not_exist']);
		}
... SONSTIGER CODE ...
		break;
		
	case 'reply':
	case 'editpost':
... BOT MOD -> KEIN BREAK!...
	case 'vote':
		if ( empty( $topic_id) )
		{
			message_die(GENERAL_MESSAGE, $lang['No_topic_id']);
		}
...SONSTIGER CODE...
		break;

	case 'quote':
	case 'delete':
	case 'poll_delete':
		if ( empty($post_id) )
		{
			message_die(GENERAL_MESSAGE, $lang['No_post_id']);
		}
...SONSTIGER CODE...
		break;

	default:
		message_die(GENERAL_MESSAGE, $lang['No_valid_mode']);
}
Im editpost Modus wird die Übergabe einer Topic_id abgefragt, diese wird aber gar nicht übergeben, daher kommt die Fehlermeldung.
Als erstes solltest du dir die Stelle in der Modbeschreibung noch mal ganz genau anschauen und nur an dieser Stelle vielleicht einfach neu ausgehend von einer Originaldatei neu durchführen. Wenn das noch nicht klappt solltest du versuchen deine Struktur auf die Struktur des Originals anzupassen.
Wenn dass auch nicht klappt melde dich noch mal.
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.
magicpain
Mitglied
Beiträge: 18
Registriert: 31.10.2006 01:35
Wohnort: Augsburg
Kontaktdaten:

Beitrag von magicpain »

okay, ich hab den code jetzt geändert. sieht jetzt so aus:

Code: Alles auswählen

switch ( $mode )
{
	case 'newtopic':
		if ( empty($forum_id) )
		{
			message_die(GENERAL_MESSAGE, $lang['Forum_not_exist']);
		}

...SONSTIGER CODE... 
		break;
		
	case 'reply':
	case 'vote':
		if ( empty( $topic_id) )
		{
			message_die(GENERAL_MESSAGE, $lang['No_topic_id']);
		}
...SONSTIGER CODE... 
		break;

	case 'quote':
	
	// Anti Bot Question Mod - Start
			ABQ_AntwortPruefen('P');
	// Anti Bot Question Mod - End
	
	case 'editpost':
	case 'delete':
	case 'poll_delete':
		if ( empty($post_id) )
		{
			message_die(GENERAL_MESSAGE, $lang['No_post_id']);
		}
...SONSTIGER CODE... 
		break;

	default:
		message_die(GENERAL_MESSAGE, $lang['No_valid_mode']);
}
und es funktioniert wieder :-)

vielen lieben dank!!! du hast mir sehr geholfen!
-= ich poste, also bin ich =-
ollig
Mitglied
Beiträge: 9
Registriert: 15.03.2008 19:50

Beitrag von ollig »

Hallo ich habe das gleiche Problem.

meine posting.php sieht wie folgt aus. Eigentlich doch genau, wie es sein sollte oder?

Code: Alles auswählen

switch ( $mode )
{
        case 'newtopic':
                if ( empty($forum_id) )
                {
                        message_die(GENERAL_MESSAGE, $lang['Forum_not_exist']);
                }

                $sql = "SELECT *
                        FROM " . FORUMS_TABLE . "
                        WHERE forum_id = $forum_id";
                break;

        case 'reply':
        case 'vote':
                if ( empty( $topic_id) )
                {
                        message_die(GENERAL_MESSAGE, $lang['No_topic_id']);
                }

                $sql = "SELECT f.*, t.topic_status
                        FROM " . FORUMS_TABLE . " f, " . TOPICS_TABLE . " t
                        WHERE t.topic_id = $topic_id
                                AND f.forum_id = t.forum_id";
                break;

        case 'quote':
        case 'editpost':
        case 'delete':
        case 'poll_delete':
                if ( empty($post_id) )
                {
                        message_die(GENERAL_MESSAGE, $lang['No_post_id']);
                }

                $select_sql = ( !$submit ) ? ", t.topic_title, p.enable_bbcode, p.enable_html, p.enable_smilies, p.enable_sig, p.post_username, p.post_time, pt.post_subject, pt.post_text, pt.bbcode_uid, u.username, u.user_id, u.user_sig" : '';
                $from_sql = ( !$submit ) ? ", " . POSTS_TEXT_TABLE . " pt, " . USERS_TABLE . " u" : '';
                $where_sql = ( !$submit ) ? "AND pt.post_id = p.post_id AND u.user_id = p.poster_id" : '';

                $sql = "SELECT f.*, t.topic_id, t.topic_status, t.topic_type, t.topic_first_post_id, t.topic_last_post_id, t.topic_vote, p.post_id, p.poster_id" . $select_sql . "
                        FROM " . POSTS_TABLE . " p, " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f" . $from_sql . "
                        WHERE p.post_id = $post_id
                                AND t.topic_id = p.topic_id
                                AND f.forum_id = p.forum_id
                                $where_sql";
                break;

        default:
                message_die(GENERAL_MESSAGE, $lang['No_valid_mode']);
}
Ich würde mich freuen, wenn mir einer helfen könnte!
Antworten

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