Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/05/2015, 21:19
argosgaia
 
Fecha de Ingreso: mayo-2015
Mensajes: 5
Antigüedad: 9 años
Puntos: 0
El submit de un formulario no activa el PHP

Hola buenas,

ante todo presentarme, soy nuevo en este foro, espero tener una estancia concurrida :)

bien, mi problema es el siguiente:

quiero hacer un formulario sencillo, para que se puedan mandar correos sin pasar por Outlook; he hecho el archivo.php para ello, pero cuando pulso el botón de enviar, tan solo se abre en la web el archivo.php en forma de texto, mostrando el código

el formulario en HTML es el siguiente:

Código HTML:
<form action="contacto.php" method="POST" name="contacto" enctype="text/plain">
<input type="text" size="30" name="nom" placeholder="Nombre"></br></br>
<input type="text" size="30" name="email" placeholder="Correo electrónico"></br></br>
<input type="text" size="30" name="asunto" placeholder="Asunto"></br></br>
<textarea name="mensaje" cols="45" rows="10" placeholder="Escribe aquí tu mensaje"></textarea></br></br>
<input type="submit" value="Enviar"><input type="reset" value="Limpiar">
</form> 
la hoja de PHP que hice, copiándola de algún usuario de un foro y cambiando los datos, es la siguiente:

Código PHP:
<?php
    
echo "

"
;
    
// Primero revisamos que las variables que vienen de los formularios no se encuentren vacías
    
if (empty($_POST['nom']))
        echo 
"No se especifico nombre
"
;
    if (empty(
$_POST['email'))
        echo 
"No se especifico E - mail
"
;
    if (empty(
$_POST['asunto']))
        echo 
"No se especifico asunto
"
;
    if (empty(
$_POST['mensaje']))
        echo 
"Por favor, no envie un mensaje en blanco
"
;
    
// Luego validamos con strchr la primera ocurrencia de la arroba y el punto, es decir, validamos
    // que sea un email lo que se escribe en el campo correspondiente
    
if ((!strchr($_POST['email'],"@")) || (!strchr($_POST['email'],".")))
    {    
        echo 
"No es un correo válido
"
;
        
// Esta bandera se activa en false si no es un email válido
        
$valida false;
    }
    
    
// Si todo sale bien    
    
if ((empty($_POST['nom'])) && (empty($_POST['email'])) && (empty($_POST['asunto'])) && (empty($_POST['mensaje'])) && (valida!= false))
    {
        
// Creamos el header para el mensaje
        // Sección Para:
        
$to $_POST['[email protected]'];
        
// Asunto
        
$subject $_POST['asunto'];
        
// El content-Type y demás información para el mailer
        
$headers "MIME-Version: 1.0\n";
        
$headers .= "Content-type: text/html; charset=iso-8859-1 \r\n";
        
// El De: en la forma Nombre [email protected], esto garantiza que
        // en el cliente de correo del receptor se vea sólo el nombre de quien envia
        // en su bandeja de entrada
        
$headers .= "From: $_POST[nombre]  <$_POST[email]> \r\n";
        
// Opcional: Resopnder a:
        
$headers .= "Reply-To: " $_POST['email']; 
        
// El mensaje
        
$message $_POST['mensaje'];
        
// Abrimos un pipe Unix para ejecutar sendmail en el servidor, el "w" es porque se abre para escritura
        
$fd popen("/usr/sbin/sendmail -t"'w');
        
// Metes las cabeceras del mensaje en el pipe
        
fputs($fd"To: $to\n");
        
fputs($fd"Subject: $subject\n");
        
fputs($fd"X-Mailer: PHP4\n");
        if (
$headers) {
            
fputs($fd"$headers\n");
        }
        
// Dejas un espacio en blanco
        
fputs($fd"\n");
        
// Metes el mensaje en el pipe
        
fputs($fd$message);
        
//Cierras el pipe y con ello se envia el mensaje
        
pclose($fd);
        echo 
"Mensaje enviado, Gracias por sus sugerencias.
"
;
    }
    echo 
'Regresar</p>';
?>
alguien me podría decir qué está mal por favor? o alguna idea de por qué cuando pulso el botón Enviar solo me abre el código pero no realiza la acción?

muchas gracias de antemano,

un saludo