ho creato questo inizio di codice per registrazione nuovi utenti (in parte ricavato da postnuke)

<?php
if (!isset($_POST['op'])){
$op = "";
} else {
$op = $_POST['op'];
}

function confirmNewUser($username, $user_email, $user_password, $user_password2) {

echo "prova del modulo";
}

function new_user() {
echo "<form action=\"index.php\" method=\"post\">\n"
."Registrazione Nuovo Utente

\n"
."<table cellpadding=\"0\" cellspacing=\"10\" border=\"0\">\n"
."<tr><td>Nikname:</td><td><input type=\"text\" name=\"username\" size=\"30\" maxlength=\"25\"></td></tr>\n"
."<tr><td>Email:</td><td><input type=\"text\" name=\"user_email\" size=\"30\" maxlength=\"255\"></td></tr>\n"
."<tr><td>Password:</td><td><input type=\"password\" name=\"user_password\" size=\"11\" maxlength=\"40\"></td></tr>\n"
."<tr><td>Riscrivi Password:</td><td><input type=\"password\" name=\"user_password2\" size=\"11\" maxlength=\"40\">
<font class=\"tiny\">(Lascia in bianco per generare automaticamente la Tua Password)</font></td></tr>\n";
echo "<tr><td colspan='2'>\n"
."<input type=\"hidden\" name=\"op\" value=\"new user\">\n"
."<input type=\"submit\" value=\"Nuovo Utente\">\n"
."</td></tr></table>\n"
."</form>\n";
}

switch($op) {

default:
new_user();
break;

case "new user":
confirmNewUser($username, $user_email, $user_password, $user_password2, $random_num);
break;
}
?>
la pagina chiamata index.php alla chiamata si apre regolarmente e mostra il form di inserimento, ma quando lo invio mi và regolarmente a confirmNewUser e mi mostra che non sono definite le variabili elencate in case "new user"(....).

dove sbaglio?
grazie Luigi