$reg= mysql_query("select from usuarios (nombre,clave usuarios) where nombre='$_REQUEST[nombre]' and clave=='$_REQUEST[clave]'",$con);
select from usuarios (nombre,clave usuarios)
Gracias por tu respuesta.Ahora si no quisiera compararlo en php y directamente seria por mysql como lo compararia, luego del "mysql_query (select" quee otra cosa haria para comparar?Y sobre comprar en php, un par de dudas:Código: Text $el_usuario=mysql_fetch_array($reg); if ($el_usuario[1]==$_REQUEST['clave']) Aca me estarias comparando el "nombre" con la "clave" ya que aca pusistes:Código: Textselect nombre,clave usuarios from usuarios WHERE nombre='$_REQUEST[nombre]'" Y estas consultanod por el nombre, o me equivoco?Te comento que recien hize el codigo asi y lo probe:Código: Text<html><body><?php$con=mysql_connect("localhost","user","pass");mysql_select_db("prueba",$con);$reg= mysql_query("select nombre,clave from usuarios where nombre='$_REQUEST[nombre]' and clave='$_REQUEST[clave]'",$con);if($reg){$usuario=mysql_fetch_array($reg);if ($usuario[1]==$_REQUEST['clave'] && $usuario[1]==$_REQUEST['nombre']){echo "Sus datos son correctos"; echo "<br />"; echo "En breve sera redirigido al guestbook";} else{echo "sus datos son incorrectos";}}else { //echo mysql_error(); #solo para debug }?></body></html> Y va perfecto ESEPTO que si dejas en blanco los 2 campos es decir nombre y clave, entra perfectamente, en cambio deberia de decir que no existe xDPorque entra si se deja en blanco :S ?Salu2 y nuevamente gracias por su ayuda.
Me quedo una duda sobre la funcion "empty" si el empty va con un "!" adelante quiere decir que SI NO esta vacio, haga tal cosa? En cambio si pondria "empty" solo diria que si esta vacio haga tal cosa ? Salu2 gracias
1) para que hacer estoif ($usuario[1]==$_REQUEST['clave'] && $usuario[1]==$_REQUEST['nombre']){echo "Sus datos son correctos";echo "<br />";echo "En breve sera redirigido al guestbook";}
Valores retornadosPara las sentencias SELECT, SHOW, DESCRIBE o EXPLAIN, mysql_query() regresa un resource en caso exitoso, y FALSE en error.
y que mas bueno no se porque el pana F_tanori recomienda no comparar el password a traves de SQL ?? es algo que todavia no entiendo porque dice eso
es para saber si el usuario es el indicado yo sugeri usar mysql_num_rows pero esa opcion es validaLuego "if ($reg) { " no es una funcion solo es una condicion para comprobar que se ejecuto la consulta y estas equivocado:Esto Código: Textif ($reg) no es lo mismo que estoCódigo: Textif ($usuario[1]==$_REQUEST['clave'] && $usuario[1]==$_REQUEST['nombre']) asi que no es ni "rebundancia" ni redundancia pues no son intrucciones iguales
en caso de que sea falso puedes ver el error por el cual no se proceso la consulta ( la linea comentada, esta comentada porque tampoco es recomendable mostrar los errores directos como los devuelve mysql (pues indica nombres de campos, tablas, tipos de datos,bd etc informacion que puede ser usada por intrusos)
No estoy diciendo que sean lo mismo lo que estoy diciendo es que en el query se esta haciendo una consulta que va a generar un resource en caso de que el usuario y contraseña sean iguales es decir si "pepito" y "123456" estan en la base de datos genera un resource exitoso en caso de que sea diferente o la contraseña o el usuario retorna falso es decir si "if (reg) {" se ejecuta es porque se encontro un resource en la consulta y vuelvo y lo repito la otra condicion $usuario[1]==$_REQUEST['clave']....... es algo que nunca va a dar diferente ya que siempre sera igual o muestrame un ejemplo donde de lo contrario
redundancia 1. f. Repetición inútil de un concepto: la expresión "subir arriba" constituye una redundancia.
"No estoy diciendo que sean lo mismo"
es que si no quieres que muestre informacion que puede ser usada por intrusos puede colocar otro tipo de mensaje que no sea mysql_error()
1) si dije que era redundante pero lo dije con respecto a la consulta hecha en sql y a la condicion $usuario[1]==$_REQUEST['clave']....... y no con el if ($reg) {2) pana vamos a matar esta culebra por la cabeza hace tiempo cuando recien comenzaba con esto de php realize una pagina de registro de usuario y de consulta la pagina para registrarse es registro.n95.uni.cc y la pagina para el login es www.n95.uni.cc la consulta la hice tal cual como te explique es decir solo con el if ($reg) { y con la misma consulta en sql ahora quiero que te registres y luego trates de entrar con otra clave diferente a la de registro para ver si puedes acceder al contenido porque yo lo hice y no me daba acceso si quieres has el intento y me digas si con otra clave diferente con la que te registrastes te da acceso
eso fue lo que hice mollense, el codigo que use para crear la pagina es el mismo que esta aquiCódigo: Text<html><head></head><body><?php $conexion = mysql_connect("localhost","root","123456789") or die ("Error de Conexion");mysql_select_db("ejemplo",$conexion) or die ("Error en la base de datos");$registro = mysql_query("select * from ejemplo where nombre = '$_REQUEST[usuario]' and pass = '$_REQUEST[pass]'",$conexion) or die ("ERROR".mysql_error()); if ($reg) {echo "bienvenido";}else {echo "clave o usuario invalidas";} ?></body></html> es por eso que le digo que me muestre cual es el error que tiene al hacerlo sin el codigo que el dice $usuario[1]==$_REQUEST['clave']....... si de igual forma puede revisar que funciona y no como el dice que si el usuario pepito se registra con la contraseña 123456789 y el usuario pepito coloca de contraseña 123 igual va a entrar cosa que es falsa por eso digo que me lo demuestre porque es el mismo codigo que el dice que tiene ese error
$registro = mysql_query("select * from ejemplo where nombre = '$_REQUEST[usuario]' and pass = '$_REQUEST[pass]'",$conexion)
if ($reg) {
es por eso que le digo que me muestre cual es el error que tiene al hacerlo sin el codigo que el dice $usuario[1]==$_REQUEST['clave']....... si de igual forma puede revisar que funciona y no como el dice que si el usuario pepito se registra con la contraseña 123456789 y el usuario pepito coloca de contraseña 123 igual va a entrar cosa que es falsa por eso digo que me lo demuestre porque es el mismo codigo que el dice que tiene ese error
si Krosty hace estoCódigo: Text $reg= mysql_query("select nombre,clave from usuarios where nombre='Ftanori' and clave='1000'",$con); si la instruccion se procesa correctamente aun cuando el usuario no exista $reg devuelve un 'objeto' lo cual no significa que haya encontrado al usuario indicado me explico?Cita de: "http://www.php.net/manual/es/function.mysql-query.php"Valores retornadosPara las sentencias SELECT, SHOW, DESCRIBE o EXPLAIN, mysql_query() regresa un resource en caso exitoso, y FALSE en error. la razon de validar if ($reg) es saber que es un resource valido para poder usado con otras funciones como por ejemplo mysql_fetch_array($reg); pues espera es un resource como parametroen caso de que sea falso puedes ver el error por el cual no se proceso la consulta ( la linea comentada, esta comentada porque tampoco es recomendable mostrar los errores directos como los devuelve mysql (pues indica nombres de campos, tablas, tipos de datos,bd etc informacion que puede ser usada por intrusos)Código: Text if ($reg) {}else{//echo mysql_error(); #solo para debug} conclucion que devuelva un resource no significa que haya encontrado el usuario
se me paso ese error cuando lo escribi aqui pero es que de igual el codigo modificado sigue sin error alguno haz la prueba tu mismo en la pagina
venedan:F_Tanori tiene razón.No hay forma de que nosotros sepamos cual es el código que vos usaste en tu página, pero es muy fácil que copies y pegues el trozo de código que te ha dado para que corrobores lo que te está diciendo.Un saludo
eso fue lo que hice mollense, el codigo que use para crear la pagina es el mismo que esta aquiCódigo: Text<html><head></head><body><?php $conexion = mysql_connect("localhost","root","123456789") or die ("Error de Conexion");mysql_select_db("ejemplo",$conexion) or die ("Error en la base de datos");$registro = mysql_query("select * from ejemplo where nombre = '$_REQUEST[usuario]' and pass = '$_REQUEST[pass]'",$conexion) or die ("ERROR".mysql_error()); if ($registro) {echo "bienvenido";}else {echo "clave o usuario invalidas";} ?></body></html> es por eso que le digo que me muestre cual es el error que tiene al hacerlo sin el codigo que el dice $usuario[1]==$_REQUEST['clave']....... si de igual forma puede revisar que funciona y no como el dice que si el usuario pepito se registra con la contraseña 123456789 y el usuario pepito coloca de contraseña 123 igual va a entrar cosa que es falsa por eso digo que me lo demuestre porque es el mismo codigo que el dice que tiene ese error