Foros del Web » Programando para Internet » PHP »

variable mal?

Estas en el tema de variable mal? en el foro de PHP en Foros del Web. Parse error: parse error, unexpected T_VARIABLE in /home/fxxxxxxx/domains/xxxxxxxxx.com.ar/public_html/registro.php on line 44 hola como va, sigo luchando con un registro de usuarios, descargué este de un ...
  #1 (permalink)  
Antiguo 26/10/2005, 16:10
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 20 años, 6 meses
Puntos: 4
variable mal?

Parse error: parse error, unexpected T_VARIABLE in /home/fxxxxxxx/domains/xxxxxxxxx.com.ar/public_html/registro.php on line 44

hola como va, sigo luchando con un registro de usuarios, descargué este de un foro y me da este error al registrar un usuario.
tengo bien la conexión de la bd pero en esta línea me da este error.

Código PHP:
 $sql_email_check mysql_query("SELECT email FROM usuarios
    WHERE email="
$email"");
    
$sql_usuario_check mysql_query("SELECT usuario FROM usuarios
    WHERE usuario="
$usuario""); 
Código PHP:
    <?php
    
include "db.php";

    
// Inserta los valores de los campos del formulario en las variables
    
$nombre $_POST["nombre"];
    
$apellido $_POST["apellido"];
    
$email $_POST["email"];
    
$usuario $_POST["usuario"];
    
$info $_POST["info"];

    
/* Eliminamos ciertos caracteres especiales. */

    
$nombre stripslashes($nombre);
    
$apellido stripslashes($apellido);
    
$email stripslashes($email);
    
$usuario stripslashes($usuario);
    
$info stripslashes($info);


    
/* Chequeo de errores */

    
if((!$nombre) || (!$apellido) || (!$email) || (!$usuario)){
    echo 
"Falta ingresar la siguiente información! <br />";
    if(!
$nombre){
    echo 
"El Nombre es un campo requerido, por favor ingréselo.<br />";
    }
    if(!
$apellido){
    echo 
" El Apellido es un campo requerido, por favor ingréselo.<br />";
    }
    if(!
$email){
    echo 
" El E-mail es un campo requerido, por favor ingréselo.<br />";
    }
    if(!
$usuario){
    echo 
" El Nombre de usuario es un campo requerido, por favor ingréselo.<br />";
    }
    include 
"form_ingreso.html"// Muestra nuevamente el formulario!
    /* Finaliza el chequeo de errors, si está todo bien, pasa al siguiente paso*/
    
exit(); // si el chequeo de errores falla, termina el script!
    
}

    
/* Chequeamos que el nombre de usuario y la contraseña no existan previamente en la base de datos */

    
$sql_email_check mysql_query("SELECT email FROM usuarios
    WHERE email="
$email"");
    
$sql_usuario_check mysql_query("SELECT usuario FROM usuarios
    WHERE usuario="
$usuario"");

    
$email_check mysql_num_rows($sql_email_check);
    
$usuario_check mysql_num_rows($sql_usuario_check);

    if((
$email_check 0) || ($usuario_check 0)){
    echo 
"Por favor, corrija los siguientes errores: <br />";
    if(
$email_check 0){
    echo 
"<strong>La dirección de mail ingresada ya está registrada en nuestro sistema, por favor ingrese una distinta<br />";
    unset(
$email);
    }
    if(
$usuario_check 0){
    echo 
"El nombre de usuario ingresado ya está registrado en nuestro sistema, por favor ingrese uno distinto <br />";
    unset(
$usuario);
    }
    include 
"form_ingreso.html"// Muestra el formulario de nuevo
    
exit(); // Termina el script.
    
}

    
/* Si todo sale ok, se crea la cuenta */

    /* Primero generamos la contraseña */
    
function generaContrasenia() {
    
$salt "abchefghjkmnpqrstuvwxyz0123456789";
    
srand((double)microtime()*1000000);
    
$i 0;
    while (
$i <= 7) {
    
$num rand() % 33;
    
$tmp substr($salt$num1);
    
$pass $pass $tmp;
    
$i++;
    }
    return 
$pass;
    }

    
