Nach <form> gleiche Seite neu laden

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Maxe
Mitglied
Beiträge: 154
Registriert: 15.07.2006 00:17

Nach <form> gleiche Seite neu laden

Beitrag 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
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag 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:
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Maxe
Mitglied
Beiträge: 154
Registriert: 15.07.2006 00:17

Beitrag 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
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Du hast vorher bereits etwas ausgegeben und dann funktioniert das Weiterleiten nicht.
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Antworten

Zurück zu „Coding & Technik“