Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Login con filtro de variable

Estas en el tema de Login con filtro de variable en el foro de PHP en Foros del Web. Hola amigos tengo un pequeño inconveniente con mi Login de usuarios realizado en php que es este @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php if ...
  #1 (permalink)  
Antiguo 02/03/2016, 10:07
Avatar de Defaced  
Fecha de Ingreso: febrero-2016
Mensajes: 60
Antigüedad: 8 años, 2 meses
Puntos: 0
Login con filtro de variable

Hola amigos tengo un pequeño inconveniente con mi Login de usuarios realizado en php que es este
Código PHP:
Ver original
  1. <?php
  2. if(!empty($_POST)){
  3. if(isset($_POST["username"]) &&isset($_POST["password"])){
  4. if($_POST["username"]!=""&&$_POST["password"]!=""){
  5. include "conesion.php";
  6. $user_username=null;
  7. $sql1= "select * from usuario where (username=\"$_POST[username]\") and password=\"$_POST[password]\"";
  8. $query = $con->query($sql1);
  9. while ($r=$query->fetch_array()) {
  10. $user_username=$r["username"];
  11. break;
  12. }
  13. if($user_username==null){
  14. print "<script>alert(\"No puede ingresar al Sistema, revise el nombre de usuario o la contraseña\");window.location='../login.php';</script>";
  15. }else{
  16. $_SESSION["user_username"]=$user_username;
  17. print "<script>window.location='../home.php';</script>";               
  18. }
  19. }
  20. }
  21. }
  22. ?>

Por el momento el Login fucion de maravilla accede al sistema con sus permisos usuarios y bueno, Pero... La idea es que hay un numero de usuarios que estan inactivos y por lo cual no pueden ingresar al sistema, eh googleado y googleado eso y todos los temas siempre me llevan a el punto de que no sirve lo que tengo, o ese login del tuto no sirve, en el select de la tabla eh puesto el valor
Código PHP:
Ver original
  1. $sql1= "select * from usuario where Estado=A (username=\"$_POST[username]\") and password=\"$_POST[password]\" ";
Pero me sale un mensaje de error, Gracias de antemano a quien me responda y Saludos
  #2 (permalink)  
Antiguo 02/03/2016, 10:14
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 4 meses
Puntos: 20
Respuesta: Login con filtro de variable

Hola amigo,
tienes que concatenar todas tus condiciones en la cláusula WHERE
Código SQL:
Ver original
  1. WHERE CONDICION1 AND CONDICION2 AND CONDICION3...
  2. WHERE CONDICION1 OR CONDICION2 OR CONDICION3...
  3. WHERE CONDICION1 AND (CONDICION2 OR CONDICION3)...
  4. WHERE CONDICION1 OR (CONDICION2 AND CONDICION3)...
  5.  ...
etc
Son algunos ejemplos... checa como aplicar tus condiciones
Saludos!
  #3 (permalink)  
Antiguo 02/03/2016, 10:23
Avatar de Defaced  
Fecha de Ingreso: febrero-2016
Mensajes: 60
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Login con filtro de variable

Código PHP:
Ver original
  1. Fatal error: Call to a member function fetch_array() on boolean in C:\xampp\htdocs\Backup 1-03-2016\php\login.php on line 9

Nou, es que en lo personal pienso que el problema va mucho mas del Select Pienso que tambien hay que tocar los
Código PHP:
Ver original
  1. $_SESSION["user_username"]=$user_username;
  #4 (permalink)  
Antiguo 02/03/2016, 10:25
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 4 meses
Puntos: 20
Respuesta: Login con filtro de variable

Hola amigo,
si tienes la consulta como la pusiste... por supuesto que te va arrojar error..
has cambiado tu condicion a como te sugerí?
  #5 (permalink)  
Antiguo 02/03/2016, 10:32
Avatar de Defaced  
Fecha de Ingreso: febrero-2016
Mensajes: 60
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Login con filtro de variable

Si, De las formas que me has dicho, Y muchas gracias por responder
Código PHP:
Ver original
  1. $sql1= "select * from usuario where Estatus=A OR (username=\"$_POST[username]\") and password=\"$_POST[password]\"";
Código PHP:
Ver original
  1. $sql1= "select * from usuario where Estatus=A AND (
  2. username=\"$_POST[username]\") and password=\"$_POST[password]\"";
  #6 (permalink)  
Antiguo 02/03/2016, 10:37
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 4 meses
Puntos: 20
Respuesta: Login con filtro de variable

Si tienes acceso a tu phpmyadmin, imprime la consulta en tu codigo y copia/pega en tu phpmyadmin...
ahi te arrojará el error de tu consulta
(por si hay algun error en el nombre de un campo)
Aunque creo que es la condición del Estatus... yo creo que iria: Estatus = 'A'
Por cierto.... necesitas q las 3 condiciones se cumplan, por lo tanto necesitas AND
sería bueno que leyeras un poco sobre de eso
saludos
  #7 (permalink)  
Antiguo 02/03/2016, 10:43
Avatar de Defaced  
Fecha de Ingreso: febrero-2016
Mensajes: 60
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Login con filtro de variable

Gracias, Casualmente estaba haciendo las pruebas en Phpmyadmin pero como os dije antes pienso que el tema es un poco mas alla del select y ya que en San Google no he encontrado mucho que pueda ayudarme tengo que valerme de lo poco que conosco *Soy estudiante* y recuerdo que eso tenia que invocar una variable pero pienso que tambien seria desperdiciar mi tiempo con algo que no puede ser
  #8 (permalink)  
Antiguo 02/03/2016, 10:44
Avatar de Defaced  
Fecha de Ingreso: febrero-2016
Mensajes: 60
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Login con filtro de variable

Sale que la consulta es correcta ...
  #9 (permalink)  
Antiguo 02/03/2016, 11:03
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 4 meses
Puntos: 20
Respuesta: Login con filtro de variable

Hola amigo, puedes poner el código completo?
Como lo estás probando ahorita...
No se te hace raro que:
"Por el momento el Login fucion de maravilla accede al sistema con sus permisos usuarios y bueno.... "
y al cambiar la consulta truene?
  #10 (permalink)  
Antiguo 02/03/2016, 11:10
Avatar de Defaced  
Fecha de Ingreso: febrero-2016
Mensajes: 60
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Login con filtro de variable

Código PHP:
Ver original
  1. <?php
  2. if(!empty($_POST)){
  3. if(isset($_POST["username"]) &&isset($_POST["password"])){
  4. if($_POST["username"]!=""&&$_POST["password"]!=""){
  5. include "conesion.php";
  6. $user_username=null;
  7. $sql1= "select * from usuario where username=\"$_POST[username]\") and password=\"$_POST[password]\" and Estado='A'";
  8. $query = $con->query($sql1);
  9. while ($r=$query->fetch_array()) {
  10. $user_username=$r["username"];
  11. break;
  12. }
  13. if($user_username==null){
  14. print "<script>alert(\"No puede ingresar al Sistema, revise el nombre de usuario o la contraseña\");window.location='../login.php';</script>";
  15. }else{
  16. $_SESSION["user_username"]=$user_username;
  17. print "<script>window.location='../home.php';</script>";               
  18. }
  19. }
  20. }
  21. }
  22. ?>

Es que antes de colocar la parte del Estado el Login funciona 1A por que el sistema tiene permisos pero eso es otro tema, el tema es que hay usuarios que por x o Y motivo pasan a estar inactivos y estos no pueden usar el sistema "A=Activo I=Inactivo"
  #11 (permalink)  
Antiguo 02/03/2016, 11:30
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 4 meses
Puntos: 20
Respuesta: Login con filtro de variable

Amigo.... imprime tu consulta y pegala en el phpmyadmin...
la consulta no esta bien
imprimela en tu código para que veas como la trata de ejecutar
tal cual la esta imprimiendo ve y copiala en phpmyadmin
  #12 (permalink)  
Antiguo 02/03/2016, 12:25
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Login con filtro de variable

Código PHP:
Ver original
  1.  
  2. include "conesion.php";
  3.  
  4. if(isset($_POST["username"]) && isset($_POST["password"])){
  5.  
  6. //redirecciono con el codigo de mensaje de error para que este se muestre al aperturar la pagina destino
  7. header('location:../login.php?mensaje=203');
  8.  
  9. }else{
  10.  
  11. $verifica = $db->query("SELECT * FROM usuarios WHERE username = '$_POST[username]'");
  12. $t = mysqli_num_rows($verifica);
  13. $row = $verifica->fetch_assoc();
  14.  
  15. if($t < 1){
  16.    
  17. //redirecciono con el codigo de error correspondiente
  18. header('location:../login.php=mensaje=205');
  19.  
  20. };
  21.  
  22. //NO SE DONDE VERIFICAS LA CLAVE DE ACCESO
  23. //DEBERIAS DE VERIFICARLA TAMBIEN
  24.  
  25. //VERIFICAMOS LA CLAVE
  26. /*Obviamente debe estar encriptada con este metodo*/
  27. $password = (crypt($_POST['password'], $row['pass']));
  28.  
  29.  
  30. //si la clave es correcta y esta activo, lo dejo pasar
  31. if($row['pass'] == $password && $estado == "Activo"){
  32.  
  33. $_SESSION["user_username"]=$row['username'];
  34.  
  35. header('location:index.php');
  36.  
  37. //si no esta activo o la clave es incorrecta lo redirecciono
  38. }else{
  39. //redirecciono con el codigo de error correspondiente
  40. header('location:../home.php?mensaje=300');
  41. }
  42.  
  43. }

