Foros del Web » Programando para Internet » PHP »

Error en PHP

Estas en el tema de Error en PHP en el foro de PHP en Foros del Web. Hola estoy tratando de hacer funcionar un formulario pero no puedo. Este es mi código php: <?php $name = @trim(stripslashes($_POST['name'])); $from = @trim(stripslashes($_POST['email'])); $subject = ...
  #1 (permalink)  
Antiguo 18/03/2016, 10:50
 
Fecha de Ingreso: marzo-2016
Mensajes: 4
Antigüedad: 8 años, 1 mes
Puntos: 0
Error en PHP

Hola estoy tratando de hacer funcionar un formulario pero no puedo.

Este es mi código php:

<?php
$name = @trim(stripslashes($_POST['name']));
$from = @trim(stripslashes($_POST['email']));
$subject = @trim(stripslashes($_POST['subject']));
$message = @trim(stripslashes($_POST['message']));
$to = '[email protected]';//replace with your email

$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=iso-8859-1";
$headers[] = "From: {$name} <{$from}>";
$headers[] = "Reply-To: <{$from}>";
$headers[] = "Subject: {$subject}";
$headers[] = "X-Mailer: PHP/".phpversion();

mail($to, $subject, $message, $headers);

die;



Y este el codigo en el html es este:

<div class="col-md-4 col-sm-12">
<div class="contact-form bottom">
<h2>Envíanos un mensaje</h2>
<form id="main-contact-form" name="contact-form" method="post" action="sendemail.php">
<div class="form-group">
<input type="text" name="name" class="form-control" required placeholder="Nombre">
</div>
<div class="form-group">
<input type="email" name="email" class="form-control" required placeholder="Email">
</div>
<div class="form-group">
<textarea name="message" id="message" required class="form-control" rows="8" placeholder="Mensaje"></textarea>
</div>
<div class="form-group">
<input type="submit" name="submit" class="btn btn-submit" value="Submit">
</div>
</form>
</div>
</div>

Ayuda!!!!! Por que no llegan los correos del formulario

gracias
  #2 (permalink)  
Antiguo 18/03/2016, 11:06
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Error en PHP

Hola zhermoso,

Para empezar las @ antes de la captura de las variables no te ayudan en nada porque lo único que hacen es ocultar posibles errores que haya que es lo que te podría ayudar a resolverlos:

Para resolver un error, primero hay que saber qué error es.

Por otra parte, deberías verificar si recibes cada variable:

Código PHP:
Ver original
  1. if ( isset($_POST['variable']) && !empty($_POST['variable']) ) {
  2. $variable = trim(stripslashes($_POST['variable']));
  3. }

Después, te convendría depurar tu código a ver dónde te está fallando, no obstante, te recomiendo que utilices la librería PHPMailer, es más segura a la hora de que se entreguen los correos, ya que se puede usar con autenticación SMTP y eso evita que los correos se marquen como SPAM.

Espero haberte ayudado.
  #3 (permalink)  
Antiguo 18/03/2016, 12:59
 
Fecha de Ingreso: marzo-2016
Mensajes: 4
Antigüedad: 8 años, 1 mes
Puntos: 0
Respuesta: Error en PHP

De hecho no recibo ninguna variable al correo, al lllenar el formulario y enviarlo no me marca error, y en syntaxis tampo, no se donde pueda estar el error.

Gracias!
  #4 (permalink)  
Antiguo 18/03/2016, 14:23
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Error en PHP

Hola zhermoso,

A ver, para empezar, los headers no son un array son una variable y las variables no se concatenan con [] si no con ., algo así:

Código PHP:
Ver original
  1. $headers = "MIME-Version: 1.0";
  2. $headers .= "Content-type: text/plain; charset=iso-8859-1";
  3. $headers .= "From: {$name} <{$from}>";
  4. $headers .= "Reply-To: <{$from}>";
  5. $headers .= "Subject: {$subject}";
  6. $headers .= "X-Mailer: PHP/".phpversion();

Pero además, debes hacer depuración de tu código, lo puedes hacer usando var_dump:

Código PHP:
Ver original
  1. var_dump($_POST);

No te puede marcar ningún error porque, como te he dicho antes, los estás ocultando cuando haces:

Código PHP:
Ver original
  1. $name = @trim(stripslashes($_POST['name']));

La @ lo que hace es ocultar los posibles errores que pueda haber.

Te recomiendo leer el manual, sobre todo la función mail, si es que no vas a usar la librería que te he recomendado antes.

Solo con postear un código copiado de cualquier sitio no vas a resolver nada, debes hacer algo por tu cuenta y, si algo te falla, pedir ayuda, pero no esperes que te demos el trabajo hecho, para eso está este foro.

Ánimo y a aprender, que todos hemos pasado por ahí de una u otra forma.
  #5 (permalink)  
Antiguo 31/03/2016, 16:35
 
Fecha de Ingreso: marzo-2016
Mensajes: 4
Antigüedad: 8 años, 1 mes
Puntos: 0
Respuesta: Error en PHP

Hola, ya logre que funcionara mi formulario pero sólo funciona si el correo pertenece a un dominio de hotmail o gmail, si es uno personal de mi empresa no llegan, saben por que pasa eso?

Gracias
  #6 (permalink)  
Antiguo 31/03/2016, 16:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error en PHP

Cita:
si es uno personal de mi empresa no llegan, saben por que pasa eso?
Pues porque necesitas un servidor de SMTP certificado, no es tan simple como usar mail() y todo se arregla, tampoco las cabeceras ayudan, etc.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: formulario, html
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 03:59.