Foros del Web » Programando para Internet » PHP »

unexpected $end

Estas en el tema de unexpected $end en el foro de PHP en Foros del Web. Error: Parse error: syntax error, unexpected $end in /www/zxq.net/v/e/n/ventaprueba/htdocs/install/install.php on line 252 Codigo: Código PHP: <?php    if ( file_exists ( "config.php" )){     die( "<strong>El sistema ya esta instalado</strong>" ); ...
  #1 (permalink)  
Antiguo 28/05/2011, 21:10
 
Fecha de Ingreso: junio-2010
Mensajes: 44
Antigüedad: 14 años, 4 meses
Puntos: 0
unexpected $end

Error:
Parse error: syntax error, unexpected $end in /www/zxq.net/v/e/n/ventaprueba/htdocs/install/install.php on line 252


Codigo:
Código PHP:
<?php 
 
if (file_exists("config.php")){
    die(
"<strong>El sistema ya esta instalado</strong>");
}
 
if (
$_POST['submit']){
    if (empty(
$_POST["db-host"])){
        echo 
"Debes de rellenar el campo 'Host de la base de datos'<br />";
        
$return 1;
    } 
    if (empty(
$_POST["db-name"])){
        echo 
"Debes de rellenar el campo 'Nombre de la base de datos'<br />";
        
$return 1;
    } 
    if (empty(
$_POST["db-user"])){
        echo 
"Debes de rellenar el campo 'Usuario de la base de datos'<br />";
        
$return 1;
    } 
    if (empty(
$_POST["db-pass"])){
        echo 
"Debes de rellenar el campo 'Contraseña de la base de datos'<br />";
        
$return 1;

    if (empty(
$_POST["nombre"])){
        echo 
"Debes de rellenar el campo 'Nombre'<br />";
        
$return 1;
    }
        if (empty(
$_POST["ulogin"])){
        echo 
"Debes de rellenar el campo 'Usuario'<br />";
        
$return 1;
    }
    if (empty(
$_POST["upass"])){
        echo 
"Debes de rellenar el campo 'Contraseña'<br />";
        
$return 1;
    } 
    if (empty(
$_POST["email"])){
        echo 
"Debes de rellenar el campo 'Correo Electrónico'<br />";
        
$return 1;
    }
    if (
$_POST["upass"] != $_POST["u2pass"]){
        echo 
"Las Contraseñas de usuario no coinciden<br />";
        
$return 1;
    } 
 
    if (isset(
$return)){
        echo 
"<br /><br /><a href=\"install.php\">Volver al Formulario</a>";
    } else {
        echo 
"Comenzando Instalación<br />";
 
        
$con=mysql_connect($_POST["db-host"],$_POST["db-user"],$_POST["db-pass"]);
        
mysql_select_db($_POST["db-name"],$con);
        if (!
$con){
            die(
"No se puede establecer conexión con la base de datos, por favor comprueba los datos. <br /><br /><a href=\"install.php\">Volver al Formulario</a>");
        }
 
        
$db_tables = array(
        
"CREATE TABLE IF NOT EXISTS `ta_pedido_p` (
  `id_pedido_p` int(10) unsigned NOT NULL auto_increment,
  `id_pedido` int(11) unsigned NOT NULL default '0',
  `id_producto` int(11) unsigned NOT NULL default '0',
  `nombre` varchar(120) collate latin1_spanish_ci NOT NULL default '',
  `clase` varchar(60) collate latin1_spanish_ci NOT NULL default 'Verduras',
  `unidad` varchar(60) collate latin1_spanish_ci NOT NULL default 'Kilo',
  `precio` int(11) NOT NULL default '1500',
  `cantidad` double NOT NULL default '0',
  `subtotal` double NOT NULL default '0',
  PRIMARY KEY  (`id_pedido_p`),
  KEY `ix_pedido_producto` (`id_pedido`,`id_producto`)
)"
,
        
"CREATE TABLE IF NOT EXISTS `ta_producto` (
  `id_producto` int(11) unsigned NOT NULL auto_increment,
  `nombre` varchar(120) collate latin1_spanish_ci NOT NULL default '',
  `clase` varchar(60) collate latin1_spanish_ci NOT NULL default 'Verduras',
  `unidad` varchar(60) collate latin1_spanish_ci NOT NULL default 'Kilo',
  `precio` int(11) NOT NULL default '1500',
  `activo` char(1) collate latin1_spanish_ci NOT NULL default 'S',
  PRIMARY KEY  (`id_producto`),
  KEY `nombre` (`nombre`,`clase`,`activo`)
)"
,
        
"CREATE TABLE IF NOT EXISTS `ta_receta` (
  `id_receta` int(11) unsigned NOT NULL auto_increment,
  `titulo` varchar(255) collate latin1_spanish_ci NOT NULL default '',
  `tituloi` varchar(255) collate latin1_spanish_ci NOT NULL default '',
  `ingredi` text collate latin1_spanish_ci NOT NULL,
  `elabora` text collate latin1_spanish_ci NOT NULL,
  `imagen` varchar(255) collate latin1_spanish_ci NOT NULL default '',
  `activo` char(1) collate latin1_spanish_ci NOT NULL default 'S',
  PRIMARY KEY  (`id_receta`)
)"
,
        
"CREATE TABLE IF NOT EXISTS `ta_receta_desa` (
  `id_receta` int(11) unsigned NOT NULL auto_increment,
  `titulo` varchar(255) collate latin1_spanish_ci NOT NULL default '',
  `tituloi` varchar(255) collate latin1_spanish_ci NOT NULL default '',
  `ingredi` text collate latin1_spanish_ci NOT NULL,
  `elabora` text collate latin1_spanish_ci NOT NULL,
  `imagen` varchar(255) collate latin1_spanish_ci NOT NULL default '',
  `activo` char(1) collate latin1_spanish_ci NOT NULL default 'S',
  PRIMARY KEY  (`id_receta`)
)"
,
        
"CREATE TABLE IF NOT EXISTS `ts_usuario` (
  `ulogin` varchar(32) collate latin1_spanish_ci NOT NULL default '',
  `upass` varchar(32) collate latin1_spanish_ci NOT NULL default '',
  `nombre` varchar(128) collate latin1_spanish_ci NOT NULL default '',
  `email` varchar(255) collate latin1_spanish_ci NOT NULL default '',
  `id_perfil` smallint(5) unsigned NOT NULL default '0',
  `flogin` datetime NOT NULL default '0000-00-00 00:00:00',
  `caduca` date NOT NULL default '0000-00-00',
  `p_receta` char(1) collate latin1_spanish_ci NOT NULL default 'S',
  `p_producto` char(1) collate latin1_spanish_ci NOT NULL default 'S',
  `p_pedido` char(1) collate latin1_spanish_ci NOT NULL default 'S',
  `r_pedido` char(1) collate latin1_spanish_ci NOT NULL default 'S',
  `r_contacto` char(1) collate latin1_spanish_ci NOT NULL default 'S',
  PRIMARY KEY  (`ulogin`),
  KEY `nombre` (`nombre`),
  KEY `email` (`email`),
  KEY `r_pedidos` (`r_pedido`),
  KEY `r_contacto` (`r_contacto`)
)"
,
    
 
    