$contrasenia_azar generaContrasenia();

    
$db_password md5($contrasenia_azar);

    
// Ingresa los datos a la base de datos.
    
$info2 htmlspecialchars($info);
    
$sql mysql_query("INSERT INTO usuarios (nombre, apellido,
    email, usuario, password, info, fecha_inscrip)
    VALUES("
$nombre", "$apellido", "$email",
    "
$usuario", "$db_password", "$info2", now())")
    or die (
mysql_error());

    if(!
$sql){
    echo 
"Hubo un error al crear el usuario, contacte al webmaster.";
    } else {
    
$userid mysql_insert_id();
    
// Envía un mail al usuario
    
$subject "Membresía al sitio dominio.com";
    
$message "Estimado $nombre $apellido,
    Gracias por registrarse en dominio.com!!

    Faltan sólo unos pasos para poder utilizar su usuario.

    Para activar su membresía, por favor haga click en el siguiente enlace: http://www.xxxxxxxxxx.com.ar/activar.php?id=$userid&code=$db_password

    Luego de activar su membresía podrá ingresar a nuestro área privada utilizando los siguientes datos:
    Usuario: $usuario
    Contraseña: $contrasenia_azar

    Muchas Gracias!
    El Webmaster

    Esta es una respuesta generada automáticamente, por favor no responda este mensaje"
;

    
mail($email$subject$message,
    
"From: Nombre del Sitio<[email protected]>\\n
    X-Mailer: PHP/" 
phpversion());
    echo 
"La información sobre su membresía fue enviada a su e-mail.
    Revise su casilla de correo electrónico y siga las instrucciones"
;
    }

    
?>
  #2 (permalink)  
Antiguo 26/10/2005, 16:19
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 19 años, 5 meses
Puntos: 7
A ver no estoy del todo seguro pero creo que es cosa de las comillas que van con la variable, prueba con comillas simples(la que esta junto al numero 0):
Código PHP:
$sql_email_check mysql_query("SELECT email FROM usuarios
    WHERE email='$email'"
);
    
$sql_usuario_check mysql_query("SELECT usuario FROM usuarios
    WHERE usuario='$usuario'"
); 
espero que asi te vaya bien.

Saludos
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #3 (permalink)  
Antiguo 26/10/2005, 16:22
Avatar de Master Solution  
Fecha de Ingreso: octubre-2005
Mensajes: 51
Antigüedad: 19 años, 1 mes
Puntos: 1
Esta mal la consulta, tenes que usar comillas simples en vez de dobles, ahi, o concatenar las variables de otra manera.

Ejemplo:

Código:
$sql_email_check = mysql_query("SELECT email FROM usuarios WHERE email='$email'"); 
    $sql_usuario_check = mysql_query("SELECT usuario FROM usuarios WHERE usuario='$usuario'");  
O

Código:
 $sql_email_check = mysql_query("SELECT email FROM usuarios WHERE email=" . $email); 
    $sql_usuario_check = mysql_query("SELECT usuario FROM usuarios WHERE usuario=" . $usuario);  
EDIT: Recien ahora veo el otro post.
__________________
-=[ 3KLabs ]=-
-=[ Diseño - Programación - Desarrollo ]=-
-=[ Posicionamiento en Buscadores ]=-
-=[ Hosting de Calidad ]=-
  #4 (permalink)  
Antiguo 26/10/2005, 16:23
Avatar de hieloverde  
Fecha de Ingreso: julio-2005
Ubicación: México, D.F
Mensajes: 467
Antigüedad: 19 años, 4 meses
Puntos: 5
Hola,

Tambien podrias probar poniendolo asi:

Código PHP:
$sql_email_check mysql_query("SELECT email FROM usuarios WHERE email='".$email."'"); 
$sql_usuario_check mysql_query("SELECT usuario FROM usuarios WHERE usuario='".$usuario."'"); 
Un saludo
__________________
<? echo("1 <script> dice + que 1000 palabras"); ?> EspacioMéxico
  #5 (permalink)  
Antiguo 26/10/2005, 16:46
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 20 años, 6 meses
Puntos: 4
gracias, probé y ahora me da error en linea 89

Parse error: parse error, unexpected T_VARIABLE in /home/ferreteria/domains/camferreteriascba.com.ar/public_html/registro.php on line 89


