Foros del Web » Programando para Internet » PHP »

Problema con el login

Estas en el tema de Problema con el login en el foro de PHP en Foros del Web. Hola gente,miren,tengo un sistema de registros,que me registra los datos de los usuarios de maravilla,pero cuando quiero hacer login,miren me salta este error: Parse error: ...
  #1 (permalink)  
Antiguo 27/05/2005, 15:46
Saldu
Invitado
 
Mensajes: n/a
Puntos:
Problema con el login

Hola gente,miren,tengo un sistema de registros,que me registra los datos de los usuarios de maravilla,pero cuando quiero hacer login,miren me salta este error:

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\apache\htdocs\ingresar.php on line 5

Y este es el archivo ingresar.php :


<?php
$Query = mysql_query("SELECT * FROM `usuarios` WHERE `username` &&
`user_password` = '' || 1 = '1'='$_POST[username] : '';
if(mysql_num_rows($Query) != 0) {
$data = mysql_fetch_array($Query);
if($data['user_password'] = $_POST['user_password']) {
session_start();
$_SESSION['auth'] = true;
header("Location: index2.php");
} else {
$error = "El password ingresado es incorrecto";
}
} else {
$error = "El usuario ingresado no existe";
}
?>

La linea que coloreo es la línea número 5...

El campo con los campos de el nombre de usuario y la contraseña es:

username y user_password

Si el error está en otro lado,fijense,please,ayudenme...
Y tambien expliquenme cómo es el tema cuándo haces login,osea,se te abre una pagina que te muestra todos tus datos personales,cómo hace eso? y cómo puedo hacer para:

Yo utilizo 3 frames,arriba,izq y abajo...he visto paginas en las que cuando haces login,el frame izq cambia,personalizando todo con opciones para los usuarios... y los otros 2 siguen exactamente igual...qué tengo que hacer para que cambie el frame de la izquierda cuando hace login alguien?
  #2 (permalink)  
Antiguo 27/05/2005, 17:12
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
te hice un ejemplo simple con tus datos:

Código PHP:
        $Query mysql_query("SELECT username,user_password FROM usuarios WHERE username='".$_POST['username']."' AND user_password='".$_POST['user_password']."'") or die("MySQL dice: ".mysql_error());

         if (
mysql_num_rows($Query) = 0) {
             echo 
"error, no existe esa cuenta de usuario";
          exit;
         } 
__________________
3w.valenciadjs.com
3w.laislatv.com
  #3 (permalink)  
Antiguo 27/05/2005, 21:41
 
Fecha de Ingreso: mayo-2005
Mensajes: 72
Antigüedad: 18 años, 10 meses
Puntos: 1
lo primero es que tu sql query está mal formada, aqui esta tu script arreglado:
<?php
session_start();
$User = $_POST['username'];
$Pass = $_POST['user_password'];
$Query = mysql_query("SELECT * FROM usuarios WHERE username='$User' &&
user_password ='$Pass''');
if(mysql_num_rows($Query) != 0) {
$data = mysql_fetch_array($Query);
if($data['username] == "$User" && $data['user_password'] == "$Pass"){
$session_register('username');
$session_register('user_password');
header("Location: index2.php");
} else {
$error = "Usuario / Clave no son válidos, intente de nuevo...";
}
?>

script para salir de la session:
<?php
session_start();
session_unregister('username');
session_unregister('user_password');
header("Location: tuindex.php");
?>

ojala que eso te ayude un poco
  #4 (permalink)  
Antiguo 28/05/2005, 05:50
Saldu
Invitado
 
Mensajes: n/a
Puntos:
Puse el script corregido por boxy,y me saltó este error ahora:

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\apache\htdocs\ingresar.php on line 9

Y esta es la línea 9

if($data['username] == "$User" && $data['user_password'] == "$Pass"){

Gracias,tambien,quisiera saber si me podrían responder sobre la pregunta que dejé en mi primer post,en este mismo topic,la de los frames,cómo se hace para que cambie el frame izquierdo? o tengo que hacer uno nuevo?
  #5 (permalink)  
Antiguo 28/05/2005, 13:21
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
loading........



al hacer esto
Código PHP:
if($data['username] == "$User" && $data['user_password] == "$Pass"){ 
aparte de que n cierras una comilla simple.
tomas la supuesta variable $User y $Pass como texto
debe ser asi

Código PHP:
if($data['username'] == $User && $data['user_password'] == $Pass){ 


connection closed.
__________________

Maborak Technologies

Última edición por MaBoRaK; 28/05/2005 a las 13:26
  #6 (permalink)  
Antiguo 28/05/2005, 15:12
Saldu
Invitado
 
Mensajes: n/a
Puntos:
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\apache\htdocs\ingresar.php on line 9

Sigue saltando el mismo error de siempre,puse la correción Mavorak,y sigue asi...

Alguna sugerencia? Alguna correcion?

<?php
session_start();
$User = $_POST['username'];
$Pass = $_POST['user_password'];
$Query = mysql_query("SELECT * FROM usuarios WHERE username='$User' &&
user_password ='$Pass''');
if(mysql_num_rows($Query) != 0) {
$data = mysql_fetch_array($Query);
if($data['username'] == $User && $data['user_password'] == $Pass){
$session_register('username');
$session_register('user_password');
header("Location: index2.php");
} else {
$error = "Usuario / Clave no son válidos, intente de nuevo...";
}
?>

Así seria todo el codigo
  #7 (permalink)  
Antiguo 28/05/2005, 16:02
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
Código PHP:
$Query mysql_query("SELECT * FROM usuarios WHERE username=".$User." AND
user_password ="
.$Pass."); 
Ten cuidado con SQL injection. Tu sistema de verificación de usuarios no es nada seguro.
No quiero darte un ejemplo de lo q te podrían hacer y q quede escrito en el foro. Googlea para obtener información.
Saludos cuidate
__________________
Dios dira que esto no es justo, pero lo sera...
  #8 (permalink)  
Antiguo 28/05/2005, 18:07
 
Fecha de Ingreso: mayo-2005
Mensajes: 72
Antigüedad: 18 años, 10 meses
Puntos: 1
aqui esta arreglado:

Cita:
<?php
session_start();
$User = $_POST['username'];
$Pass = $_POST['user_password'];
$Query = mysql_query("SELECT * FROM usuarios WHERE username='$User' && user_password ='$Pass'");
if(mysql_num_rows($Query) != 0) {
$data = mysql_fetch_array($Query);
if($data['username'] == $User && $data['user_password'] == $Pass){
$session_register('username');
$session_register('user_password');
header("Location: index2.php");
} else {
echo("Usuario / Clave no son válidos, intente de nuevo...");
}
?>

me dices si te ayudó..
  #9 (permalink)  
Antiguo 28/05/2005, 18:29
Saldu
Invitado
 
Mensajes: n/a
Puntos:
Si,jajaja,otra cosa


Parse error: parse error in c:\apache\htdocs\ingresar.php on line 15

Y es la línea del } que lo cierra,ahí posta,que no sé...porque supuestamente es un error boludo...pero no sé qué es lo que está mal...fijense..
  #10 (permalink)  
Antiguo 29/05/2005, 03:19
 
Fecha de Ingreso: mayo-2005
Mensajes: 72
Antigüedad: 18 años, 10 meses
Puntos: 1
solo tenías que agregarle una llave:

Código PHP:
<?php
session_start
();
$User $_POST['username'];
$Pass $_POST['user_password'];
$Query mysql_query("SELECT * FROM usuarios WHERE username='$User' && user_password ='$Pass'"); 
if(
mysql_num_rows($Query) != 0) {
$data mysql_fetch_array($Query);
if(
$data['username'] == $User && $data['user_password'] == $Pass){ 
$session_register('username');
$session_register('user_password');
header("Location: index2.php");
} else {
echo(
"Usuario / Clave no son válidos, intente de nuevo...");
}
}
?>
y listo...
  #11 (permalink)  
Antiguo 29/05/2005, 06:55
Saldu
Invitado
 
Mensajes: n/a
Puntos:
Me está re pelotudeando este coso,jajaja,mirá

Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htdocs\ingresar.php on line 6

user_password='$Pass'");

y esa es la línea 6... Me da bronca,porq' si no es 1 cosa,es otra,jaja
  #12 (permalink)  
Antiguo 29/05/2005, 07:45
 
Fecha de Ingreso: mayo-2005
Mensajes: 72
Antigüedad: 18 años, 10 meses
Puntos: 1
existe el campo "user_password" en tu tabla...?
  #13 (permalink)  
Antiguo 29/05/2005, 08:05
Saldu
Invitado
 
Mensajes: n/a
Puntos:
sip...los datos de mi tabla,q necesitas para hacer el login son user_password y username
  #14 (permalink)  
Antiguo 29/05/2005, 20:31
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Quiero suponer antes haces todo el proceso de conectarte y seleccionar la BD...

www.php.net/mysql_connect
www.php.net/mysql_select_db

... ¿no está sobrando esta validación?:
Código PHP:
if($data['username'] == $User && $data['user_password'] == $Pass){ 
... si estás recuperando de la BD solo los datos que cumplen con la mismita validación... defintivamente está de sobra...

... ahora, solo como comentarios:
- Por cuestiones de seguridad es recomendable manejar los passwords en MD5(): www.php.net/md5 (también disponible para SQL)
- Por cuestiones de ahorro de resursos, según la forma en que se trabaja en este script, es mejor usar mysql_fetch_assoc() en vez de mysql_fetch_array(): www.php.net/mysql_fetch_assoc

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #15 (permalink)  
Antiguo 29/05/2005, 20:39
 
Fecha de Ingreso: mayo-2005
Mensajes: 72
Antigüedad: 18 años, 10 meses
Puntos: 1
este problema:

Cita:
Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htdocs\ingresar.php on line 6
si todo nuestro script esta bien y no hay conneccion a la base de datos.
lee estos links, me parece que no has connectado a la BD.
www.php.net/mysql_connect
www.php.net/mysql_select_db

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 06:01.