"INSERT INTO `ta_pedido` (`id_pedido`, `fecha`, `nombre`, `direccion`, `comuna`, `fonos`, `email`, `forma_pago`, `total`, `atendido`) VALUES (
    '1',
    '2011-05-26 00:00:00',
    'VentaFacil',
    'direccion',
    'comuna', 
    '2545651',
    '[email protected]',
    'efectivo',
    '2011'
    )"
,
    
    
"INSERT INTO `ta_pedido_p` (`id_pedido_p`, `id_pedido`, `id_producto`, `nombre`, `clase`, `unidad`, `precio`, `cantidad`, `subtotal`) VALUES (
    '1',
    '1',
    '1', 
    'VentaFacil', 
    'fruta',
    'unidad', 
    '200, 
    '1',
    '2'
    )"
,
    
    
"INSERT INTO `ta_producto` (`id_producto`, `nombre`, `clase`, `unidad`, `precio`, `activo`) VALUES (
    '1',
    'Ventafacil',
    'fruta', 
    'unidad', 
    '200',
    'si', 
    )"
,
    
"INSERT INTO `ta_receta` (`id_receta`, `titulo`, `tituloi`, `ingredi`, `elabora`, `imagen`, `activo`) VALUES (
    '1',
    'Ventafacil',
    'Ventafacil', 
    'VentaFacil', 
    'Editar',
    '', 
    'si,
    )"
