Programación Web y Scripting > PHP
Crear Login Y Registro
venedan:
editado por duplicado
venedan:
--- Cita de: "F_Tanori" ---
es para saber si el usuario es el indicado yo sugeri usar mysql_num_rows pero esa opcion es valida
Luego "if ($reg) { " no es una funcion solo es una condicion para comprobar que se ejecuto la consulta
y estas equivocado:
Esto
--- Código: Text ---if ($reg)
no es lo mismo que esto
--- Código: Text ---if ($usuario[1]==$_REQUEST['clave'] && $usuario[1]==$_REQUEST['nombre'])
asi que no es ni "rebundancia" :P ni redundancia pues no son intrucciones iguales
--- Fin de la cita ---
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
--- Cita de: "F_Tanori" ---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)
--- Fin de la cita ---
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()
F_Tanori:
--- Cita de: "venedan" ---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
--- Fin de la cita ---
al decir "Rebundancia" yo supuse que quisiste decir Redundacia
que se define con algo como:
--- Cita de: "http://www.wordreference.com/definicion/redundancia" ---redundancia
1. f. Repetición inútil de un concepto:
la expresión "subir arriba" constituye una redundancia.
--- Fin de la cita ---
y ahora me dices que :rolleyes:
--- Cita de: "venedan" ---"No estoy diciendo que sean lo mismo"
--- Fin de la cita ---
te repito...
--- Código: Text ---if ($usuario[1]==$_REQUEST['clave'] && $usuario[1]==$_REQUEST['nombre'])
es como alternativa a mysql_num_rows para ver si se regreso un registro
Ejemplo:
Tabla (BD): usuarios
--------------------
[doHtml]
<table border='1'>
<tr><th>nombre</th><th>clave</th></tr>
<tr><td>pepito</td><td>123456</td></tr>
<tr><td>juanito</td><td>555</td></tr>
<tr><td>dianita</td><td>diana</td></tr>
</table>[/doHtml]
login.php
usuario: [doHtml]<input value='pepito'>[/doHtml]
clave: [doHtml]<input value='123'>[/doHtml]
procesar.php
<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>XCODE </td></tr><tr><td id='XCODE'><!--exc1-->
<?php
$con=mysql_connect("localhost","USER","PASS");
mysql_select_db("prueba",$con);
$reg= mysql_query("select nombre,clave from usuarios where nombre='pepito' and clave='123'",$con);
if ($reg )
{
echo "Sus datos son correctos";
echo "<br />";
echo "En breve sera redirigido al guestbook";
}
else
{
echo "sus datos son incorrectos";
}
?>
</body>
</html>
<!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->
La consulta se proceso con exito, pues no existe error de sintaxis o cosas por el estilo por lo tanto $reg devuelve resource que en el if se 'traduce' como true (o sea no devolvio falso :P)
Por lo tanto le mostrara
Sus datos son correctos
sin embargo no lo son pues la clave de pepito es 123456 no 123
Te invito que hagas pruebas y sigamos comentando :smartass:
espero que le en cuentres sentido del porque no basarse en if ($reg ) como condicion de que encontro al usuario
--- Citar ---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()
--- Fin de la cita ---
claro, por eso el comentario "solo para Debug" para que el desarrollador pueda ver el mensaje del servidor de la base de datos se utiliza mysql_error() para encontrar el error, y por supuesto una vez que este corregido se comenta la linea (para ocasiones posteriores) y se coloca un mensaje para el usuario :)
Saludos
venedan:
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
Mollense:
--- Cita de: "venedan" --- 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
--- Fin de la cita ---
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
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa