too long

I cannot redirect to the page I want after even I enter correct recaptcha challenge and activation code. I am doubtful what is the problem in my php activation script. Can anybody check what is the error in my script?

Here is my script:

<?php
    require_once('recaptchalib.php');
    $privatekey = "6LfTwvMSAAAAABt03yGb0_12rgLNrCDuoibU4gbh";
    $resp = recaptcha_check_answer ($privatekey,
    $_SERVER["REMOTE_ADDR"],
    $_POST["recaptcha_challenge_field"],
    $_POST["recaptcha_response_field"]);

    if (!$resp->is_valid) {
        // What happens when the CAPTCHA was entered incorrectly
        die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .
        "(reCAPTCHA said: " . $resp->error . ")");
    } else {
        $username = $_POST['username'];
        $activation_code = $_POST['activation_code'];
        $db_host = "server";
        $db_name = "table";
        $db_use = "user";
        $db_pass = "pass";
        $link = mysqli_connect($db_host, $db_use, $db_pass);
        mysqli_select_db($link, $db_name);
        $command = "UPDATE email_activation SET check_activation='$activation_code' WHERE username='$username' and activation='$activation_code'";
        $result = mysqli_query($command);
        if ($result) {
            $query = "SELECT * FROM email_activation where username LIKE '%$username%' LIMIT 0 , 1 ";
            $result = mysqli_query($query) OR die(mysqli_error());
            while($row = mysqli_fetch_array($result))
            {
                $username = $row['username'];
                $password = $row['password'];
                $email = $row['email'];
                $postcode = $row['postcode'];
                $query = "INSERT INTO member (username, password, email, postcode) VALUES ('$username','$password','$email','$postcode')";
                $result = mysqli_query($link, $query) OR die(mysqli_error());
                if ($result) {
                    echo "Congratulations. Your membership has been activated redirecting...";
                    $_SESSION['user_logged'] = '1';
                    header("location:index.html");
                }else{
                    echo ("Congratulations. Your membership has been activated but it's can't saved in database.");
                    header("location:index.html");
                }
            }
        }else{
            echo ("You've entered an invalid username / activation code – please retry");
            header("location:activation-form.php");
    }
}
?>

You cant use header('location: something.html'); after echoing data.

Header has to be called before anything is sent to the browser.

echo ("Congratulations. Your membership has been activated but it's can't saved in database.");
header("location:index.html");

I advise passing the error on to the next page...

header("location: index.html?err=dberr");