prueba asi, claro cambiando lo que necesites ya que no se como validas password ni nada de eso, prueba y avisas. saludos
__________________
[email protected]
HITCEL
  #13 (permalink)  
Antiguo 02/03/2016, 13:00
Avatar de Defaced  
Fecha de Ingreso: febrero-2016
Mensajes: 60
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Login con filtro de variable

@german_1441 Gracias por tus respuestas amigo he trato de seguir cada uno de los pasos al pie de la letra para hacer que funcione, ya la he imprimido en PhpMyAdmin y la ejecuta normal.

@xfxstudios Hombre eres grande! gracias por facilitarme el codigo, estoy haciendo los debidos cambios y tratando de aprender lo que mas pueda, valla no sabia que habia otras maneras de hacer un Login Vamos a ver que sucede os estare informando Muchas gracias a ambos por sus respuestas! espero algun dia poder ayudarle asi tambien.
__________________
Si tienes conocimientos y quieres enseñar, Enseña con paciencia y sin arrogancia, Recuerda que tu un día también estabas en la situación de la persona que pregunta
  #14 (permalink)  
Antiguo 02/03/2016, 13:34
Avatar de Defaced  
Fecha de Ingreso: febrero-2016
Mensajes: 60
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Login con filtro de variable

Nou, No quiere correr, rayos esa sensacion de impotencia quererlo arreglar por mi propia cuenta y no poder he cambiado partes del codigo de @Xfxstudios y no logra pasar de esta linea
Código PHP:
Ver original
  1. header('location:../login.php?mensaje=203');

No se podria digamos, que primero verifique que el usuario tenga cuenta y pass y despues hay si implementarle la variable que tome el estado=A, es que estoy quedando muy confundido por que en PhpMyAdmin no me vota error ni nada la consulta
Código PHP:
Ver original
  1. select * from usuario where username and password and Estado='a'
__________________
Si tienes conocimientos y quieres enseñar, Enseña con paciencia y sin arrogancia, Recuerda que tu un día también estabas en la situación de la persona que pregunta

Última edición por Defaced; 02/03/2016 a las 13:41
  #15 (permalink)  
Antiguo 02/03/2016, 14:49
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Login con filtro de variable

bien coloca el codigo del formulario y el que tienes hasta ahora para validar la info a ver
__________________
[email protected]
HITCEL
  #16 (permalink)  
Antiguo 02/03/2016, 15:18
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 4 meses
Puntos: 20
Respuesta: Login con filtro de variable

Cita:
Iniciado por Defaced Ver Mensaje
...en PhpMyAdmin no me vota error ni nada la consulta
Código PHP:
Ver original
  1. select * from usuario where username and password and Estado='a'
Si esa es la consulta y no te tira error, tampoco creo que te tire algun usuario especifico...

Al imprimir la consulta en tu código debería imprimirte algo asi:

Código PHP:
Ver original
  1. SELECT * FROM usuarios WHERE username="miusuario" AND password="mipassword" AND Estado = 'A'
  #17 (permalink)  
Antiguo 02/03/2016, 15:54
Avatar de Defaced  
Fecha de Ingreso: febrero-2016
Mensajes: 60
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Login con filtro de variable

Muchas gracias chicos ya por fin me quedo el codigo Colocaba el codigo al reves pero tomando el codigo de @german_1441 ya me quede Muchas gracias por la paciencia y si algun dia necesitan de alguna ayuda aqui estare! Coloco el codigo por si alguien se topa con esta dificultad *Aunque lo dudo*.

Código PHP:
Ver original
  1. <?php
  2. if(!empty($_POST)){
  3. if(isset($_POST["username"]) &&isset($_POST["password"])){
  4. if($_POST["username"]!=""&&$_POST["password"]!=""){
  5. include "conesion.php";
  6. $user_username=null;
  7. $sql1= "select * from usuario where (username=\"$_POST[username]\") and password=\"$_POST[password]\" AND Estado='A'";
  8. $query = $con->query($sql1);
  9. while ($r=$query->fetch_array()) {
  10. $user_username=$r["username"];
  11. break;
  12. $password = (crypt($_POST['password'], $row['pass']));
  13. }
  14. if($user_username==null){
  15. print "<script>alert(\"No puede ingresar al Sistema, revise el nombre de usuario o la contraseña\");window.location='../login.php';</script>";
  16. }else{
  17. $_SESSION["user_username"]=$user_username;
  18. print "<script>window.location='../home.php';</script>";               
  19. }
  20. }
  21. }
  22. }
  23. ?>

Gracias @german_1441y a @xfxstudios
__________________
Si tienes conocimientos y quieres enseñar, Enseña con paciencia y sin arrogancia, Recuerda que tu un día también estabas en la situación de la persona que pregunta

Etiquetas: login, select, sql, tabla, usuarios, variable
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 00:33.