,
"INSERT INTO `ta_receta_desa` (`id_receta`, `titulo`, `tituloi`, `ingredi`, `elabora`, `imagen`, `activo`) VALUES (
    '1',
    'Ventafacil',
    'Ventafacil', 
    'VentaFacil', 
    'Editar',
    '', 
    'si,
    )"
,

"INSERT INTO `ts_usuario` (`ulogin`, `upass`, `nombre`, `email`, `id_perfil`, `flogin`, `caduca`, `p_receta`, `p_producto`, `p_pedido`, `r_pedido`, `r_contacto`) VALUES(
'"
.$_POST["ulogin"]."',
'"
.md5($_POST["upass"])."',
'"
.$_POST["nombre"]."',
'"
.$_POST["email"]."',
'1', 
'2011-05-17 09:27:50', 
'9999-12-31', 
'S', 
'S',
'S', 
'N', 
'N'
)" 
);

foreach(
$db_tables as $x){
            
$query mysql_query($x)or die(mysql_error());
        }
 
        
//Cerramos la conexión con la base de datos
        
mysql_close($con);
 
        
//Montamos en una variable el contenido del archivo config.php
            
$config_info "<?php\n/* Archivo config.php generado por el sistema */\n\n\$bdhost = \"".$_POST["db-host"]."\";\n\$bdname = \"".$_POST["db-name"]."\";\n\$bduser = \"".$_POST["db-user"]."\";\n\$bdpass = \"".$_POST["db-pass"]."\";\n?>";
 
        
//Comprobamos que podemos escribir en la carpeta raíz del sistema
        
if (is_writable("./") != 1) {
            echo 
"No se ha podido crear config.php por un problema con los permisos de la carpeta raíz, tu mismo puedes crear el archivo config.php con el siguiente contenido para terminar la instalación, una vez hecho <a href=\"index.php\">Vuelve al Inicio</a>. <br />";
            echo 
"<textarea cols=\"40\" rows=\"10\">".$config_info."</textarea>";
        } else {
 

            
$keys_file fopen("config.php","w");
            
fwrite($keys_file$config_info);
            
fclose($keys_file);
            echo 
"<br />Se ha completado la instalación con éxito<br /><a href=\"index.php\">Volver al Inicio</a>";
        }
    }
 
} else {
 
    
?>
    <!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" />
            <link type="text/css" rel="stylesheet" media="all" href="style.css" />
            <title>Instalador de Ventafacil</title>
        </head>
        <body>
        <div id="install">
            <form action="install.php" method="post">
            <div id="install-title">Instalador</div>
            <table>
                <tr><td colspan="2" class="install-td">Información sobre la Base de datos</td></tr>
                <tr><td>Host de la base de datos:</td><td><input type="text" name="db-host" value="localhost" /></td></tr>
                <tr><td>Nombre de la base de datos:</td><td><input type="text" name="db-name" value="Nombre" /></td></tr>
                <tr><td>Usuario de la base de datos:</td><td><input type="text" name="db-user" value="Usuario" /></td></tr>
                <tr><td>Contraseña de la base de datos:</td><td><input type="password" name="db-pass" /></td></tr>
                <tr><td colspan="2" class="install-td">Información sobre el Administrador</td></tr>
                <tr><td>Nombre</td><td><input type="text" name="nombre" value="Nombre" /></td></tr>
                <tr><td>Usuario:</td><td><input type="text" name="ulogin" value="Ulogin" /></td></tr>
                <tr><td>Contraseña:</td><td><input type="upass" name="upass" /></td></tr>
                <tr><td>Repetir Contraseña:</td><td><input type="upass" name="u2pass" /></td></tr>
                <tr><td>Correo Electrónico:</td><td><input type="text" name="email" value="Email" /></td></tr>
                <tr><td colspan="2" class="install-td"><input type="submit" name="submit" value="Instalar" /></td></tr>
            </table>
            </form>
        </div>
        </body>
    </html>
<?php
}
?>


