Ciao, io utilizzerei le sessioni...

1) esempio nella form

Codice PHP:
<?php
<fieldset>
    <
legend class="label">nome dell'articolo (massimo 255 caratteri) <span class="attenzione">*</span></legend>
    <?php
    // verifico se la sessione è "vuota"...
    if(isset($_SESSION['
messaggio_art2']) && $_SESSION['messaggio_art2'] != '')
    {
        echo $_SESSION['
messaggio_art2']; // stampo il messaggio....
    }
    unset($_SESSION['
messaggio_art2']);  // elimino il messaggio della sessione...
    ?>
    <?php
        $tit = isset ($_SESSION['
data_store_art']['titolo']) ? $_SESSION['data_store_art']['titolo'] : '';
    ?>
    <input name="titolo" type="text" id="titolo" value="<?php echo $tit ?>" size="30" maxlength="255" />
</fieldset>
?>
2) Esempio nel file che processa la form (per abitudine, uso un file con i campi form ed uno che processa)

Codice PHP:
//controllo per verificare che tutti i campi abbiano valore
if ($_POST['id_scat'] == 'B' || empty($_POST['titolo']) || empty($_POST['testo']) )
{
    if (
$_POST['id_scat'] == 'B')
    { 
        
$_SESSION['messaggio_art1'] = '<div id="mess_form" class="errore">Manca:la sotto categoria</div>';
    }
    
    if (empty(
$_POST['titolo']))
    { 
        
$_SESSION['messaggio_art2'] = '<div id="mess_form" class="errore">Manca:il titolo</div>';
    }

    if (empty(
$_POST['testo']))
    {
        
$_SESSION['messaggio_art3'] = '<div id="mess_form" class="errore">Manca:il testo</div>';
    }
     
        
// codice per "riportare" il testo nei campi input della form
    
if(isset($_SERVER['HTTP_REFERER']))
    {
        
$_SESSION['data_store_art']['id_scat'] = $_POST['id_scat'];
        
$_SESSION['data_store_art']['titolo'] = $_POST['titolo'];
        
$_SESSION['data_store_art']['testo'] = $_POST['testo'];
        
header ('Location:' "{$_SERVER['HTTP_REFERER']}");
        return; 
// uso return per bloccare l'esecuzione delo script 
    
}
}
else
{
... 
altro codice PHP 
Spero che ti sia utile.
Ciao.