Foros del Web » Programando para Internet » Javascript »

Direccionar segun el usuario

Estas en el tema de Direccionar segun el usuario en el foro de Javascript en Foros del Web. Hola a todos tengo dos archivos , en uno me registro con ajax y el el otro evaluó si esta bien o no. Lo que ...
  #1 (permalink)  
Antiguo 11/03/2020, 09:52
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 835
Antigüedad: 12 años, 7 meses
Puntos: 7
Pregunta Direccionar segun el usuario

Hola a todos tengo dos archivos , en uno me registro con ajax y el el otro evaluó si esta bien o no.

Lo que necesito es que si el usuario es estado=1 sea administrador, y se direcciones a x pagina y si es 2 que direccione a xx pagina.... no me sale ....

el ajax:

Código Javascript:
Ver original
  1. $(document).ready(function(){ // esta funcion espera que cargue todo para hacer lo siguiente
  2.   $('#login').click(function(){
  3.  
  4.     var user_mail = $('#user_mail').val();
  5.     var user_pass = $('#user_pass').val();
  6.  
  7.     if ($.trim(user_mail).length > 0 && $.trim(user_pass).length > 0){
  8.       /*
  9.       console.log(user_mail);
  10.       console.log(user_pass);
  11.       */
  12.  
  13.       $.ajax({
  14.  
  15.             url:"logueame.php",
  16.             method:"POST",
  17.             data:{user_mail:user_mail, user_pass:user_pass},
  18.             cache:"false",
  19.             beforeSend:function(){
  20.                 $('#login').val("Conectando.....");
  21.  
  22.             },
  23.  
  24.               success:function(data){
  25.               $('#login').val("Login");
  26.               if (data=="1"){
  27.                 $(location).attr('href','../index.php');
  28.               }else{
  29.                 $("#result").html("<div class='alert alert-dismissible alert-danger'><button type='button' class='close' data-dismiss='alert'>&times;</button><strong>Errror</strong> las credenciales son incorrectas.</div>");
  30.               }
  31.              
  32.               }
  33.       });
  34.  
  35.     };
  36.  
  37.  
  38.  
  39.  
  40.   });
  41.  
  42.  });

el de PHP:
Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4. include("../source/config.php");
  5. $cone=conectar();  
  6.  
  7. if (isset($_POST["user_mail"]) && isset($_POST["user_pass"])){
  8.  $user_mail= mysqli_real_escape_string($cone,$_POST["user_mail"]);
  9.  $user_pass= mysqli_real_escape_string($cone,$_POST["user_pass"]);
  10.  
  11. /*$res = mysqli_query($cone,"SELECT * FROM user WHERE usermail='$email' and passcode='$pass'");*/
  12.  
  13. $sql ="SELECT * FROM cl_usuarios WHERE user_mail='$user_mail'  AND user_pass='$user_pass'";
  14.  
  15. $result =mysqli_query($cone,$sql);
  16. $num_row = mysqli_num_rows($result);
  17. if ($num_row=="1"){
  18.  
  19.     $data=mysqli_fetch_array($result);
  20.      $_SESSION["user_mail"]= $data["user_mail"];
  21.      $_SESSION["user_name"]= $data["user_name"];
  22.      $_SESSION["user_estado"]= $data["user_estado"];
  23.      
  24.  
  25.      echo "1";
  26.  
  27.      
  28. }else{
  29.    echo"error";
  30. }
  31.  
  32.  
  33. }else{
  34.    
  35.     echo"error";
  36.  
  37. }
  38.  
  39.  
  40. ?>

Soy nuevo en ajax y he sacado este ejemplo de google para aprender, pero me he trabajo es las redirecciones segun el usuario....

Muchas GRACIAS por sus tiempo espero pronta repuesta
Grasas
Saludos Atte.
Fede
  #2 (permalink)  
Antiguo 11/03/2020, 11:30
 
Fecha de Ingreso: abril-2011
Mensajes: 66
Antigüedad: 9 años
Puntos: 19
Respuesta: Direccionar segun el usuario

¿A qué te refieres cuando dices que no funciona? ¿No redirige? ¿Te muestra algún error el depurador del navegador?

Código Javascript:
Ver original
  1. $(location).attr('href','../index.php');

Eso en principio es correcto (aunque yo utilizaría simplemente: location.href = '../index.php').

¿Has verificado que la respuesta del servidor es la correcta? Debes ser más específico en la pregunta.

Última edición por prueba230683; 11/03/2020 a las 11:44
  #3 (permalink)  
Antiguo 12/03/2020, 06:27
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 835
Antigüedad: 12 años, 7 meses
Puntos: 7
Pregunta Respuesta: Direccionar segun el usuario

Hola Gracias por contestar, si redirecciona, lo que necesito hacer es que direccione según el estado del usuario .

user_estado = 1 , que valla a admin.php
user_estado = 2 , que valla a index.php

esa es la parte que no me sale .
no se si se hace desde PHP , donde compruebo los datos , o en el ajax después de