Muchas gracias de antemano.
Y Gracias porque me han ayudado en muchos errores que no he podido solucionar.

Pd: si saben diganme el error, no me lo reemplazen, para poder aprender =)
  #2 (permalink)  
Antiguo 28/05/2011, 21:16
(Desactivado)
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 471
Antigüedad: 19 años, 6 meses
Puntos: 45
Respuesta: unexpected $end

En la línea que se especifica falta un corchete de cierre.
  #3 (permalink)  
Antiguo 28/05/2011, 21:19
 
Fecha de Ingreso: junio-2010
Mensajes: 44
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: unexpected $end

La linea que marca es la última, y cuando pongo el cochete }, la pagina install.php(a cual pertenece el codigo) queda en blanco
  #4 (permalink)  
Antiguo 28/05/2011, 21:31
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: unexpected $end

Si no da error quiere decir que el código funciona correctamente. Si queda la página en blanco quiere decir que no haz programado bien tu código como quieres que funcione...

PD: Los corchetes son estos: [ ]
Las llaves son estas: { }
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #5 (permalink)  
Antiguo 29/05/2011, 14:12
(Desactivado)
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 471
Antigüedad: 19 años, 6 meses
Puntos: 45
Respuesta: unexpected $end

Cita:
Iniciado por Sourcegeek Ver Mensaje
Si no da error quiere decir que el código funciona correctamente. Si queda la página en blanco quiere decir que no haz programado bien tu código como quieres que funcione...

PD: Los corchetes son estos: [ ]
Las llaves son estas: { }
Que pruebe con corchetes, paréntesis y llaves. Ambas cosas no le llevarán más de 5 segundos.
  #6 (permalink)  
Antiguo 29/05/2011, 14:21
 
Fecha de Ingreso: julio-2009
Mensajes: 72
Antigüedad: 15 años, 3 meses
Puntos: 16
Respuesta: unexpected $end

Me parece que en donde dice:

if (empty($_POST["db-pass"])){
echo "Debes de rellenar el campo 'Contraseña de la base de datos'<br />";
$return = 1;

Te falta cerrar la llave, osea quedaria:

if (empty($_POST["db-pass"])){
echo "Debes de rellenar el campo 'Contraseña de la base de datos'<br />";
$return = 1;
}
__________________
Desarrollo de proyectos web
Cursos en Argentina - Cursos en México
  #7 (permalink)  
Antiguo 29/05/2011, 14:24
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: unexpected $end

Cita:
Que pruebe con corchetes, paréntesis y llaves. Ambas cosas no le llevarán más de 5 segundos.
5 segundos innecesarios... No es tan razonable intentar corchetes y paréntesis, por qué? Porque si hay una función o array sin cerrar (paréntesis y corchetes respectivamente), daría un error diferente de unexpected porque no hay función o array hasta el final del archivo.
Entonces, en resúmen, la causa es una llave no cerrada, que en este caso creo que es la que indicó pochos

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #8 (permalink)  
Antiguo 29/05/2011, 23:12
(Desactivado)
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 471
Antigüedad: 19 años, 6 meses
Puntos: 45
Respuesta: unexpected $end

Cita:
Iniciado por Sourcegeek Ver Mensaje
5 segundos innecesarios... No es tan razonable intentar corchetes y paréntesis, por qué? Porque si hay una función o array sin cerrar (paréntesis y corchetes respectivamente), daría un error diferente de unexpected porque no hay función o array hasta el final del archivo.
Entonces, en resúmen, la causa es una llave no cerrada, que en este caso creo que es la que indicó pochos

Saludos!
Me parece que no has entendido nada. Está claro que cuando me refería a [ quería decir erróneamente { .
Cuando dije que pruebe con varias cosas quería referirme que pruebe con llave, que adquiere varias referencias por error. El error de confundir léxicamente corchete con llave, que es } de cierre.

Ahora espero que lo entiendas.

Última edición por Rolldi; 29/05/2011 a las 23:17
  #9 (permalink)  
Antiguo 30/05/2011, 17:42
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: unexpected $end

Ah, en ese caso sí
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies

Etiquetas: end, unexpected
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 09:10.