Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/01/2011, 11:45
pixma_uy
 
Fecha de Ingreso: enero-2011
Ubicación: Montevideo
Mensajes: 31
Antigüedad: 13 años, 3 meses
Puntos: 1
Problema con sistema de logueo usando AJAX+json+mysql+php

Estimados

Tengo una página donde es necesario iniciar sesión, quiero hacer que el usuario y la contraseña se validen cuando le doy al SUBMIT, el tema es que la contraseña aparece vacio.
Tengo un form que es donde lleno todos los datos - indexOk.php + el código de ajax + la función que me procesa la conexión con la base y me devuelve el dato a ajax.

el tema es que si desde el form accedo a procesaLogin.php todo me funciona bien, nose por que dsde ajax no.

Acá esta el form del indexOk.php

Código PHP:
<form "name="login" method="post" action="procesaLogin.php">
      <dl>
    <dt>Usuario:</dt>
    <dd>
          <input class="
inputTextLogin" name="usuario" id="usuario1" size="14" type="text"/>
              <input name="
ipForm" value="" type="hidden" />
              <input name="
nombreUsuario" id="nombreUsuario" value="" type="hidden" />
              <input name="
apellidoUsuario" id="apellidoUsuario" value="" type="hidden" />
        </dd>
    <dd>
              <input class="
inputTextLogin" name="password" id="password1" size="14" type="password">
            
              <input name="
areaUsuario"  id="areaUsuario" value="" type="hidden" />
              <input name="
internoUsuario" id="internoUsuario" value="" type="hidden" />
              <input name="
idUsuario" id="idUsuario" value="" type="hidden" />
              <input name="
cargoUsuario" id="cargoUsuario" value="" type="hidden" />
              <div id="
errorLogin"></div>
        </dd>
        <dd><input class="
inputButton" id="enviaForm" value="Entrar" type="submit" ></dd>
      </dl>
</form> 
******************

Acá esta el AJAX

Código:
$(document).ready(function(){

	var pass3 = $("#password1").attr('value'); 
	var usuario3 = $("#usuario1").attr('value');
	alert ("usuario: " + usuario3 +" - pass: "+ pass3);//esto lo puse para corroborar que no me llega el pass
	
	
	$("#enviaForm").click(function(){ 
			$.ajax({
				async: true,
				data: "user="+ usuario3 + "&pass="+ pass3,
				type: "POST",
				//contentType: "application/x-www-form-urlencoded",
				dataType: "json",
				cache: false,
				url: "procesaLogin.php",
				success: function(data) { 
				alert ("usuario: " + usuario3 +" - pass: "+ pass3);
						alert("entre en success ajax!! -> " + data.idError+ " " + data.nombreUser+ " ....pass:" + data.apellidoUser);
						if(data.idError==0){
							okLogin(data);
						}else {	errorLogin(data);}
							
							},
				error: function(data) {
						alert ("usuarioerr: " + usuario3 +" - passerr: "+ pass3);
						 alert("entre en error ajax!! -> " + data.idError+ " " + data.nombreUser+ " ....pass:" + data.apellidoUser);
						 errorLogin(data);}
			});	
		return false;
	});
	 
});

function errorLogin(data){

alert("estoy por entrar en errorLogin" + usuario3 + " " + pass3);
	$("#errorLogin").show();
	$("#errorLogin").append("Error: "+ data.error);
	
}


function okLogin(data){

alert("estoy por entrar en okLogin");
	$("#nombreUsuario").append(data.nombreUser);
	$("#apellidoUsuario").append(data.apellidoUser);
		
}
*************************

Acá esta la función procesaLogin.php

Código PHP:
<?php

$user_var 
$_POST['usuar'];
$pass_var $_POST['passw'];



$con mysql_connect("localhost","xxx","xxx");
if (!
$con)
{
    die(
'No se puedo realizar la conexion: ' mysql_error());
}

mysql_select_db("xBDx"$con);


$result mysql_query("SELECT * FROM usuario WHERE user='".$user_var."' and pass='".$pass_var."'");

if(!
$result){
        
$jsondata['error']= "Datos erroneos";
        
$jsondata['idError']=1;
        
$jsondata['nombreUser'] = $user_var "PHP";//Acá muestro los datos solo para corroborar
        
$jsondata['apellidoUser'] = $pass_var "PHP";// mientras no me funciona

}
else {

    
$row mysql_fetch_array($result);

    
$jsondata['nombreUser'] = $row['nombre'];
    
$jsondata['apellidoUser'] = $row['apellido'];
    
$jsondata['areaUser'] = $row['area'];
    
$jsondata['internoUser'] = $row['interno'];
    
$jsondata['idUser'] = $row['idUsuario'];
    
$jsondata['cargoUser'] = $row['cargo'];
    
$jsondata['error'] = "Datos OK";
    
$jsondata['idError'] = 0;
    }

    echo 
json_encode($jsondata);
    
mysql_close($con);



?>
Agradezco la ayuda que me puedan dar en esto, he estado un par de días, si bien lo puedo hacer de otra forma sin usar ajax, ahora estoy como guri chico... quiero que funcione si o si... je

Saludos