Tengo un problema con un formulario de php el cual ha sido creado por Aoyama (gracias por el formulario).
Yo he cambiado los datos, pero me da error en la linea 58 segun me pone el error pero no se lo que es. Es donde cierra el pipe, (no se muy bien que significa pero estoy en ello).
Este es el error en cuestion que lo tengo alojado en un servidor para que funcione
Parse error: syntax error, unexpected T_STRING in /var/www/vhost/ambulanciassanjose.com/home/html/verde/envio_sug.php on line 58
Aqui pongo el codigo html:
<form action="envio_sug.php" method="post" enctype="text/plain">
<label for="nombre">Nombre</label>
<input type="text" id="nombre" />
<label for="apellidos">Apellidos</label>
<input type="text" id="apellidos" />
<label for="telefono">Telefono</label>
<input type="text" id="telefono" name="telefono" size="20" />
<label for="email">E-mail</label>
<input type="text" id="email" />
<label for="observaciones">Observaciones</label>
<textarea name="observaciones" id="observaciones" cols="45" rows="5" /></textarea>
<input type="submit" value="Enviar" class="boton"/>
</form>
y esto es el php, con los comentarios que estan muy bien.
<?php
echo "<p>";
// Primero revisamos que las variables que vienen de los formularios no se encuentren vacías
if (empty($_POST['nombre']))
echo "<b>No se especifico nombre</b><br>";
if (empty($_POST['apellidos']))
echo "<b>No se han especificado apelidos</b><br>";
if (empty($_POST['telefono']))
echo "<b>No se especifico teléfono</b><br>";
if (empty($_POST['email']))
echo "<b>No se especifico e-mail</b><br>";
if (empty($_POST['observaciones']))
echo "<b>Por favor, no envie un mensaje en blanco</b><br>";
// 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 "<b>No es un correo válido</b><br>";
// Esta bandera se activa en false si no es un email válido
$valida = false;
}
// Si todo sale bien
if ((empty($_POST['nombre'])) && (empty($_POST['apellidos'])) && (empty($_POST['telefono'])) && (empty($_POST['email'])) && (empty($_POST['observaciones'])) && (valida!= false))
{
// Creamos el header para el mensaje
// Sección Para:
$to = $_POST['para'];
// Asunto
$subject = $_POST['observaciones'];
// 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['sug_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);
$destinatario = "[email protected]";
mail($destinatario)
//Cierras el pipe y con ello se envia el mensaje
pclose($fd);
echo "<b>Mensaje enviado, en breve nos pondremos en contacto.</b><br>";
}
echo '<a href="www.google.es">Regresar</a></p>';
?>
Lo dicho si alguien sabe donde esta el fallo se lo agradeceria, porque la verdad de php no tengo demasiada idea, pero no me gusta tener que enviar un mensaje con mailto.
Gracias a todos.