Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/05/2006, 20:34
erponcios
 
Fecha de Ingreso: abril-2006
Mensajes: 218
Antigüedad: 20 años, 6 meses
Puntos: 0
Problema con envio de formulario.

Buenas gente, tengo un código creado para que me envie un mail de contacto al rellenar un formulario, y además envie un mail de respuesta.

El código es el siguiente:

Código PHP:
if ($_GET['accion']=="enviar"){

if ((
$_SESSION['controlando'] == $_SESSION['controlando_bis']) AND ($_SESSION['controlando'] <> ''))
{
function 
ValidarDatos($campo){ 
$badHeads = array("Content-Type:", 
"MIME-Version:", 
"Content-Transfer-Encoding:", 
"Return-path:", 
"Subject:", 
"From:", 
"Envelope-to:", 
"To:", 
"bcc:", 
"cc:"); 

foreach(
$badHeads as $valor){ 
if(
strpos(strtolower($campo), strtolower($valor)) !== false){ 
echo 
"<tr><td colspan='2' align='center' class='texto'>No seas spamer</td></tr>";
exit; 
} 
} 
} 

ValidarDatos($_POST['email']); 
ValidarDatos($_POST['nombre']); 
ValidarDatos($_POST['apellidos']);
ValidarDatos($_POST['comentario']);

$nombre = htmlentities($nombre);
$apellidos = htmlentities($apellidos);
$email = htmlentities($email);
$comentario = htmlentities($comentario);

function 
check_email_address($email) {
if (!
ereg("[^@]{1,64}@[^@]{1,255}", $email)) {
return 
false;
}

$email_array = explode("@", $email);
$local_array = explode(".", $email_array[0]);
for (
$i = 0; $i < sizeof($local_array); $i++) {
if (!
ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^
_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$"
, $local_array[$i])) {
return 
false;
}
} 

if (!
ereg("^\[?[0-9\.]+\]?$", $email_array[1])) { 
$domain_array = explode(".", $email_array[1]);
if (
sizeof($domain_array) < 2) {
return 
false;
}

for (
$i = 0; $i < sizeof($domain_array); $i++) {
if (!
ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) {
return 
false;
}
}
}
return 
true;
}


function 
lnonly($string) {
$eregi = eregi_replace("^([A-Za-z\Á\É\Í\Ó\Ú\Ñ\á\é\í\ó\ú\ñ\.]{1}[a-z\á\é\í\ó\ú\ñ\.]+(\ )*)+$","",$string);
if(empty(
$eregi)){
return 
true;
}
return 
false;
}

$nombre=$_POST['nombre'];
$apellidos=$_POST['apellidos'];
$email=$_POST['email'];
$comentario=$_POST['comentario'];
$enviado=$_POST['Enviar'];

if (
check_email_address($email)) 
{ 
if(
lnonly($nombre) && lnonly($apellidos)) 
{
if (isset(
$enviado)) 
{ 
if((
$nombre != "") && ($email != "") && ($apellidos != "") && ($comentario != "")) 
{

$destinatario="[email protected]";
$fecha = date("d-M-y H:i");
$asunto="Formulario de contacto";

$cabeceras.= "MIME-Version: 1.0\r\n"; 
$cabeceras.= "Content-type: text/html; charset=iso-8859-1\r\n"; 
$cabeceras.= "From: {$nombre} {$apellidos}<{$email}>\r\n";
$cabeceras.= "Last-Modified: ".$fecha." GMT\r\n"; 
$cabeceras.= "Cache-Control: no-cache, must-revalidate\r\n"; 
$cabeceras.= "Pragma: no-cache\r\n"; 
$cabeceras.= "Reply-To: {$email}\r\n";

$headers.= "MIME-Version: 1.0\r\n"; 
$headers.= "Content-type: text/html; charset=iso-8859-1\r\n"; 
$headers.= "From: ViguerDesigner Studio <{$destinatario}>\r\n";
$headers.= "Last-Modified: ".$fecha." GMT\r\n"; 
$headers.= "Cache-Control: no-cache, must-revalidate\r\n"; 
$headers.= "Pragma: no-cache\r\n"; 
$headers.= "Reply-To: {$destinatario}\r\n";

$respuesta='Gracias por contactar con ViguerDesigner Studio, '.$nombre.' '.$apellidos.' .';

$texto='El Sr/a: '.$nombre.' '.$apellidos.' ha enviado el siguiente comentario: '.$comentario.' A las: '.$fecha.' .';

if(
mail($destinatario, $asunto, $texto, $cabeceras)){

echo 
"<tr><td colspan='2' align='center' class='texto'>Formulario enviado correctamente.</td></tr>";

mail($email, $asunto, $respuesta,$headers);

}

else { 

echo 
"<tr><td colspan='2' align='center' class='texto'>El Formulario no se ha podido enviar.</td></tr>";

}
}

else{ 

echo 
"<tr><td colspan='2' align='center' class='texto'>Debe rellenar todos los campos</td></tr>";

} 

}

}

else{

echo 
"<tr><td colspan='2' align='center' class='texto'>Solo puede insertar letras en los campos nombre y apellidos</td></tr>";

}

}

else

echo 
"<tr><td colspan='2' align='center' class='texto'>El mail es incorrecto.</td></tr>";

}

else {

echo 
"<tr><td colspan='2' align='center' class='texto'>No seas spamer</td></tr>";

exit; 

} 
}

unset(
$_SESSION['controlando'],$_SESSION['controlando_bis']); 

echo 
"</form>";
echo 
"</table>"; 
El problema es que la línea 160, que es esta:

Código PHP:
if(mail($destinatario, $asunto, $texto, $cabeceras)){ 
Siempre me da este error:


Código:
Warning: Unknown error in c:\foxserv\www\viguer\formulario.php on line 161
Me dice unknown error, y la verdad es que he revisado el código y no se porque puede ser.

Si alguien me pudiera ayudar se lo agradecería mucho, gracias.

Un saludo.