Código PHP:
 $info2 htmlspecialchars($info);
    
$sql mysql_query("INSERT INTO usuarios (nombre, apellido,
    email, usuario, password, info, fecha_inscrip)
    VALUES("
$nombre", "$apellido", "$email",
    "
$usuario", "$db_password", "$info2", now())")
    or die (
mysql_error()); 
  #6 (permalink)  
Antiguo 26/10/2005, 17:09
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
El mismo error.. el mismo problema. Estás concatenando mal.
Código PHP:
$info2 htmlspecialchars($info);
    
$sql mysql_query("INSERT INTO usuarios (nombre, apellido,
    email, usuario, password, info, fecha_inscrip)
    VALUES('$nombre', '$apellido', '$email',
    '$usuario', '$db_password', '$info2', now())"
)
    or die (
mysql_error()); 
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #7 (permalink)  
Antiguo 26/10/2005, 17:15
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 20 años, 6 meses
Puntos: 4
si jamm probé esa opcion de sintaxis pero asi me da error en:

Parse error: parse error, unexpected T_STRING in /home/ferreteria/domains/camferreteriascba.com.ar/public_html/db.php on line 7

que sería el email
Código PHP:
 $nombre $_POST["nombre"];
    
$apellido $_POST["apellido"];
    
$email $_POST["email"];
    
$usuario $_POST["usuario"];
    
$info $_POST["info"]; 
  #8 (permalink)  
Antiguo 26/10/2005, 17:20
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
... leamos:
Parse error: parse error, unexpected T_STRING in /home/ferreteria/domains/camferreteriascba.com.ar/public_html/db.php on line 7

Se refiere al archivo que incluyes ¿no?. El error es por lo mismo.. problemas de sintáxis... lee un tutorial, eso es básico!.

Muestra el código del archivo implicado para ver el error.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #9 (permalink)  
Antiguo 26/10/2005, 17:24
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 20 años, 6 meses
Puntos: 4
sii disculpaaa, estab tan mareado que no leí, jajaj

lo solucioné asi:
Código PHP:
<?
$link
=mysql_connect("localhost","","");
mysql_select_db("f");

?>

Última edición por mvlsistemas; 26/10/2005 a las 18:17
  #10 (permalink)  
Antiguo 26/10/2005, 18:14
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 20 años, 6 meses
Puntos: 4
realmente me está volviendo loco, en el archivo activar.php que es el codigo riginal así:

Código PHP:
    <?
    
// Conecta con la base
    
include "db.php";

    
// crea las variables a partir de la URL
    
$usuario $_REQUEST["id"];
    
$codigo $_REQUEST["code"];

    
$sql mysql_query("UPDATE usuarios SET activo="1" WHERE id="$usuario" AND password="$codigo"");

    
$sql_doublecheck mysql_query("SELECT * FROM usuarios WHERE usuario="$usuario" AND password="$codigo" AND activo="1"");
    
$doublecheck mysql_num_rows($sql_doublecheck);

    if(
$doublecheck == 0){
    echo 
"<strong><font color=red>Su cuenta no puede ser activada</font></strong>";
    } elseif (
$doublecheck 0) {
    echo 
"<strong>Su cuenta se activó correctamente</strong> Puede ingresar completando el siguiente formulario<br />";
    include 
"form_ingreso.html";
    }
    
?>
me da:
Parse error: parse error, unexpected T_LNUMBER in /home/ferreteria/domains/camferreteriascba.com.ar/public_html/activar.php on line 9

probé poniendo así:
Código PHP:
 $sql mysql_query("UPDATE usuarios SET activo="1" WHERE id='$usuario' AND password='$codigo'"); 
y lo mismo me da error.

gracias por lo anterior ya me funcionó, cuando funcione todo se los envío por zip al que le haga falta, en sí está bastante bueno el script. Obviamente citaremos la fuente del que lo hizo nobleza obliga, que se llama Ernesto y no publica un apellido.

listo solucioné la sintaxis,
Código PHP:
sql_doublecheck mysql_query("SELECT * FROM usuarios WHERE usuario=. $usuario AND password= .$codigo AND activo=1");
    
