Foros del Web » Programando para Internet » PHP »

El submit de un formulario no activa el PHP

Estas en el tema de El submit de un formulario no activa el PHP en el foro de PHP en Foros del Web. Hola buenas, ante todo presentarme, soy nuevo en este foro, espero tener una estancia concurrida :) bien, mi problema es el siguiente: quiero hacer un ...
  #1 (permalink)  
Antiguo 20/05/2015, 21:19
 
Fecha de Ingreso: mayo-2015
Mensajes: 5
Antigüedad: 8 años, 11 meses
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
  #2 (permalink)  
Antiguo 20/05/2015, 22:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: El submit de un formulario no activa el PHP

Cita:
tan solo se abre en la web el archivo.php en forma de texto
Si eso sucede entonces es bastante probable que ni siquieras tengas un servidor web habilitado con soporte con PHP.

¿O cómo es que ejecutas exactamente dichas páginas?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 26/05/2015, 08:24
 
Fecha de Ingreso: mayo-2015
Mensajes: 5
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: El submit de un formulario no activa el PHP

Cita:
Iniciado por pateketrueke Ver Mensaje
Si eso sucede entonces es bastante probable que ni siquieras tengas un servidor web habilitado con soporte con PHP.

¿O cómo es que ejecutas exactamente dichas páginas?
ok justo acabo de saber que primero tengo que subir los archivos al servidor, yo lo estaba probando directamente desde el archivo html abriendolo con chrome :/

igualmente no me funciona, ya no se me abre el archivo con el codigo php pero no me hace absolutamente nada
  #4 (permalink)  
Antiguo 26/05/2015, 09:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: El submit de un formulario no activa el PHP

Crea un archivo simple y subelo también:

Código PHP:
Ver original
  1. <?php echo 'Hola mundo';

Cuando lo subas podrías compartirnos algún enlace, vamos, que adivinar es complicado.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: formulario, html, submit, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:22.