Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Login PHP - AJAX

Estas en el tema de Login PHP - AJAX en el foro de PHP en Foros del Web. estimados, buenos dias, una consulta, foreando por la web me tope con un archivo para un login, estaba en Mysql pero lo adapte para SQL(que ...
  #1 (permalink)  
Antiguo 13/05/2013, 09:17
 
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 301
Antigüedad: 11 años, 2 meses
Puntos: 5
Información Login PHP - AJAX

estimados, buenos dias, una consulta, foreando por la web me tope con un archivo para un login, estaba en Mysql pero lo adapte para SQL(que es el manejador de BD con el que trabajo) sin embargo, cuando trato de autenticar el user y el pwd, me muestra error, les comparto el codigo (solo de donde modifique las conexiones) esperando me puedan indicar si es que hay algun error o no.
Código PHP:
Ver original
  1. <?php
  2.     session_start();
  3.     $user = $_POST['login_username'];
  4.     $pwd = $_POST['login_userpass'];
  5.    
  6.     if ( !isset($_SESSION['username']) && !isset($_SESSION['userid']) ){
  7.         if ( $idcnx = mssql_connect('E-LCCC3-7284\SQL2','sa','atent0') ){
  8.             if ( mssql_select_db('Base_Fija',$idcnx) ){
  9.            
  10.                 $sql = 'SELECT USER,PASSWD,ID FROM T_LOGIN WHERE USER = "'.$_POST['login_username'].'" AND PASSWD = "'.($_POST['login_userpass']).'"';
  11.                
  12.                 if ( $res = mssql_query($sql) ){
  13.                     if ( mssql_num_rows($res) == 1 ){
  14.                    
  15.                         $user = mssql_fetch_array($res);
  16.                        
  17.                         $_SESSION['username'] = $user['user'];
  18.                         $_SESSION['userid'] = $user['id'];
  19.                         echo 1;
  20.                     }
  21.                     else
  22.                         echo 0;
  23.                 }
  24.                 else
  25.                     echo 0;
  26.             }
  27.             mssql_close($idcnx);
  28.         }
  29.         else
  30.             echo 0;
  31.     }
  32.     else{
  33.         echo 0;
  34.     }
  35. ?>
  #2 (permalink)  
Antiguo 13/05/2013, 10:04
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Login PHP - AJAX

cuando trato de autenticar el user y el pwd, me muestra error se puede saber cuál?
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 13/05/2013, 10:14
 
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 301
Antigüedad: 11 años, 2 meses
Puntos: 5
Respuesta: Login PHP - AJAX

claro, se muestra el cero(0) mas no el 1 que deberia ser el correcto....el cual a su vez valida este js:
Código Javascript:
Ver original
  1. /**=============================================================================
  2.  *
  3.  *  Filename:  function.ajax.js
  4.  * 
  5.  *  (c)Autor: Arkos Noem Arenom
  6.  * 
  7.  *  Description: Ajax para hacer las consultas
  8.  * 
  9.  *  Licence: GPL|LGPL
  10.  * 
  11.  *===========================================================================**/
  12.  
  13. $(document).ready(function(){
  14.    
  15.     var timeSlide = 1000;
  16.     $('#login_username').focus();
  17.     $('#timer').hide(0);
  18.     $('#timer').css('display','none');
  19.     $('#login_userbttn').click(function(){
  20.         $('#timer').fadeIn(300);
  21.         $('.box-info, .box-success, .box-alert, .box-error').slideUp(timeSlide);
  22.         setTimeout(function(){
  23.             if ( $('#login_username').val() != "" && $('#login_userpass').val() != "" ){
  24.                
  25.                 $.ajax({
  26.                     type: 'POST',
  27.                     url: 'log.inout.ajax.php',
  28.                     data: 'login_username=' + $('#login_username').val() + '&login_userpass=' + $('#login_userpass').val(),
  29.                     success:function(msj){
  30.                         if ( msj == 1 ){
  31.                             $('#alertBoxes').html('<div class="box-success"></div>');
  32.                             $('.box-success').hide(0).html('Validando Datos....Espere…');
  33.                             $('.box-success').slideDown(timeSlide);
  34.                             setTimeout(function(){
  35.                                 window.location.href = "../../Main2/Index.php";
  36.                             },(timeSlide + 500));
  37.                         }
  38.                         else{
  39.                             $('#alertBoxes').html('<div class="box-error"></div>');
  40.                             $('.box-error').hide(0).html('Lo sentimos, pero los datos son incorrectos: ' + msj);
  41.                             $('.box-error').slideDown(timeSlide);
  42.                         }
  43.                         $('#timer').fadeOut(300);
  44.                     },
  45.                     error:function(){
  46.                         $('#timer').fadeOut(300);
  47.                         $('#alertBoxes').html('<div class="box-error"></div>');
  48.                         $('.box-error').hide(0).html('Ha ocurrido un error durante la ejecución');
  49.                         $('.box-error').slideDown(timeSlide);
  50.                     }
  51.                 });
  52.                
  53.             }
  54.             else{
  55.                 $('#alertBoxes').html('<div class="box-error"></div>');
  56.                 $('.box-error').hide(0).html('Los campos estan vacios');
  57.                 $('.box-error').slideDown(timeSlide);
  58.                 $('#timer').fadeOut(300);
  59.             }
  60.         },timeSlide);
  61.        
  62.         return false;
  63.        
  64.     });
  65.    
  66.     $('#sessionKiller').click(function(){
  67.         $('#timer').fadeIn(300);
  68.         $('#alertBoxes').html('<div class="box-success"></div>');
  69.         $('.box-success').hide(0).html('Espera un momento…');
  70.         $('.box-success').slideDown(timeSlide);
  71.         setTimeout(function(){
  72.             window.location.href = "logout.php";
  73.         },2500);
  74.     });
  75.    
  76. });
  #4 (permalink)  
Antiguo 13/05/2013, 12:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Login PHP - AJAX

Pues lo mejor es que tengas varios estados para regresar el valor, ya que tu script PHP te regresa 0 por casi todas las causas y para que sepas cual es, es complicado, regresa diferentes números y debugea tu llamada AJAX usando el Firebug o el WebDeveloper Console.

Saludos.
  #5 (permalink)  
Antiguo 13/05/2013, 13:08
 
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 301
Antigüedad: 11 años, 2 meses
Puntos: 5
Respuesta: Login PHP - AJAX

gracias por la respuesta GatorV, sin embargo, esas modificaciones que indicas las tengo que realizar en ambos archivos, verdad...? o me equivoco...?
  #6 (permalink)  
Antiguo 13/05/2013, 14:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Login PHP - AJAX

Así es, tienes que ver la causa exacta de porque te marca error, y aparte hacer debug de tu llamada AJAX para que sepas porque te regresa 0.

Saludos.
  #7 (permalink)  
Antiguo 13/05/2013, 14:16
 
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 301
Antigüedad: 11 años, 2 meses
Puntos: 5
Respuesta: Login PHP - AJAX

acabo de realizar lo que me indicaste, y encontre que el problema esta en esta linea de codigo:
Código PHP:
Ver original
  1. if ( $res = mssql_query($sql) ){
  2.                     if ( mssql_num_rows($res) == 1 ){
  3.                    
  4.                         $user = mssql_fetch_array($res);
  5.                         $_SESSION['username'] = $user['user'];
  6.                         $_SESSION['userid'] = $user['id'];
  7.                         echo 1;
  8.                     }else
  9.                         echo 0;
  10.                 }

ya que no esta leyendo los valores para 1, sino que se redirecciona directo al 0.
podrias orientarme para ver que se puede hacer....?
gracias
  #8 (permalink)  
Antiguo 13/05/2013, 15:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Login PHP - AJAX

Pues verifica que tu consulta SQL este bien formada, es probable que tengas un error y por eso mssql_num_rows te regresa 0.

Saludos.
  #9 (permalink)  
Antiguo 13/05/2013, 15:19
 
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 301
Antigüedad: 11 años, 2 meses
Puntos: 5
Respuesta: Login PHP - AJAX

GatorV, efectivamente, omiti esa parte, efectivamente el problema era la consulta de SQL.....
gracias por tu apoyo.....

Etiquetas: ajax, login, mysql, select, sql
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 11:43.