Foros del Web » Programando para Internet » PHP »

Parse error: syntax error, unexpected T_VARIABLE in /**/registrar.php on line 45.

Estas en el tema de Parse error: syntax error, unexpected T_VARIABLE in /**/registrar.php on line 45. en el foro de PHP en Foros del Web. Hola, soy nuevo en esto de la "programación", intentando hacer un registro, luego de muchisimos errores solucionados este me ganó asique tengo que recurrir a ...
  #1 (permalink)  
Antiguo 24/07/2012, 22:13
 
Fecha de Ingreso: julio-2012
Mensajes: 12
Antigüedad: 11 años, 8 meses
Puntos: 0
Parse error: syntax error, unexpected T_VARIABLE in /**/registrar.php on line 45.

Hola, soy nuevo en esto de la "programación", intentando hacer un registro, luego de muchisimos errores solucionados este me ganó asique tengo que recurrir a la ayuda de la comunidad.

Al Completar el registro me dirije hacia "registrar.php" el cual me da el siguiente error:

Código PHP:
Parse errorsyntax errorunexpected T_VARIABLE in /**/registrar.php on line 45. 

Y el archivo es (Oculte algunos datos personales):

Código PHP:
<?php session_start();
 
//datos para establecer la conexion con la base de mysql.
mysql_connect('Host Oculto','Usuario Oculto','Contraseña Oculta')or die ('Ha fallado la conexi&oacute;n: '.mysql_error());
mysql_select_db('DB Oculta')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
 
function 
formRegistro(){
?>
<form action="registrar.php" method="post">
Usuario (max 20):
  <input type="text" name="username" size="20" maxlength="20" /><br />
Password (max 10):
<input type="password" name="password" size="10" maxlength="10" />
Confirma: <input type="password" name="password2" size="10" maxlength="10" /><br />
Email (max 40):
<input type="text" name="email" size="20" maxlength="40" /><br />
<input type="submit" value="Registrar" />
</form>
<?php
}
 
