Registro de usuario duplicado

Como lo dice el mismo titulo cuando un usuario se registra todo marcha bien, pero todo es que regrese al formulario y quiera registrar los mismo datos y el registro sucede otra vez saltandose la seguridad del mismo. Expondre el codigo de registro por si a alguien se le ocurre una idea, tambienq quiero comentar que esto no ocurre cuando un usuario se registra y yo limpio la cache de la base de datos.

$displayForm = false;

if ($_POST['asfsagrg4'] != "d76fghhjd") {  
	if ($_GET['confirm'] != NULL) { // This is the code that executes when a user follows the activation email code:
		$post_username = am_injection($_GET['username']);
		$activationcode = am_queries($db, "SELECT * FROM AMCMS_users WHERE username='$post_username'");
		$confirmation = sha1($activationcode[0][0].$activationcode[0][1].$activationcode[0][2].$activationcode[0][4].$activationcode[0][5].$activationcode[0][6]);		
		if ($_GET['confirm'] == $confirmation) {
			am_queries($db, "UPDATE AMCMS_users SET permissions=0 WHERE username='$post_username';");		
			$errorMessage .= $reg_activationsuccess;
		} else {
			$errorMessage .= $reg_activationfail;
		}
	} else {
		if ($registration_enabled == 1) {
			$displayForm = true;

		} elseif ($registration_enabled == 0) { // this is the end of the if block that checks whether or not registration is enabled.
			$errorMessage .= $reg_disabled;
		}

	} // This is the end of the get/confirm !=NULL if statement
	
} else { // This code executes when the registration form has been submitted.
		$post_username = trim(am_injection($_POST['username'])); // This pulls all the form data, filtered through the am_injection black list
		$post_password = trim(am_injection($_POST['password'], true));
                $post_passwordconfirm = trim(am_injection($_POST['passwordconfirm'], true));
		$post_email = trim(am_injection($_POST['email'], true));
		$post_emailconfirm = trim(am_injection($_POST['emailconfirm'], true));
		$post_regagree = am_injection($_POST['agree']);
		
		// Server side validation (very useful when users have javascript disabled)
		if ($post_email != $post_emailconfirm) {$errorMessage .= $reg_emailmatch; $fail = true;}
                if ($post_password != $post_passwordconfirm) {$errorMessage .= $reg_passmatch; $fail = true;}
		if ($post_regagree != 'agree') {$errorMessage .= $reg_tosfail; $fail = true;}
		if ($post_username == NULL | $post_password == NULL | $post_email == NULL | $post_emailconfirm == NULL) {$errorMessage .= $reg_allfields; $fail = true;}
                if(!preg_match("/^[a-zA-Z0-9áéíóúàèìòùÁÉÍÓÚÀÈÌÒÙÑñ\s]{2,6}+$/",$post_username)){$errorMessage .= $reg_cantidadnick; $fail = true;}
                if(!preg_match("/^[a-zA-Z0-9áéíóúàèìòùÁÉÍÓÚÀÈÌÒÙÑñ\s]{2,6}+$/",$post_password)){$errorMessage .= $reg_cantidadpass; $fail = true;}


 
		// Check for a user with the same email address
		$sql = 'SELECT COUNT( * ) AS `Rows` , `email` FROM `AMCMS_users` GROUP BY `email` ORDER BY `email` ;';
		$numusers = am_countrecords($db, $sql);
		$emailcheck = am_queries($db, $sql);
			$icounter = 0;
			while ($icounter < $numusers) {	// 
				if ($emailcheck[$icounter][1] == $post_email) {$errorMessage .= $reg_duplicateemail; $fail = true;}
			$icounter++;
			}			

		// Check for a user with the same username
		$sql = 'SELECT COUNT( * ) AS `Rows` , `username` FROM `AMCMS_users` GROUP BY `username` ORDER BY `username` ;';
		$numusers = am_countrecords($db, $sql);
		$usercheck = am_queries($db, $sql);
			$icounter = 0;
			while ($icounter < $numusers) {	// 
				if ($usercheck[$icounter][1] == $post_username) {$errorMessage .= $reg_duplicatename; $fail = true;}
			$icounter++;
			}	
			
		$finalpass = sha1($post_password.$regsalt); // Password hash
		$current_ip = getenv("REMOTE_ADDR");
		$regdate = date("Y-m-d");
		
		if ($fail != true) { // Finally, we're ready to create this user.
			am_queries($db, "INSERT INTO `AMCMS_users` (`userkey` ,`username`, `password`, `permissions`, `ip`, `datereg`, `email`, `avatar`, `arcadempoints`) VALUES (NULL, '$post_username', '$finalpass', $activation, '$current_ip', '$regdate', '$post_email', 'c1878ddaccbd448391f5149a5b496a00.jpg', 0);");
                        $errorMessage .= $reg_success;
                        header("location:index.php?loadpage=./includes/login.php");  

			if ($activation == 1) { // No activation
				$errorMessage .= $reg_noactivation;
			} elseif ($activation == 2) { // Email activation
				$purl = $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
				$activationcode = am_queries($db, "SELECT * FROM AMCMS_users WHERE username='$post_username';");
				$confirmation = sha1($activationcode[0][0].$activationcode[0][1].$activationcode[0][2].$activationcode[0][4].$activationcode[0][5].$activationcode[0][6]);
				
				$activation_email = str_replace(array("%post_username%","%purl%","%confirmation%"),array($post_username,$purl,$confirmation),$activation_email);
				if (mail($post_email, $subject, $activation_email, $actheaders)) {
				   $errorMessage .= $reg_activationnotice;
				} else {
				   $errorMessage .= $reg_emailactproblem;
				}
			} elseif ($activation == 3) { // Admin activation
				$errorMessage .= $reg_requireadmin;
			}
		}
}


