Foros del Web » Programando para Internet » PHP »

Error "Parse error: syntax error, unexpected $end"

Estas en el tema de Error "Parse error: syntax error, unexpected $end" en el foro de PHP en Foros del Web. Buenos días, no se por qué me está apareciendo el error: "Parse error: syntax error, unexpected $end in C:\xampp\htdocs\datos_registro.php on line 111" en el siguiente ...
  #1 (permalink)  
Antiguo 07/07/2010, 04:00
 
Fecha de Ingreso: julio-2008
Mensajes: 62
Antigüedad: 15 años, 8 meses
Puntos: 0
Error "Parse error: syntax error, unexpected $end"

Buenos días,

no se por qué me está apareciendo el error:

"Parse error: syntax error, unexpected $end in C:\xampp\htdocs\datos_registro.php on line 111" en el siguiente código:

<?php
include "conexion.php";

var_dump($_POST);
$nombre_encargado = $_POST['S1'];
$primer_apellido = $_POST['AP1'];
$segundo_apellido = $_POST['AP2'];
$nombre_empresa = $_POST['S2'];
$correo_empresa = $_POST['S3'];

$i=0;
$p_gen="";
// Aqui colocamos el largo del password
$pw_largo = 8;
// Colocamos el rango de caracteres ASCII para la creacion de el password
$desde_ascii = 50; // "2"
$hasta_ascii = 122; // "z"
// Aqui quitamos caracteres especiales
$no_usar = array (58,59,60,61,62,63,64,73,79,91,92,93,94,95,96,108, 111);
while ($i < $pw_largo) {
mt_srand ((double)microtime() * 1000000);
// limites aleatorios con tabla ASCII
$numero_aleat = mt_rand ($desde_ascii, $hasta_ascii);
if (!in_array ($numero_aleat, $no_usar)) {
$p_gen = $p_gen . chr($numero_aleat);
$i++;
}
}
if(!strcmp($nombre_encargado, "")){
echo '<a href="registro.html">Vuelva al formulario de registro</a>.';
exit;
}elseif(!stcmp($primer_apellido,"")){
echo '<a href="registro.html">Vuelva al formulario de registro</a>.';
exit;
}elseif(!strcmp($nombre_empresa,"")){
echo '<a href="registro.html">Vuelva al formulario de registro</a>.';
exit;
}elseif(!strcmp($correo_empresa,"")){
echo '<a href="registro.html">Vuelva al formulario de registro</a>.';
exit;
}else{
$comprobar = "SELECT * FROM empresa WHERE nombre LIKE '$nombre_empresa'";
$resp = @mysql_query($comprobar, $link);
if(!$resp){
echo 'Click <a href="registro.html">aqu&iacute;</a> para volver al formulario.';
exit;
}

if(mysql_num_rows($resp)){
echo "Este nombre de empresa ya existe en la base de datos. ";
echo 'Click <a href="registro.html">aqu&iacute;</a> para volver al formulario.';
exit;
}else{
@mysql_free_result($resp);
}

$comprobar_dos = "SELECT * FROM empresa WHERE correo_electronico LIKE '$correo'";
$resp_dos = @mysql_query($comprobar_dos, $link);
if(!$resp_dos){
echo 'Click <a href="registro.html">aqu&iacute;</a> para volver al formulario.';
exit;
}

if(mysql_num_rows($resp_dos)){
echo "Este correo electr&oacute;nico ya existe en la base de datos.";
echo 'Click <a href="registro.html">aqu&iacute;</a> para volver al formulario.';
exit;
}else{
@mysql_free_result($resp_dos);
}

$sql = "INSERT INTO empresa (id_empresa, nombre, direccion, cp, poblacion, provincia, tel_fijo, fax, correo_electronico, actividad, sector, num_empleados, password) VALUES(' ', '$nombre_empresa', '', '', '', '', '', '', '$correo_empresa', '', '', '', '$p_gen')";
$result = @mysql_query($sql, $link);
if($result){
//echo "Ha insertado los datos correspondientes a la empresa $nombre<br>";
}else{
echo 'Click <a href="registro.html">aqu&iacute;</a> para volver al formulario.';
exit;
}

$sql_dos = "SELECT id_empresa FROM empresa WHERE nombre LIKE '$nombre_empresa' LIMIT 1";
$result_dos = @mysql_query($sql_dos, $link);
if($result_dos){
//echo "¡Hemos hecho la consulta de selección a la base de datos!<br>";
}else{
echo 'Click <a href="registro.html">aqu&iacute;</a> para volver al formulario.';
exit;
}

while ($campo = @mysql_fetch_array($result_dos)){
$id_empresa = $campo["id_empresa"];
}

$sql_tres = "INSERT INTO encargado_cuestionario (id_encargao, id_empresa, nombre, ape_1, ape_2, cargo) VALUES ('', '$id_empresa', '$nombre_encargado', '$primer_apellido', '$segundo_apellido', '')";
$result_tres = @mysql_query($sql_tres, $link);
if($result_tres){
//echo "Ha insertado los datos en la tabla del encargado <br>";
}else{
echo 'Click <a href="registro.html">aqu&iacute;</a> para volver al formulario.';
exit;
}

$asunto = "Confirmación de registro.";
$mensaje = "El registro se ha realizado correctamente, tu password es $p_gen";
$copia_oculta = "[email protected]";
$cabeceras = "BCC: $copia_oculta";

echo "<br>La empresa $nombre_empresa, ha quedado registrada correctamente, con la contraseña que le llegar&aacute; al correo electr&oacute;nico brindado por usted";
mail($correo_empresa, $asunto, $mensaje, $cabeceras);
?>

¿Qué hago mal?
  #2 (permalink)  
Antiguo 07/07/2010, 04:51
 
Fecha de Ingreso: julio-2010
Mensajes: 56
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: Error "Parse error: syntax error, unexpected $end"

Ese error suele ser por falta de una llave de cierre "}", repasa el código...

Concretamente así a ojo...

else{
$comprobar = "SELECT * FROM empresa WHERE nombre LIKE '$nombre_empresa'";
$resp = @mysql_query($comprobar, $link);
if(!$resp){

Un saludo.

Última edición por GatorV; 07/07/2010 a las 09:16
  #3 (permalink)  
Antiguo 07/07/2010, 05:40
 
Fecha de Ingreso: julio-2008
Mensajes: 62
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Error "Parse error: syntax error, unexpected $end"

Cierto, tienes razón, me había dejado un corchete por ahí.

Ahora tengo un nuevo problema, estoy intentando enviar automáticamente un correo con la función mail, pero me da error: "Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\xampp\htdocs\datosregistro.php on line 124". ¿Qué es lo que hay que configurar? ¿Hay que instalar algún servidor SMTP? ¿Qué habría que configurar en él?

Muchas gracias.
  #4 (permalink)  
Antiguo 07/07/2010, 06:02
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Error "Parse error: syntax error, unexpected $end"

Desde localhost, asi como asi no puedes enviar ningún email...
Hechale una ojeada a esto, segura te servira:

Aquí

Saludos,
  #5 (permalink)  
Antiguo 07/07/2010, 12:52
 
Fecha de Ingreso: julio-2008
Mensajes: 62
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Error "Parse error: syntax error, unexpected $end"

Cita:
Iniciado por DeFFeR Ver Mensaje
Desde localhost, asi como asi no puedes enviar ningún email...
Hechale una ojeada a esto, segura te servira:

Aquí

Saludos,
He descargado las clases PHP Mailer. He guardado en mi carpeta 'htdocs' class.phpmailer.php y class.smtp.php, y creado un archivo con el siguiente código:

<?php
require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->Host = "localhost";
$mail->From = "[email protected]";
$mail->FromName = "Nombre del Remitente";
$mail->Subject = "Subject del correo";
$mail->AddAddress("[email protected]","Tu nombre");

$body = "Hola <strong>amigo</strong><br>";
$body .= "probando <i>PHPMailer<i>.<br><br>";
$body .= "<font color='red'>Saludos</font>";
$mail->Body = $body;
$mail->AltBody = "Hola amigo\nprobando PHPMailer\n\nSaludos";
$mail->Send();
?>

Aunque lo ejecuto y no da error, no veo que me llegue el correo a esa dirección que he puesto.
  #6 (permalink)  
Antiguo 07/07/2010, 14:39
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: Error "Parse error: syntax error, unexpected $end"

Como envias codigo html debes decirle a la clase eso:

$mail->IsHTML(true);

Ademas, fijate que la clase trae ejemplos (xamples) de envios de email basicos.

...Aunque desde local si no tienes un servidor smtp no podras enviar mails

Última edición por wiwi74; 07/07/2010 a las 14:44
  #7 (permalink)  
Antiguo 26/07/2010, 23:17
 
Fecha de Ingreso: diciembre-2009
Mensajes: 4
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Error "Parse error: syntax error, unexpected $end"

hola amigos me pueden ayudar... ya estoy quemado ahahah horas haciendo de todo no veo nada ... segun firefox tengo error en la linea 15 .. he revisado milllll veces pero nada!! es para registro del visitante a la web!! gracias aqui el code

Cita:
<?php
include('conexion.php');
$link = Conectarse();
function quitar($mensaje)
{
$mensaje = str_replace("<","&lt;",$mensaje);
$mensaje = str_replace(">","&gt;",$mensaje);
$mensaje = str_replace("\'","'",$mensaje);
$mensaje = str_replace('\"',"&quot;",$mensaje);
$mensaje = str_replace("\\\\","\",$mensaje);
return $mensaje;
}
function comprobar_email($email){
$mail_correcto = 0;
if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") &&
(substr($email,strlen($email)-1,1)!= "@")){
if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) &&
(!strstr($email," "))) {
if (substr_count($email,".")>= 1){
$term_dom = substr(strrchr ($email, '.'),1);
if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
$antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
$caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
if ($caracter_ult != "@" && $caracter_ult != "."){
$email_correcto = 1;
}
}
}
}
}
if ($email_correcto)
return 1;
else
return 0;
}
$comp_email = quitar($_POST["emailL"]);
$i = comprobar_email($comp_email); //llamamos a la función
if ($i != 0) //si la dirección de email es correcta...
{
$sql = "SELECT id FROM usuarios WHERE usuario='".quitar($_POST["usuL"])."'";
$result = mysql_query($sql);
if($row = mysql_fetch_array($result))
{
echo "&estatus=ocupado&";
}
else
{
$sql = "INSERT INTO usuarios (usuario, contrasena, email, nombre, pais) VALUES (";
$sql .= "'".quitar($_POST["usuarioL"])."'";
$sql .= ",'".quitar($_POST["contrasenaL"])."'";
$sql .= ",'".quitar($_POST["emailL"])."'";
$sql .= ",'".quitar($_POST["nombreL"])."'";
$sql .= ",'".quitar($_POST["paisL"])."'";
$sql .= ")";
mysql_query($sql);
echo "&estatus=ok&";
}
mysql_free_result($result);
mysql_close();
}
else
{
echo "&estatus=normal&"; //email incorrecto
}
?>
gracias de ante mano

perdone ste es mi error lo olvidaba!!

Cita:
Parse error: syntax error, unexpected '@' in /home/a7584245/public_html/registrar.php on line 15

Etiquetas: syntax
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 14:56.