La redirección que haces:
header("Location:buckaroo.php");
Entre todo el HTML que ahí montas .. NO es correcta en ese punto.
Piensa que diseñas páginas HTML pero que las "genera" PHP .. y no en que "metes" PHP entre el HTML .. así que olvidate de conceptos como "esto para el "body" .. esto para el "head" y cosas así.
Tus validaciones PHP deben hacerse antes de tu código HTML pueda ser generado .. De hecho tu validación decide si corresponde que "hay que redireccionar a otra página" . .por ende .. la página que se pueda generar NO corresponde generarla. Con "Header()" de tipo "location" le indicas al navegador que cambie la página que estás viendo .. pero eso se envia -antes- de cualquier otro tipo de "salida" que puedas enviar al navegador (cliente).
Código PHP:
<?php
if ($_SERVER['REQUEST_METHOD'] == "POST") {
$company = $_POST["txtCompany"];
$name = $_POST["txtNaam"];
$firstname = $_POST["txtAchternaam"];
$login = $_POST["txtLogin"];
$password = $_POST["txtPassword"];
$datum = date("F j, Y, g:i a");
$email = $_POST["txtEmail"];
$adres = $_POST["txtAdres"];
$cp = $_POST["txtCp"];
$city = $_POST["txtLocatie"];
$country = $_POST["bill_country"];
$phone = $_POST["txtTelefoon"];
$fax = $_POST["txtFax"];
if ($company == ""){
$error = "Company, ";}
if ($name == ""){
$error .= "Firstname, ";}
if ($firstname == ""){
$error .= "Lastname, ";}
if ($login == ""){
$error .= "Login, ";}
if ($password == ""){
$error .= "Password, ";}
if ((!ereg(".+\@.+\..+", $email)) || (!ereg("^[[email protected]]+$", $email))){
$error .= "E-mail, ";}
if ($adres == ""){
$error .= "Adress, ";}
if ($cp == ""){
$error .= "Postal code, ";}
if ($city == ""){
$error .= "City, ";}
if ($country == ""){
$error .= "Country, ";}
if ($phone == ""){
$error .= "Phone, ";}
if($error){
// Si tienes un error .. redireccionas a esta misma página .. pero con una variable de control para presentar el mensaje de error.
header ("Location: ".$_SERVER['PHP_SELF']."?control=error");
exit;
}
else
{
$str_sql = "INSERT INTO klanten
(KLANT_COMPANY, KLANT_NAME, KLANT_FIRSTNAME, KLANT_LOGIN, KLANT_CONTRASENA, FECHA_KLANT_ALTA, KLANT_EMAIL, KLANT_ADRES, KLANT_LOCATIE, KLANT_CP, KLANT_LAND, KLANT_TELEFOON, KLANT_FAX)
VALUES
('$company', '$name', '$firstname', '$login', '$password', '$datum', '$email', '$adres', '$city', '$cp', '$country', '$phone','$fax')";
mysql_query($str_sql) or die("Error " . mysql_error());
$sql = "SELECT * FROM klanten WHERE KLANT_LOGIN = '$login' AND KLANT_CONTRASENA = '$password'";
$result = mysql_query($sql) or die(mysql_error());
if (@mysql_num_rows($result) > 0) {
$row = mysql_fetch_assoc($result);
$_SESSION['login_session']['idklant'] = $row['IDKLANT'];
$idklant = $_SESSION['login_session']['idklant'];
mysql_query ("UPDATE cart SET IDKLANT = $idklant where IDCOOKIE = '" . GetCartId() ."'");
}
mysql_close();
header("Location:buckaroo.php");
exit;
}}
?>
Usa todo este código PHP -antes de tu código HTML-
Para mostrar el mensaje de error si se produce done lo tenías ..
Código PHP:
if ($_GET['control']=="error"){
echo "mensaje de error";
}
Un saludo,