Que tal !!!
Hay muchos errores en los if y según el codigo veo que envias el mensaje si hay error, no se si esa es la lógica de la aplicación pero de todas formas revisa esto:
Código PHP:
<?php
if (empty($_POST['nombre'])) {$error .= "<p class=\"error\">No has introducido tu nombre</p>";
}
if (empty($_POST['mail'])) {$error .= "<p class=\"error\">No has introducido tu dirección de correo</p>";
}
if (empty($_POST['tipo'])) {$error .= "<p class=\"error\">No has introducido el tipo de reporte</p>";
}
if (empty($_POST['mensaje'])) {$error .= "<p class=\"error\">No has escrito nada en el cuerpo del mensaje</p>";
}
$text_len = strlen($_POST['mensaje']);
if($text_len > 800) { $error .= "<p class=\"error\">El comentario debe ser de menor a 800, se ingresaron $text_len </p>";
}
if(isset($_POST['mail'])){
if (!comprobar_email($_POST['mail'])) {
$error .= "<p class=\"error\">La dirección de correo es incorrecta</p>";
}
}// end of email check
if($error)
{
echo $error;
$nombre = $_POST['nombre'];
$mail = $_POST['mail'];
$tipo = $_POST['tipo'];
$contenido = $_POST['mensaje'];
$header = 'From: ' . $mail . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";
$mensaje = "Este mensaje fue enviado por " . $nombre . ", Usuario de NeverFall.co.cc \r\n";
$mensaje .= "Su e-mail es: " . $mail . " \r\n";
$mensaje .= "Tipo: " . $tipo . " \r\n";
$mensaje .= "Mensaje: " . $contenido . " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());
$para = "[email protected]";
$asunto = "Bug Reportado en NeverFall";
$descodificado = utf8_decode($mensaje);
}
mail($para, $asunto, $descodificado, $header);
header("Location: http://neverfall.co.cc/bugreport/mensajecorrecto.html");
?>
Lo que te acabo de pegar no tiene errores de sintaxis pero creo que de lógica si, y otra cosa deberias usas un ide, puedes mirar netbeans o eclipse estos te ayudan a escribir un codigo mas ordenado y fácil de entender.
Saludos.