Código Javascript:
Ver original
  1. success:function(data){
  2.               $('#login').val("Login");
  3.               if (data=="1"){
  4.                 $(location).attr('href','../index.php');

Muchas gracias por responder.
Saludos Atte.
  #4 (permalink)  
Antiguo 12/03/2020, 06:54
 
Fecha de Ingreso: abril-2011
Mensajes: 66
Antigüedad: 9 años
Puntos: 19
Respuesta: Direccionar segun el usuario

Prueba:

Código Javascript:
Ver original
  1. $.ajax({
  2.  
  3.             url:"logueame.php",
  4.             method:"POST",
  5.             data:{user_mail:user_mail, user_pass:user_pass},
  6.             cache:"false",
  7.             beforeSend:function(){
  8.                 $('#login').val("Conectando.....");
  9.  
  10.             },
  11.  
  12.               success:function(data){
  13.               $('#login').val("Login");
  14.               if (data == "1"){
  15.                 location.href = "/admin.php";
  16.               }else if(data == "2"){
  17.                 location.href = "/index.php";
  18.               }else{
  19.                  $("#result").html("<div class='alert alert-dismissible alert-danger'><button type='button' class='close' data-dismiss='alert'>&times;</button><strong>Errror</strong> las credenciales son incorrectas.</div>");
  20.               }
  21.              
  22.               }
  23.       });

Debes hacer el siguiente cambio en el PHP:

Código PHP:
Ver original
  1. if ($num_row=="1"){
  2.  
  3.     $data=mysqli_fetch_array($result);
  4.      $_SESSION["user_mail"]= $data["user_mail"];
  5.      $_SESSION["user_name"]= $data["user_name"];
  6.      $_SESSION["user_estado"]= $data["user_estado"];
  7.      
  8.  
  9.      echo $data["user_estado"];
  10.  
  11.      
  12. }else{
  13.    echo"error";
  14. }


Última edición por prueba230683; 12/03/2020 a las 07:01
  #5 (permalink)  
Antiguo 12/03/2020, 07:41
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 835
Antigüedad: 12 años, 7 meses
Puntos: 7
Pregunta Respuesta: Direccionar segun el usuario

Hola.!!! Gracias por responder, si salio , para validar mas estados del usuario del lado de javascript inserto mas if con data, y del lado de php?

Muchas Gracias por tu tiempo, salio perfecto.

Saludos.!!
  #6 (permalink)  
Antiguo 12/03/2020, 08:09
 
Fecha de Ingreso: abril-2011
Mensajes: 66
Antigüedad: 9 años
Puntos: 19
Respuesta: Direccionar segun el usuario

Cita:
Iniciado por fedefrankk Ver Mensaje
para validar mas estados del usuario del lado de javascript inserto mas if con data
Exacto. Y si son muchos estados, en lugar de encadenar muchos if...else if...else if... puedes utilizar la sentencia switch.

En el lado de PHP no necesitas añadir nada, más bien sería cuestión de añadir nuevos usuarios a tu base de datos y asignarles distintos valores para el campo user_estado.

  #7 (permalink)  
Antiguo 12/03/2020, 08:59
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 835
Antigüedad: 12 años, 7 meses
Puntos: 7
De acuerdo Respuesta: Direccionar segun el usuario

Hola, Mucas gracias por la ingo.!!
se agradece.

Saludos Cordiales
Fede
  #8 (permalink)  
Antiguo 15/03/2020, 13:27
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 835
Antigüedad: 12 años, 7 meses
Puntos: 7
Pregunta Respuesta: Direccionar segun el usuario

Hola, disculpa que te pregunte nuevamente, tengo un problema que no he podido solucionar....

en ajax :
Código Javascript:
Ver original
  1. $('#ingre').click(function(){
  2.  
  3. var user_nombre = $('#user_nombre').val();
  4. var user_mail_nuevo = $('#user_mail_nuevo').val();
  5.  
  6.  
  7.  
  8. if ($.trim(user_nombre).length > 0 && $.trim(user_mail_nuevo).length > 0){
  9.   $.ajax({
  10.  
  11.         url:"nuevo_usuario.php",
  12.         method:"POST",
  13.         data:{user_nombre:user_nombre, user_mail_nuevo:user_mail_nuevo},
  14.         cache:"false",
  15.         beforeSend:function(){
  16.             $('#ingre').val("Ingresando.....");
  17.           //console.log (user_nombre);
  18.           // console.log (user_mail_nuevo);
  19.           // console.log ('FEDE');
  20.  
  21.         },
  22.  
  23.         success:function(datos){
  24.           $('#ingre').val("Ingreso");
  25.           if (datos == "1"){
  26.            // console.log (datos)
  27.             $("#result").html("<div class='alert alert-dismissible alert-danger'><button type='button' class='close' data-dismiss='alert'>&times;</button><strong>Errror</strong> Usuario exixtente.</div>");
  28.           }else if(datos == "2"){
  29.             //console.log (datos)
  30.            // location.href = "../index.php";
  31.           }else{
  32.             //console.log (datos)
  33.             $("#result").html("<div class='alert alert-dismissible alert-danger'><button type='button' class='close' data-dismiss='alert'>&times;</button><strong>Errror</strong> las credenciales son incorrectas.</div>");
  34.           }
  35.          
  36.           }
  37.   });
  38.  
  39. };

realmente es para ingresar un usuario nuevo pero no entra nunca al else de php ...
hice un codigo chiquito en php a ver si funciona y no hay caso... es como que php no manda la info a ajax...

no se que estoy haciendo mal.
PHP
Código PHP:
Ver original
  1. <?php
  2.  
  3. echo $user_mail_nuevo=$_POST['user_mail_nuevo'];
  4.  
  5. echo $user_nombre=$_POST['user_nombre'];
  6.  
  7.  
  8.  
  9. if ($user_mail_nuevo=="123"){
  10.  
  11.    echo $datos["1"];
  12.  
  13. }else{
  14.  
  15.    echo $daos="2";
  16.  
  17. }
  18.  
  19.  
  20.  
  21. ?>

lo hice de todas las maneras:

Código PHP:
Ver original
  1. echo $datos="1";
  2. echo $datos=="1";
  3. echo $datos =1;

no se me ocurre que puede estar pasando que no me muestra los else de ajax..

Gracias nuevamente por tu tiempo y el tiempo de los demás
saludos cordiales
fede
  #9 (permalink)  
Antiguo 15/03/2020, 15:21
 
Fecha de Ingreso: abril-2011
Mensajes: 66
Antigüedad: 9 años
Puntos: 19
Respuesta: Direccionar segun el usuario

Desde el PHP simplemente tienes que hacer un echo a lo que quieras que llegue como respuesta de la petición AJAX.

Código PHP:
Ver original
  1. <?php
  2.  
  3. echo $user_mail_nuevo=$_POST['user_mail_nuevo'];
  4.  
  5. echo $user_nombre=$_POST['user_nombre'];
  6.  
  7.  
  8.  
  9. if ($user_mail_nuevo=="123"){
  10.  
  11.    echo "1";
  12.  
  13. }else{
  14.  
  15.    echo "2";
  16.  
  17. }
  18.  
  19.  
  20. ?>

Ten en cuenta que en el código del cliente:

Código Javascript:
Ver original
  1. success:function(datos){
  2.           $('#ingre').val("Ingreso");
  3.           if (datos == "1"){
  4.            // console.log (datos)
  5.             $("#result").html("<div class='alert alert-dismissible alert-danger'><button type='button' class='close' data-dismiss='alert'>&times;</button><strong>Errror</strong> Usuario exixtente.</div>");
  6.           }else if(datos == "2"){
  7.             //console.log (datos)
  8.            // location.href = "../index.php";
  9.           }else{
  10.             //console.log (datos)
  11.             $("#result").html("<div class='alert alert-dismissible alert-danger'><button type='button' class='close' data-dismiss='alert'>&times;</button><strong>Errror</strong> las credenciales son incorrectas.</div>");
  12.           }
  13.          
  14. }

la variable datos almacenará la respuesta de la petición AJAX (que será "1", "2" o lo que hayas decidido enviar como respuesta mediante echo en tu PHP).

Última edición por prueba230683; 15/03/2020 a las 15:49
  #10 (permalink)  
Antiguo 16/03/2020, 13:06
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 835
Antigüedad: 12 años, 7 meses
Puntos: 7
Respuesta: Direccionar segun el usuario

Hola Muchas gracias por tu repuesta, ahora si me quedo claro y funcionando,
se agradece mucho tu ayuda.!!

Saludos Atte.
  #11 (permalink)  
Antiguo 17/03/2020, 00:37
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.602
Antigüedad: 18 años
Puntos: 1283
Respuesta: Direccionar segun el usuario

Hola:

Si la redirección está en código javascript, siempre se puede llegar manualmente editando la barra de direcciones del navegador, así que creo que el sistema no es muy seguro...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #12 (permalink)  
Antiguo 22/03/2020, 13:26
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 835
Antigüedad: 12 años, 7 meses
Puntos: 7
Pregunta Respuesta: Direccionar segun el usuario

Hola "caricatos", al no ser seguro el script de ajax, como lo hacen?, yo usualmente uso PHP, pero me cansa de hacer tantas hojas y cargar todo, me incline a ajax y vi un tutorial que por mas que aprietes F12 y cambies algo por consola no anda...
Pero me has dejado con duda.. como se puede hacer para mayor seguridad??

Muchas gracias
Saludos
Fede
  #13 (permalink)  
Antiguo 23/03/2020, 00:30
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.602
Antigüedad: 18 años
Puntos: 1283
Respuesta: Direccionar segun el usuario

Hola:

A la misma página que llegues para procesar los datos, puedes enviar el mismo formulario por post. y en vez de usar una letra como discriminante, pones un include php con la página que pretendías redireccionar:
switch ($resultado) {
case "admin":
include("admin.php");
break;
case "user":
include("user.php");
break;
default:
include("error.php";
}

O puedes poner un solo include:
include ($resultado.".php");

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo



La zona horaria es GMT -6. Ahora son las 10:43.