// Create template variables:
	$smarty->assign('sitetitle',"Registration - ".$sitetitle);
	$smarty->assign('errorMessage',$errorMessage);
	$smarty->assign('displayForm',$displayForm);
?>

no se si haga falta el formulario pero lo pondre

<form action="#" method="post" name="register" onsubmit="return checkemail();">
						 <br /><center>{php}am_adunit(3);{/php}</center>
                                                 <h1>Registrate y Conectate</h1>
						  <p>Solo escriba un Nick y una contraseña de 6 caracteres + un mail, acepta los terminos luego te conectas y listo</p>
						  <br />
						        <p>Nick: <input type="text" name="username" maxlength="6" id="username"></p>
							<p>Contraseña: <input type="password" maxlength="6" name="password" id="password" /></p>
                                                        <p>Repetir Contraseña: <input type="password" maxlength="6" name="passwordconfirm" id="passwordconfirm" /></p>   
							<p>Email: <input type="text" name="email" id="email" /></p>
							<p>Confirmar Email: <input type="text" name="emailconfirm" id="emailconfirm" /></p>
							<p>Terminos y condiciones: 
							  <textarea id="regtos" rows="3" cols="5">Estoy de acuerdo en tener sólo una cuenta, y que mi uso de este 
sitio puede ser revocado en cualquier momento si hago mal uso de mi cuenta. También acepta que este sitio publique comentarios realizados por mi en redes sociales (observación los comentarios serán publicados previo a una comprobación departe de la administración)</textarea></p>
							<p>Acepto los terminos y condiciones: <input type="checkbox" name="agree" id="agree" value="agree" /></p>
							<input type="hidden" name="asfsagrg4" value="d76fghhjd" />
							<p><input type="submit" name="submit" value="Register" id="regsubmit" /></p>
						</form>
Seria muy sencillo si lo hubieras hecho tu , pero aparentemente es un script, y este script maneja la clase smarty y otras funciones mas por lo que asi de simple no puedo corregir el error , necesitaria saber tooooodoooo el script para resolverlo facilmente.

Saludos!
Aunque no lo corrigieras yo si conosco el script aunque no ke des la solución lista agradecería una luz o un ejemplo aplicado a otro registro de usuario que conocieras una luz o algo parecido a una solución y intentare meterle caña