Seite 1 von 1

Nach <form> gleiche Seite neu laden

Verfasst: 04.02.2008 12:01
von Maxe
Hallo zusammen,

ich möchte den Status-Mod etwas umbauen.
Er funktioniert derzeit wie folgt:
- Man ändert den Status und klick auf "Los"
- Anschließend wird über folgenden Code der Status in der DB aktualisiert:

Code: Alles auswählen

if( isset($HTTP_POST_VARS['submit']) && $userdata['user_id'] != ANONYMOUS ) 
{
	$sql = "UPDATE ". TOPICS_TABLE ." SET topic_info = '". str_replace("\'", "''", $HTTP_POST_VARS['topic_info']) ."' WHERE topic_id = $topic_id";
	if( !$db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, 'could not update topic info.', '', __LINE__, __FILE__, $sql);
	}
	$message = $lang['Topic_info_updated'] .'<br /><br />'. sprintf($lang['Click_return_topic'], '<a href="'. append_sid("viewtopic.$phpEx?". POST_TOPIC_URL ."=$topic_id") .'">', '</a>') .'<br /><br />'. sprintf($lang['Click_return_forum'], '<a href="'. append_sid("viewforum.$phpEx?". POST_FORUM_URL ."=$forum_id") .'">', '</a>');
	message_die(GENERAL_MESSAGE, $message);
}
- Gleichzeitig wird zwar die selbe Seite neu geladen aber mit einem Text der durch diesen Teil zustande kommt:

Code: Alles auswählen

	$message = $lang['Topic_info_updated'] .'<br /><br />'. sprintf($lang['Click_return_topic'], '<a href="'. append_sid("viewtopic.$phpEx?". POST_TOPIC_URL ."=$topic_id") .'">', '</a>') .'<br /><br />'. sprintf($lang['Click_return_forum'], '<a href="'. append_sid("viewforum.$phpEx?". POST_FORUM_URL ."=$forum_id") .'">', '</a>');
	message_die(GENERAL_MESSAGE, $message);
Ich möchte das man nicht auf diese "Zwischenseite" kommt sondern einfach nur aktualisiert.
Kommentiere ich den "$message"-Teil aus kommt man direkt wieder auf die normale Seite, die DB wurde auch aktualisiert, aber nun steht noch der alte Status drin. Erst nach manuellem Aktualisieren ist der neue drin.

Wie kann ich die Seite automatisch aktualisieren?

Viele Grüße Martin

Verfasst: 04.02.2008 14:34
von S2B
Verwende das

Code: Alles auswählen

redirect(append_sid("viewtopic.$phpEx?". POST_TOPIC_URL ."=$topic_id", true));
anstatt der Ausgabe der Nachricht. :wink:

Verfasst: 04.02.2008 14:48
von Maxe
Hallo S2B,

danke erst einmal für die Antwort.

Ich habe jetzt ganz naiv mal folgendes rausgeschmissen:

Code: Alles auswählen

	$message = $lang['Topic_info_updated'] .'<br /><br />'. sprintf($lang['Click_return_topic'], '<a href="'. append_sid("viewtopic.$phpEx?". POST_TOPIC_URL ."=$topic_id") .'">', '</a>') .'<br /><br />'. sprintf($lang['Click_return_forum'], '<a href="'. append_sid("viewforum.$phpEx?". POST_FORUM_URL ."=$forum_id") .'">', '</a>');
	message_die(GENERAL_MESSAGE, $message);
und gegen das ersetzt:

Code: Alles auswählen

redirect(append_sid("viewtopic.$phpEx?". POST_TOPIC_URL ."=$topic_id", true));
Dann kommt nach dem Klick auf "Los" anschließend folgende Fehlermeldung:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/web34/html/includes/template.php(127) : eval()'d code:1) in /var/www/web34/html/includes/functions.php on line 993
Was möchte der gute Server von mir? :)

Grüße Maxe

Verfasst: 04.02.2008 18:49
von S2B
Du hast vorher bereits etwas ausgegeben und dann funktioniert das Weiterleiten nicht.