// verificamos si se han enviado ya las variables necesarias.
if (isset($_POST["username"])) {
    
$username $_POST["username"];
    
$password $_POST["password"];
    
$password2 $_POST["password2"];
    
$email $_POST["email"];
    
// Hay campos en blanco
    
if($username==NULL|$password==NULL|$password2==NULL|$email==NULL) {
        echo 
"un campo est&aacute; vacio.";
        
formRegistro();
    }else{
        
// ¿Coinciden las contrase&ntilde;as?
        
if($password!=$password2) {
            echo 
"Las contrase&ntilde;as no coinciden";
            
formRegistro();
        }else{
            
// Comprobamos si el nombre de usuario o la cuenta de correo ya exist&iacute;an
            
$checkuser mysql_query("SELECT usuario FROM id WHERE usuario='$username'");
            
$username_exist mysql_query($checkuser);
           
            
$checkemail mysql_query("SELECT email FROM id WHERE e-mail='$email'");
            
$email_exist mysql_query($checkemail);
          
            if (
$email_exist>0$username_exist>0
                echo 
"El nombre de usuario o la cuenta de correo estan ya en uso"
                
formRegistro()
            }else{
                
$query 'INSERT INTO Registro (id, password, e-mail)
                VALUES (\''
.$username.'\',\''.$password.'\',\''.$e-mail.'\')
               
                mysql_query($query) or die(mysql_error());
                echo '
El usuario '.$username.' ha sido registrado de manera satisfactoria.<br />';
                echo '
Ahora puede entrar ingresando su usuario y su password <br />;
                
?>
                <FORM ACTION="validar_usuario.php" METHOD="post">
                  Usuario : <INPUT TYPE="text" NAME="usuario" SIZE=20 MAXLENGTH=20><br />
                  Password: <INPUT TYPE="password" NAME="password" SIZE=10 MAXLENGTH=20><br />
                  <INPUT TYPE="submit" VALUE="Ingresar">
                </FORM>
                <?php
               
            
}
        }
    }
}else{
    
formRegistro();
}
?>
Ya probé muchos métodos, quitando los ";" y los " ' " (sinceramente no sabía lo que hacía, sólo probaba por tirar al azar, a ver si con suerte se solucionaba ).

Saludos y gracias de antemano ^^.

PD: Si está en una mala sección o cometí alguna falta a las reglas del foro diganme por favor.

Última edición por xiliux; 24/07/2012 a las 22:15 Razón: Agregar datos
  #2 (permalink)  
Antiguo 24/07/2012, 22:20
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Parse error: syntax error, unexpected T_VARIABLE in /**/registrar.php on l

Bienvenido al foro

Código PHP:
Ver original
  1. if ($email_exist>0$username_exist>0)

Que tipo de condición es esa, tal vez un AND &&? y donde abre el condicional?

Código PHP:
Ver original
  1. echo "El nombre de usuario o la cuenta de correo estan ya en uso"
  2.                 formRegistro()

faltan punto y comas en ambas líneas

Código PHP:
Ver original
  1. $query = 'INSERT INTO Registro (id, password, e-mail)
  2.                VALUES (\''.$username.'\',\''.$password.'\',\''.$e-mail.'\')

Tienes problemas con las comillas

Código PHP:
Ver original
  1. echo 'Ahora puede entrar ingresando su usuario y su password <br />;

Te falta cerrar una comilla

Tampoco le encuentro sentido a la función: formRegistro()

Soluciona todo eso y nos cuentas.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 24/07/2012, 22:23
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años
Puntos: 155
Respuesta: Parse error: syntax error, unexpected T_VARIABLE in /**/registrar.php on l

Cita:
if($username==NULL|$password==NULL|$password2==NUL L|$email==NULL)
...usa || u OR

Código PHP:
Ver original
  1. if($username==NULL || $password==NULL || $password2==NULL || $email==NULL)

..por otro lado, aca no esta mal aplicado NULL...por lo general no se utiliza el valor NULL para comprobar si una variable está vacia...aca puedes usar empty()...

luego aca falta el semicolon en las dos lineas...

Código PHP:
Ver original
  1. echo "El nombre de usuario o la cuenta de correo estan ya en uso"
  2. formRegistro()


aca tambien falta semicolon

Código PHP:
Ver original
  1. $query = 'INSERT INTO Registro (id, password, e-mail)
  2. VALUES (\''.$username.'\',\''.$password.'\',\''.$e-mail.'\')
  #4 (permalink)  
Antiguo 24/07/2012, 22:35
 
Fecha de Ingreso: julio-2012
Mensajes: 12
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Parse error: syntax error, unexpected T_VARIABLE in /**/registrar.php on l

Primero que nada Andres gracias por la bienvenida, y gracias a ambos por sus respuestas, al parecer tenía muchos errores, bueno era de esperar es la primera vez que hago esto, estube modificando algunas cosas y me quedó esto

Código PHP:
Ver original
  1. <?php session_start();
  2.  
  3. //datos para establecer la conexion con la base de mysql.
  4. mysql_connect('','','')or die ('Ha fallado la conexi&oacute;n: '.mysql_error());
  5. mysql_select_db('')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  6.  
  7. function formRegistro(){
  8. ?>
  9. <form action="registrar.php" method="post">
  10. Usuario (max 20):
  11.   <input type="text" name="username" size="20" maxlength="20" /><br />
  12. Password (max 10):
  13. <input type="password" name="password" size="10" maxlength="10" />
  14. Confirma: <input type="password" name="password2" size="10" maxlength="10" /><br />
  15. Email (max 40):
  16. <input type="text" name="email" size="20" maxlength="40" /><br />
  17. <input type="submit" value="Registrar" />
  18. </form>
  19. <?php
  20. }
  21.  
  22. // verificamos si se han enviado ya las variables necesarias.
  23. if (isset($_POST["username"])) {
  24.     $username = $_POST["username"];
  25.     $password = $_POST["password"];
  26.     $password2 = $_POST["password2"];
  27.     $email = $_POST["email"];
  28.     // Hay campos en blanco
  29.     if($username==empty()|$password==empty()|$password2==empty()|$email==empty()) {
  30.         echo "un campo est&aacute; vacio.";
  31.         formRegistro();
  32.     }else{
  33.         // ¿Coinciden las contrase&ntilde;as?
  34.         if($password!=$password2) {
  35.             echo "Las contrase&ntilde;as no coinciden";
  36.             formRegistro();
  37.         }else{
  38.             // Comprobamos si el nombre de usuario o la cuenta de correo ya exist&iacute;an
  39.             $checkuser = mysql_query("SELECT usuario FROM id WHERE usuario='$username'");
  40.             $username_exist = mysql_query($checkuser);
  41.            
  42.             $checkemail = mysql_query("SELECT email FROM id WHERE e-mail='$email'");
  43.             $email_exist = mysql_query($checkemail);
  44.        
  45.             if ($email_exist>0|$username_exist>0)
  46.                 echo "El nombre de usuario o la cuenta de correo estan ya en uso";
  47.                 formRegistro();
  48.             }else{
  49.                 $query = 'INSERT INTO Registro (id, password, e-mail)';
  50.                 VALUES (\''.$username.'\',\''.$password.'\',\''.$e-mail.'\');
  51.              
  52.                mysql_query($query) or die(mysql_error());
  53.                echo 'El usuario '.$username.' ha sido registrado de manera satisfactoria.<br />';
  54.                echo 'Ahora puede entrar ingresando su usuario y su password <br />';
  55.                ?>
  56.                 <FORM ACTION="validar_usuario.php" METHOD="post">
  57.                   Usuario : <INPUT TYPE="text" NAME="usuario" SIZE=20 MAXLENGTH=20><br />
  58.                   Password: <INPUT TYPE="password" NAME="password" SIZE=10 MAXLENGTH=20><br />
  59.                   <INPUT TYPE="submit" VALUE="Ingresar">
  60.                 </FORM>
  61.                 <?php
  62.                
  63.             }
  64.         }
  65.     }
  66. }else{
  67.     formRegistro();
  68. }
  69. ?>

Pero ahora me da este nuevo error:

Parse error: syntax error, unexpected ')', expecting T_STRING or T_VARIABLE or '$' in /home/a1278197/public_html/registrar.php on line 29
  #5 (permalink)  
Antiguo 24/07/2012, 22:40
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Parse error: syntax error, unexpected T_VARIABLE in /**/registrar.php on l

sigues teniendo pdos en tu query

Código PHP:
Ver original
  1. $query = 'INSERT INTO Registro (id, password, e-mail)';
  2.                 VALUES (\''.$username.'\',\''.$password.'\',\''.$e-mail.'\');

igual le veo broncas en tu condicion

Código PHP:
Ver original
  1. if($username==empty()|$password==empty()|$password2==empty()|$email==empty()) {

usa notepad++ , pa que te muestre cosas raras en tu codigo
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #6 (permalink)  
Antiguo 24/07/2012, 23:31
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años
Puntos: 155
Respuesta: Parse error: syntax error, unexpected T_VARIABLE in /**/registrar.php on l

Cita:
Iniciado por mogurbon Ver Mensaje
if($username==empty()|$password==empty()|$password 2==empty()|$email==empty()) {
...esto esta mal, esto seria asi

Código PHP:
Ver original
  1. if(empty($username) || empty($password) || empty($password2) || empty($email)) {
  #7 (permalink)  
Antiguo 24/07/2012, 23:38
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Parse error: syntax error, unexpected T_VARIABLE in /**/registrar.php on l

Cita:
Iniciado por ipraetoriux Ver Mensaje
...esto esta mal, esto seria asi

Código PHP:
Ver original
  1. if(empty($username) || empty($password) || empty($password2) || empty($email)) {
se que esta mal, solo lo señale , no lo corregí
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo

Etiquetas: parse, syntax, t_variable
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 22:24.