ciao , mi trovo di fronte a questo problema

ho una pagina registrazione , invio i dati alla stessa pagina per le varie verifiche; qui il codice
codice:
   <?php
        $messaggionome = "inserire valore";
        $messaggiomail = "inserire mail";
        $messaggiouser = "inserire utente";
        ?>
        <form action="registrazione.php" method="post">
            <table id="registra" name="registra">
                <thead>
                <tr>
                    <td>
                        Registrati
                    </td>
                </tr>
                <thead>
                <tr>
                    <td>NOME :</td>
                    <td><input name="nome" id="nome" type="text" value="<?php echo "$messaggionome" ?>"/></td>
                    <?php
                    $nome = $_POST['nome'];
                    if (empty($nome) || ($nome == "inserire nome")){
                        $messaggio = "inserire questo campo";
                        echo "<td>$messaggio</td>";
                    }else  if (!is_string($nome)){
                            $messaggio = "il campo non può contenere numeri";   
                             echo "<td>$messaggio</td>";
                        }                    
                    ?>
non sono pratico in php , ma ho notato che is_string non funziona , penso sia scritta male o sbaglio utilizzo.

quando avvio l'applicazione mi esce il seguente errore:

( ! ) Notice: Undefined index: nome in D:\Sviluppo\php5home\primotest\registrazione.php on line 29
Call Stack
# Time Memory Function Location
1 1.0060 56536 {main}( ) ..\index.php:0
2 1.0096 67040 include( 'D:\Sviluppo\php5home\primotest\registrazione.php' ) ..\index.php:41

qualcuno mi puo dare una mano ?

grazie