$doublecheck mysql_num_rows($sql_doublecheck); 
pero esta funcion me da error ahora:
Código PHP:
  $doublecheck mysql_num_rows($sql_doublecheck); 
me dice su cuenta no pudo ser activada Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/a/domains/.com.ar/public_html/activar.php on line 12
Su cuenta no puede ser activada

Última edición por mvlsistemas; 26/10/2005 a las 20:05
  #11 (permalink)  
Antiguo 26/10/2005, 20:11
Avatar de Master Solution  
Fecha de Ingreso: octubre-2005
Mensajes: 51
Antigüedad: 19 años, 1 mes
Puntos: 1
Es lo mismo, estas teniendo de vuelta problemas con la sintaxis.

Deberia ser asi:

Código PHP:
sql_doublecheck mysql_query("SELECT * FROM usuarios WHERE usuario='$usuario' AND password='$codigo' AND activo='1'"); 
Siempre fijate que todas las comillas queden cerradas, que no quede ninguna abierta. Y siempre que tengas que usar comillas dentro de la consulta usa las comillas simples, las dobles usala solamente para abrir la consulta, es decir, para hacer mysql_query(""), adentro de esas comillas dobles, usa siempre comillas simples, y listo.

Ademas tu consulta no esta devolviendo registros validos, puede ser, porque la consulta en realidad no era como querias, proba con las correcciones hechas, y si asi persiste, fijate en la tabla, a agregarle los campos necesarios para que al menos haya algun resultado.
__________________
-=[ 3KLabs ]=-
-=[ Diseño - Programación - Desarrollo ]=-
-=[ Posicionamiento en Buscadores ]=-
-=[ Hosting de Calidad ]=-
  #12 (permalink)  
Antiguo 26/10/2005, 20:29
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 20 años, 6 meses
Puntos: 4
ok master, eso lo solucioné. gracias a vuestras correciones.

pero ahora no me permite activar la cta. el mail que me llega tiene un link que llama al activar.php que es este:
Código PHP:
<?
    
// Conecta con la base
    
include "db.php";

    
// crea las variables a partir de la URL
    
$usuario $_REQUEST["id"];
    
$codigo $_REQUEST["code"];

    
$sql mysql_query("UPDATE usuarios SET activo=1 WHERE id= . $usuario AND password= . $codigo ");

    
$sql_doublecheck mysql_query("SELECT * FROM usuarios WHERE usuario=. $usuario AND password= .$codigo AND activo=1");
    
$doublecheck mysql_num_rows($sql_doublecheck);

    if(
$doublecheck == 0){
    echo 
"<strong><font color=red>Su cuenta no puede ser activada</font></strong>";
    } elseif (
$doublecheck 0) {
    echo 
"<strong>Su cuenta se activó correctamente</strong> Puede ingresar completando el siguiente formulario<br />";
    include 
"form_ingreso.html";
    }
    
?>
cuando lo llamo desde el link me da esto: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/fria/domains/ca.com.ar/public_html/activar.php on line 12
Su cuenta no puede ser activada
probé cambiando los valores en los operadores de comparacion pero no me da el alta para registrarme.
  #13 (permalink)  
Antiguo 27/10/2005, 03:00
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
No se realizó bien la consulta... el mismo problema: errores de sintaxis... ¿qué hacen los puntos el la query???:
Código PHP:
$sql mysql_query("UPDATE usuarios SET activo='1' WHERE id='$usuario' AND password='$codigo'"); 
Tienes el mismo error en la otra sentencia...

Concatenar es de lo más básico.... .... .... Espero quede con eso. Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #14 (permalink)  
Antiguo 27/10/2005, 16:20
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 20 años, 6 meses
Puntos: 4
si funciona ahora, gracias a todos, el lunes lo pondré quizás en una faq, si es que corresponde. el script no es mío obviamente-
Jam por algo eres el moderador amigo y bien merecido que te lo tienes, con gente como tu, es bueno poder contar. Bytevamp, hieloverde, master solution , gracias me han ayudado un montón.
  #15 (permalink)  
Antiguo 27/10/2005, 17:20
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 19 años, 5 meses
Puntos: 7
A mandar
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
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:46.