Mantenha seu PHP antes de qualquer HTML, a menos que seja necessário. Além disso, especifique as colunas em sua consulta porque uma string em branco pode causar falha na consulta.
Você realmente precisa armazenar a senha de confirmação no banco de dados? Eu não acredito que você faça, e certifique-se de fazer hash. Confirme se todas as suas colunas no banco de dados correspondem ao que você está inserindo.
<?php
include("config.php");
if(isset($_POST['submit'])) {
$name=mysql_real_escape_string($_POST['username']);
$email=mysql_real_escape_string($_POST['email']);
$password=mysql_real_escape_string($_POST['password']);
$cpassword=mysql_real_escape_string($_POST['confirmpassword']);
$query = mysql_query("INSERT INTO register
(name_column,email_column,password_column)
VALUES('".$name."', '".$email."', '".$password."')");
if($query) {
header("location:success.php");
}
} else {
echo "no form data received.";
}
?>
<!DOCTYPE html>
//HTML HERE//