Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Noxors en 24 Abril 2008, 21:49 pm



Título: Atascado en Login de usuarios...
Publicado por: Noxors en 24 Abril 2008, 21:49 pm
Bien, veamos el otro dia ya conseguí hacer el registro de usuarios, ahora me toca hacer un login de dichos usuarios y tengo dos problemas, uno que me da un error que no se de que me habla y lo otro esque no se como seguir con el codigo... porque voy mas perdido que un hijo de ... en el dia del padre...

A ver si podeis echarme un cable:

Aquí os dejo el error y el codigo que tengo, me estoy muriendo de asco, he seguido los pasos de mi profe pero me da que no son correctos, que me deciis vosotros?

Gracias de antemano ;)

Veamos depende lo que ponga me da un error u otro, si pongo el codigo de abajo me da esto:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM usuaris WHERE Nick='Alberto'' at line 1

Pero si por el contrario cambio esto:

Código:
$comprobar_usuari="SELECT Nick, FROM usuaris WHERE Nick="'.$_REQUEST['Nick'].'";";

Me da esto otro:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in D:\wamp\www\botigavirtual\confirmaciologin.php on line 10

Me estoy volviendo LOCOOOOOOOOOOO por dios!!!

Código:
<?php
include("conexio.php");
$comprobar_usuari="SELECT Nick, FROM usuaris WHERE Nick='".$_REQUEST['Nick']."';"; //"AND Password='".$_REQUEST['Password']."';";
$comproba_conecta=mysql_query($comprobar_usuari,$conexio)or die(mysql_error());
$segona_comprobacio=mysql_fetch_array($comprobar_usuari);
if ($comproba_conecta['Nick']==$_REQUEST['Nick']){

if ($comproba_conecta['Password']==$_REQUEST['Password'])
{echo "OK";}
else
{"NO";}
}
?>


Título: Re: Atascado en Login de usuarios...
Publicado por: Azielito en 24 Abril 2008, 23:09 pm
el errror es ese "{"NO";}"

te falta el echo
Código
  1. { echo "NO"; }

^^'



Título: Re: Atascado en Login de usuarios...
Publicado por: Freeze. en 24 Abril 2008, 23:13 pm
Cuando uno se desespera tanto se vuelve ciego :xD

A todos nos ha pasado creo yo :xD


Título: Re: Atascado en Login de usuarios...
Publicado por: Noxors en 24 Abril 2008, 23:16 pm
Gracias, correjido, pero vamos que me sigue dando por culo igual xD


Título: Re: Atascado en Login de usuarios...
Publicado por: LuffyFF en 25 Abril 2008, 05:28 am
Aparte del "{"NO";}" que señalo Azielito.

Creo que estás llamando mal con el mysql_fetch_array

Estás haciendo un mysql_fetch_array a $comprobar_usuari, que es la query en texto nomás, mientras que deberias hacerle un mysql_fetch_array al mysql_query de la query en texto.

Y creo que en el query también hay errores.

Veamos, línea 3, esto es lo que tienes en tu código. (He sacado el comentario al final)
Citar
$comprobar_usuari="SELECT Nick, FROM usuaris WHERE Nick='".$_REQUEST['Nick']."';";

Veo que tienes una coma al lado de Nick, o sea, Nick,, no se si afectará, pero mejor sacarlo por las dudas.
El otro problema ne la query es en el WHERE Nick. Mira, tienes WHERE Nick='".$_REQUEST['Nick']."';";
O sea, estás usando un ' y luego cerrándolo antes en 'Nick, por lo que quedaría
'".$_REQUEST['Nick']."'; y además tienes un ; inecesario.

El código arreglado sería asi. (Le puse al final para verificar la password con el request de la password, sino lo quieres asi sacalo)
Citar
$comprobar_usuari="SELECT Nick FROM usuaris WHERE Nick='".$_REQUEST[Nick]." AND Password='".$_REQUEST[Password]."''";


Ok, ahi está la query esa query deberia andar bien.
Sigamos...

Otro error que encontré es en $segona_comprobacio. Estás haciendo un mysql_fetch_array al query en texto solo.
$segona_comprobacio=mysql_fetch_array($comprobar_usuari);
Estás haciendo mysql_fetch_array a SELECT Nick..., pero no a mysql_query("SELECT Nick..."). Por lo tanto, en vez de ser $comprobar_usuari, deberia ser $comproba_conecta.

O sea, cambiarlo por
$segona_comprobacio=mysql_fetch_array($comprobar_conecta);

El siguiente problema.
if ($comproba_conecta['Nick']==$_REQUEST['Nick']){
Estás verificando el array de $comproba_conecta[Nick] con el $_REQUEST[Nick], pero ten en cuenta que eso no está en array, eso es la query. Lo pasaste a array en segona_comprobacio. Por lo tanto deberia quedar asi
if ($segona_comprobacio['Nick']==$_REQUEST['Nick']){
Lo mismo para la siguiente linea, cambiar $comproba_conecta por $segona_comprobacio.

Por lo tanto el código final quedaría así.

Citar
<?php
include("conexio.php");

$comprobar_usuari="SELECT Nick FROM usuaris WHERE Nick='".$_REQUEST[Nick]." AND Password='".$_REQUEST[Password]."'";
$comproba_conecta=mysql_query($comprobar_usuari,$conexio)or die(mysql_error());
$segona_comprobacio=mysql_fetch_array($comprobar_conecta);
if ($segona_comprobacio['Nick']==$_REQUEST['Nick']){
if ($segona_comprobacio['Password']==$_REQUEST['Password'])
{
echo "OK";
}
else {
echo "NO";
}
}
?>


Título: Re: Atascado en Login de usuarios...
Publicado por: Noxors en 25 Abril 2008, 10:41 am
Código:
$comprobar_usuari="SELECT Nick FROM usuaris WHERE Nick='".$_REQUEST[Nick]." AND Password='".$_REQUEST[Password]."'";


Muchas gracias por la ayuda, ahora me toca modificar los "echo" por una variable de sesion que me almacene al usuario y despues propagarla en todas las paginas de la tienda virtual.


En el codigo que puse arriba me han recomendado que no se haga asin la comprobacion de la password, porque hay una forma de petarla muy facilmente, me la comentaron, pero no recuerdo cual era.


Gracias por la ayuda, cuando vuelva del trabajo lo pruebo


Título: Re: Atascado en Login de usuarios...
Publicado por: Noxors en 25 Abril 2008, 19:32 pm
Perdon por el doble post, ahora he ido a comprobar el codigo que me habeis pasado y me da el siguiente error: :S

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1234'' at line 1

Que es lo que le pasa ahora? Manda cojones, he de entregar el trabajo el lunes...


Título: Re: Atascado en Login de usuarios...
Publicado por: LuffyFF en 25 Abril 2008, 19:47 pm
Como pusiste el query al final?

Salu2


Título: Re: Atascado en Login de usuarios...
Publicado por: Noxors en 25 Abril 2008, 19:56 pm
De la forma que tu me lo escribiste :

Código:
$comproba_conecta=mysql_query($comprobar_usuari,$conexio)or die(mysql_error());


Título: Re: Atascado en Login de usuarios...
Publicado por: LuffyFF en 25 Abril 2008, 20:01 pm
Pega la linea anterior, o sea la variable $comprobar_usuari.

Saludos.


Título: Re: Atascado en Login de usuarios...
Publicado por: Noxors en 25 Abril 2008, 22:20 pm
He copiado el codigo tal cual tu me lo correjiste :S:S:S:S:S:S:S:S