Comunidad de diseño web y desarrollo en internet online

Formulario php error

Citar            
MensajeEscrito el 27 Abr 2009 10:39 am
Hola a todos, espero que este sea el sitio donde debo poner esto.

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.

Por pinchapilas

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Abr 2009 12:07 pm
En la línea:

Código PHP :

mail($destinatario)
te falta el punto y coma ( ; ) al final de la instrucción...

Comúnmente cuando sale el error
Parse error: syntax error, unexpected T_ALGUN_TIPO_DE_DATO_O_CONDICIONAL_O_CICLO . . .
es porque te comiste un punto y coma ( ; )

Por KB-27

Claber

301 de clabLevel



 

My very secret HQ

firefox
Citar            
MensajeEscrito el 27 Abr 2009 04:54 pm
see
no era mas que eso, que es lo que estamos haciendo debemos ser mas observadores compañeros ;-)

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 27 Abr 2009 11:13 pm
Muchas gracias por contestarme tan pronto. Mañana en cuento pueda lo pongo en marcha.

Ya os contare, muchisimas gracias sois lo mejor.

Por pinchapilas

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Abr 2009 07:23 am
Lo acabo de probar y no funciona ahora da otro error diferente. Al enviar salen todas las frases para no dejar campos vacios, vamos esto:

No se especifico nombre
No se han especificado apelidos
No se especifico teléfono
No se especifico e-mail
Por favor, no envie un mensaje en blanco
No es un correo válido

Warning: mail() expects at least 3 parameters, 1 given in /var/www/vhost/ambulanciassanjose.com/home/html/verde/envio_sug.php on line 56
Mensaje enviado, en breve nos pondremos en contacto.

He probado a rellenarlo de diferentes formas pero el error siempre es el mismo.

¿Tendria que incluir en el servidor donde esta alojada la pagina el correo al que va dirijido el formulario?

Muchas gracias de nuevo.

Por pinchapilas

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Abr 2009 03:56 pm
El error de "los campos vacíos" es porque en tu HTML no les colocaste a los textbox atributo name, y el vector $_POST lo que toma es dicho atributo, no el atributo id... Con respecto a lo otro mail(), o busca aqui mismo en clab, eso ya ha sucedido antes... Saludos...

Por KB-27

Claber

301 de clabLevel



 

My very secret HQ

firefox
Citar            
MensajeEscrito el 30 Abr 2009 10:02 pm
Hola gracias de nuevo. No he tenido mucho tiempo en estos dias. Aunque me interesa resolverlo lo antes posible. De todas formas he estado intentado hacerlo funcionar sin dar demasiado la lata. Ya coloque bien el name y por lo menos ahora ya he conseguido que llegue el correo. Eso si llega vacio y me sigue dando error de confirmacion. Todo lo que tengo puesto para que ningun campo quede vacio sale al darle a enviar, me llega un correo con el nombre del servidor donde tengo alojado el formulario pero vacio.

Tengo que mirarlo bien y en cuanto lo tenga os lo hare saber. Bueno si no consigo al final sacarlo os volvere a pedir ayuda :? .

Gracias de nuevo y ya nos volveremos a ver por aqui. Saludos.

Por pinchapilas

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 May 2009 07:14 pm
mejor usa phpmailer :-) y te dejas de tanta lata como dices jajja saludos

Por talcual

686 de clabLevel



 

Colombia

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.