I dobrze myślisz... Ustawiasz w sesji sobie zmienną z komunikatami. Zazwyczaj jest to jakaś tablica. Na stronie formularza sprawdzasz, czy ona istnieje i czy coś ma. Jeśli tak, to wyświetlasz elementy tablicy i je usuwasz, bo może tylko raz się pojawić taka wiadomość. To tak zwane informacje flash, czyli jednorazowe. Wiadomości te ustawiasz wewnątrz skryptu, który zajmuje się obrabianiem informacji POST, czyli ten co jest jako action formularza.
Jak to może wygladać przykładowo?
Skrypt formularza:
<?php
?>
Tu początek layoutu jako html
<?php
//tu częśc z komunikatami
if( isset( $_SESSION['komunikaty'] ) && count( $_SESSION['komunikaty'] ) > 0
) { foreach( $_SESSION['komunikaty'] AS $single ) {
?>
<div class="komunikat
<?php echo $single['type']; ?>">
<?php echo $single['message']; ?></div>
<?php
}
}
//czyszczenie tablicy komunikatów
$_SESSION['komunikaty'] = array(); ?>
Tutaj caly formularz
a jak przetwarzanie?
<?php
if( isset( $_POST['zaloguj'] ) ) { //tu sobie robisz co chcesz z formularzem i jeśli napotkasz błąd, to możesz dać:
$_SESSION['komunikaty'][] = array( 'type' => 'error', 'message' => 'Jakis tekst czego błąd tyczy'); //lub dać informację o powodzeniu
$_SESSION['komunikaty'][] = array( 'type' => 'ok', 'message' => 'Jakis tekst o sukcesie'); //czy też ogólna informację, że coś zrobiłeś
$_SESSION['komunikaty'][] = array( 'type' => 'info', 'message' => 'Jakis tekst informacyjny'); }
//na koniec przekierowanie na stronę formularza
header( 'Location: formularz.php' );
Oczywiście nie zapomnij o ostylowaniu... Ja tutaj dałem przykładowo 4 klasy, ktore miały by postać:
div.komunikat {} /* jakaś ogólna o tym jak komunikaty wyglądają na stronie */
div.komunikat.error {} /* jak komunikaty błędów wyglądają */
div.komunikat.ok {} /* jak komunikaty powodzenia wyglądają */
div.komunikat.info {} /* jak komunikaty informacyjne wyglądają */
Jakwidzisz.. Nie jest to trudne nawet w prostej wersji