Comunidad de diseño web y desarrollo en internet online

Error en la linea final del código ¿?

Citar            
MensajeEscrito el 06 Sep 2012 08:06 pm
Estoy aprendiendo php, concretamente a hacer un formulario de contacto

He seguido un videotutorial, (este http://www.youtube.com/watch?v=Sx9QOVGFW-Q )

y no sé porqué me sale error en la linea 73 (el cierre de html)

Parse error: syntax error, unexpected end of file in C:\EasyPHP-12.1\www\cuestion.php on line 73

Os copio el código acortado con lo fundamental, por si veis errores. O por que puede ser. ¿?¿

Muchas gracias de antemano!

<?php if (array_key_exists('enviar',$_POST)){
//script para procesar mail
$para ='[email protected]'; //cambiar mas adelante por el del cliente
$asunto ='Cuestionario enviado por Cliente';

//Procesar las variables $_POST
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$telefono = $_POST['telefono'];
$comentario = $_POST['comentario'];

//Construir el mensaje
$mensaje = "Nombre: &nombre\n\n";
$mensaje .= "Email: &email\n\n";
$mensaje .= "Telefono: &telefono\n\n";
$mensaje .= "Comentario: &comentario\n\n";

//Limitar caracteres por linea a 70 caracteres
$mensaje = wordwrap ($mensaje, 70);

//Enviarlo
$enviarMail = mail ($para, $asunto, $mensaje)
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xm
lns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>
<form name"formulario" method="post" action="<?php echo $_SERVER['../../Users/Nuria/Desktop/WEB GAVE/PHP_SELF']; ?>">
<span class="textletra"><br />
<table width="500px">
<tr>
<td width="86">Nombre </td>
<td width="402"><input id="nMenu2" name="nombre" type="text" class= "casi1" /></td>
</tr>
<tr>
<td><span class="textletra">
<label for="nMenu2"> </label>
email</span></td>
<td><input id="nMenu3" name="email" type="text" maxlength="255" class= "casi2" /></td>
</tr>
<tr>
<td><span class="textletra">
<label for="nMenu3"> </label>
telefono</span></td>
<td><input id="nMenu5" name="telefono" type="text" maxlength="20" class= "casi4" /></td>
</tr>
</table>
</span>
<span class="textletra">
</span><br />
<span class="textletra">
<label for="nMenu"> </label>
</span><br />
<textarea id="n-menu" name="comentario" class="area1"></textarea>
<br />

<input type="submit" name="enviar" value="Enviar" class="btn1" />
<?php if ($_POST && !$enviarMail) {
?>
<p class="advertencia">Lo sentimos, ha habido un problema.</p>
<?php
}
elseif ($_POST && $enviarMail) {
?>
<p class="advertencia">Su mensaje ha sido enviado. Muchas gracias.</p>
<?php } ?>
</FORM>
</body>
</html>

Por eveen19

6 de clabLevel



Genero:Femenino  

Graphic designer

chrome
Citar            
MensajeEscrito el 06 Sep 2012 09:26 pm
el error que te marca, es por que hay un error en las llaves, pero antes
en los foros es mejor poner el codigo entre etiquetas

Código :

[code]codigo[/code]
para asi hacer mas vistozo el codigo que pones y aparte entenderlo al vuelo, otra recomendacion es la identacion de la misma, la cual se muestra entre

Código :

[code]codigo[/code]
y por ultima
esta la identacion
http://es.wikipedia.org/wiki/Indentación
bueno el problema radica en que en tu primer if haces uso de de llaves, y este no tiene cierre del mismo por eso te marca error PHP esta esperando que se cierre ese if pero no lo encuentra por eso te marca error en la ultima LINEA de codigo

Código PHP :

<?php if (array_key_exists('enviar',$_POST)){
//script para procesar mail
$para ='[email protected]'; //cambiar mas adelante por el del cliente
$asunto ='Cuestionario enviado por Cliente';

//Procesar las variables $_POST
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$telefono = $_POST['telefono'];
$comentario = $_POST['comentario'];

//Construir el mensaje
$mensaje = "Nombre: &nombre\n\n";
$mensaje .= "Email: &email\n\n";
$mensaje .= "Telefono: &telefono\n\n";
$mensaje .= "Comentario: &comentario\n\n";

//Limitar caracteres por linea a 70 caracteres
$mensaje = wordwrap ($mensaje, 70);

//Enviarlo
$enviarMail = mail ($para, $asunto, $mensaje)
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>
<form name"formulario" method="post" action="<?php echo $_SERVER['../../Users/Nuria/Desktop/WEB GAVE/PHP_SELF']; ?>">
<span class="textletra"><br />
<table width="500px">
<tr>
<td width="86">Nombre </td>
<td width="402"><input id="nMenu2" name="nombre" type="text" class= "casi1" /></td>
</tr>
<tr>
<td><span class="textletra">
<label for="nMenu2"> </label>
email</span></td>
<td><input id="nMenu3" name="email" type="text" maxlength="255" class= "casi2" /></td>
</tr>
<tr>
<td><span class="textletra">
<label for="nMenu3"> </label>
telefono</span></td>
<td><input id="nMenu5" name="telefono" type="text" maxlength="20" class= "casi4" /></td>
</tr>
</table>
</span>
<span class="textletra">
</span><br />
<span class="textletra">
<label for="nMenu"> </label>
</span><br />
<textarea id="n-menu" name="comentario" class="area1"></textarea>
<br />

<input type="submit" name="enviar" value="Enviar" class="btn1" />
<?php if ($_POST && !$enviarMail) {
?>
<p class="advertencia">Lo sentimos, ha habido un problema.</p>
<?php
}
elseif ($_POST && $enviarMail) {
?>
<p class="advertencia">Su mensaje ha sido enviado. Muchas gracias.</p>
<?php } ?>
</FORM>
</body>
</html> 

la forma visible y correcta que yo uso cuando trabajo con html embebido y corrigiendo el error que cometes :),

Código PHP :

<?php
if(array_key_exists('enviar',$_POST))://if nivel 1;

   //script para procesar mail
   $para ='[email protected]'; //cambiar mas adelante por el del cliente
   $asunto ='Cuestionario enviado por Cliente';

   //Procesar las variables $_POST
   $nombre = $_POST['nombre'];
   $email = $_POST['email'];
   $telefono = $_POST['telefono'];
   $comentario = $_POST['comentario'];

   //Construir el mensaje
   $mensaje = "Nombre: &nombre\n\n";
   $mensaje .= "Email: &email\n\n";
   $mensaje .= "Telefono: &telefono\n\n";
   $mensaje .= "Comentario: &comentario\n\n";

   //Limitar caracteres por linea a 70 caracteres
   $mensaje = wordwrap ($mensaje, 70);

   //Enviarlo
   $enviarMail = mail ($para, $asunto, $mensaje);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>
<body>
   <form name"formulario" method="post" action="<?php echo $_SERVER['../../Users/Nuria/Desktop/WEB GAVE/PHP_SELF']; ?>">
      <span class="textletra"><br />
      <table width="500px">
         <tr>
            <td width="86">Nombre </td>
            <td width="402"><input id="nMenu2" name="nombre" type="text" class= "casi1" /></td>
         </tr>
         <tr>
            <td><span class="textletra">
                  <label for="nMenu2"> </label>
               email</span>
            </td>
         <td><input id="nMenu3" name="email" type="text" maxlength="255" class= "casi2" /></td>
         </tr>
         <tr>
            <td><span class="textletra">
                  <label for="nMenu3"> </label>
               telefono</span>
            </td>
            <td><input id="nMenu5" name="telefono" type="text" maxlength="20" class= "casi4" /></td>
         </tr>
      </table>
      </span>
      <span class="textletra">
      </span><br />
      <span class="textletra">
      <label for="nMenu"> </label>
      </span><br />
      <textarea id="n-menu" name="comentario" class="area1"></textarea>
      <br />
      <input type="submit" name="enviar" value="Enviar" class="btn1" />
<?php if ($_POST && !$enviarMail):?>
      <p class="advertencia">Lo sentimos, ha habido un problema.</p>
<?php else if($_POST && $enviarMail):?>
      <p class="advertencia">Su mensaje ha sido enviado. Muchas gracias.</p>
<?php endif; ?>
   </FORM>
</body>
</html> 
<?php endif;//fin if nivel 1;
?>

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 07 Sep 2012 11:09 am
El cierre de if!! Muchas gracias por todo y por explicarme como se pone!
Pero me sigue saliendo error en la 66:

Código :

<?php else if ($_POST && $enviarMail):?>

y si pongo elseif , al visualizar, me sale todo en blanco :?

A lo mejor, tiene algo que ver con que estoy teniendo problemas para instalar el motor de php en mi ordena? (Estoy usando Easyphp en win.7) Pero he tenido errores en la instalación. Al subir el formulario.php al servidor, veía el código, y eso es por que no lo tengo bien instalado. ¿Desinstalo e instalo otro? Cuál me recomendáis?

Por eveen19

6 de clabLevel



Genero:Femenino  

Graphic designer

chrome
Citar            
MensajeEscrito el 07 Sep 2012 08:03 pm
jeje no es tu rodenador, bueno el error es que me equivoque

Código PHP :

<?php else if ($_POST && $enviarMail):?>

era este

Código PHP :

<?php elseif ($_POST && $enviarMail):?>

mmm easy php, tienes que hacer mucha configuracion manual, para que te funcione correctamente en el desarollo, pero bueno por ahora parece estar bien, cualquier cosa estamos en el foro, ah, tambien recuerda que el foro tiene un buscador, como dicen primero buscar si no se encuentra preguntar :) byeee

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 07 Sep 2012 08:16 pm
me olvidaba, si te sale todo en blanco es que la condicion IF else se esta cuimpliendo recuerda que tu if va desde la primera linea hasta la final, modifica esa parte supongo que lo que querias hacer ,era poner el if solo para la parte que envia el email

Código PHP :

<?php
if(array_key_exists('enviar',$_POST))://if nivel 1;

   //script para procesar mail
   $para ='[email protected]'; //cambiar mas adelante por el del cliente
   $asunto ='Cuestionario enviado por Cliente';

   //Procesar las variables $_POST
   $nombre = $_POST['nombre'];
   $email = $_POST['email'];
   $telefono = $_POST['telefono'];
   $comentario = $_POST['comentario'];

   //Construir el mensaje
   $mensaje = "Nombre: &nombre\n\n";
   $mensaje .= "Email: &email\n\n";
   $mensaje .= "Telefono: &telefono\n\n";
   $mensaje .= "Comentario: &comentario\n\n";

   //Limitar caracteres por linea a 70 caracteres
   $mensaje = wordwrap ($mensaje, 70);

   //Enviarlo
   $enviarMail = mail ($para, $asunto, $mensaje);
endif;//fin if nivel 1;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>
<body>
   <form name"formulario" method="post" action="<?php echo $_SERVER['../../Users/Nuria/Desktop/WEB GAVE/PHP_SELF']; ?>">
      <span class="textletra"><br />
      <table width="500px">
         <tr>
            <td width="86">Nombre </td>
            <td width="402"><input id="nMenu2" name="nombre" type="text" class= "casi1" /></td>
         </tr>
         <tr>
            <td><span class="textletra">
                  <label for="nMenu2"> </label>
               email</span>
            </td>
         <td><input id="nMenu3" name="email" type="text" maxlength="255" class= "casi2" /></td>
         </tr>
         <tr>
            <td><span class="textletra">
                  <label for="nMenu3"> </label>
               telefono</span>
            </td>
            <td><input id="nMenu5" name="telefono" type="text" maxlength="20" class= "casi4" /></td>
         </tr>
      </table>
      </span>
      <span class="textletra">
      </span><br />
      <span class="textletra">
      <label for="nMenu"> </label>
      </span><br />
      <textarea id="n-menu" name="comentario" class="area1"></textarea>
      <br />
      <input type="submit" name="enviar" value="Enviar" class="btn1" />
<?php if ($_POST && !$enviarMail):?>
      <p class="advertencia">Lo sentimos, ha habido un problema.</p>
<?php elseif($_POST && $enviarMail):?>
      <p class="advertencia">Su mensaje ha sido enviado. Muchas gracias.</p>
<?php endif; ?>
   </FORM>
</body>
</html>

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 09 Sep 2012 10:27 pm
Al rellenar el formulario, me sale error:
Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in C:\EasyPHP-12.1\www\cuestion4.php on line 24
aquí:

Código :

//Enviarlo
   $enviarMail = mail ($para, $asunto, $mensaje);


Y lo he subido al servidor por si iba, y cuando le doy a "cuestionario" se me descarga el archivo de php en vez de visualizar la página. Sigo teniendo mal instalado el php supongo..

Gracias por la ayuda

Por eveen19

6 de clabLevel



Genero:Femenino  

Graphic designer

chrome
Citar            
MensajeEscrito el 09 Sep 2012 10:48 pm
mmm dime, tu servidor remoto soporta PHP????por que es raro que el archivo PHP se descargue,
bueno tu archivo tiene algunos errores

Código PHP :

<?php echo $_SERVER['../../Users/Nuria/Desktop/WEB GAVE/PHP_SELF']; ?>

ese array creo que exista en $_SERVER, la funcion email de php solo se la puede probar en el servidor remoto, ya que para su uso no dispones de un servidor SMTP en tu maquina, otra opcion que te aconsejo es usar Librerias para el manejo de emails como el PHPMailer,

http://phpmailer.worxware.com/index.php?pg=examplebmail
haz pruebas por separado, primero verifica que puedas enviar emails y luego recien integrala con tu formulario, :)

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 09 Sep 2012 11:24 pm
Sí, lo tengo contratado.

Me he perdido un poco con lo de la librería.. jaja

Por eveen19

6 de clabLevel



Genero:Femenino  

Graphic designer

chrome
Citar            
MensajeEscrito el 09 Sep 2012 11:53 pm
jeej si debe ser complicado , mas para los que empiezan , antes de empezar a usar php , tienes que tener nocion de lo que es ,string,enteros, arrrays , vectores, objetos ,funciones, etc, :), te tomara un par de dias leer todo eso pero luego te sera mas facil implementarlos :)

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

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