hola manes ajax es fantastico, estoy aprendiendo y bueno estoy haciendo un sistema implementado ajax, del lado del server utilizo php y me conecto con postgres. Tengo una duda , no se si lo que hago esta bien , voy a postear mi codigo y uds. me dicen, es la parte del Login:
el formulario del login llama a la funtion autentica pasandole el login y pass, despues este llama a proc_login , veanlo uds mismos....
codigo javascript
:
Código:
function crear(){
var obj = false;
if (window.XMLHttpRequest)
{
// Si es Mozilla, Safari etc
try{ obj = new XMLHttpRequest ();}
catch(er){}
}
// pero si es IE
else if (window.ActiveXObject)
{
try
{obj = new ActiveXObject ("Msxml2.XMLHTTP");}
catch (e)
{
try
{ obj = new ActiveXObject ("Microsoft.XMLHTTP"); /* en caso que sea una versión antigua */}
catch(e){obj = false;}
}
}
if (obj) return obj;
else alert("no se pudo crear el objeto");
}
function cargar_pag(url,id_contenedor,metodo,valores){
var t=crear();
var capaContenedora = document.getElementById(id_contenedor);
t.open(metodo,url,true);
t.onreadystatechange = function ()
{
if (t.readyState==1) {
document.getElementById('cargador').style.visibility="visible";
capaContenedora.innerHTML=" <img src='images/progress.gif'> Cargando.......";
}
else if (t.readyState==4)
{
if(t.status==200) { capaContenedora.innerHTML=t.responseText;}
else if(t.status==404){ capaContenedora.innerHTML = "La direccion no existe";}
else { capaContenedora.innerHTML = "Error: "+t.status; }
}
}
if(metodo.toUpperCase()=='POST') {
t.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
t.send(valores);
}
else if(metodo.toUpperCase()=='GET')
{
t.send (null);
}
}
function autentica(user,pass){
if(user!=''&&pass!=''){
url = "procesos/login.php?usuario="+user+"&password="+pass;
proc_login(url);
}
else alert("LLENE LOS CAMPOS PORFAVOR");
}
function proc_login(url){
var najax=crear();
najax.open("GET",url);
najax.onreadystatechange = function (){
if((najax.readyState==4)&&(najax.status==200)){
if(najax.responseText=="1") {
alert("Bienvenido Usuario");
cargar_pag('contenidos/menuadm.php','menubar','GET','');
}
else if(najax.responseText=="2") {
alert("Bienvenido Empleado o Administrador");
cargar_pag('contenidos/menuadm.php','menubar','GET','');
}
else if(najax.responseText=="3"){
alert("mal");
$('login_error_msg').innerHTML="<font color='red'>LOGIN O CLAVE INCORRECTOS</font>";
}
else{
document.getElementById('contenedor').innerHTML ="aqui la respuesta"+najax.responseText;
}
}
}
najax.send(null);
}
el codigo php es este para el login.php es algo asi
Código PHP:
//recibe login y password se conecta a la base de datos
//verifica si existe la cuenta , si es si
//entonces
//sesiono la cuenta y envio respuesta
$_SESSION['algo']=$idusuario
print "1" //"ESTO LE ENVIO AL CLIENTE
//si no existe entonces
print "3" //"ESTO LE ENVIO AL CLIENTE
//si sucede algun error envio un mensaje y se carga en contenedor
ahora esta bien hacerlo asi? no puedo mostrar directamente mensajes en php con javascript? y una ultima cosa en esta parte
cargar_pag('contenidos/menuadm.php','menubar','GET',''); cargo otro menu dependiedo de quien se logeo , en el archivo menuadm.php, exiten 3 bloques de menus , estan controlados con sesiones y dependiendo de quien se logea se carga uno de esos menus.
Existe algun riesgo en mi carga de menus?
agradeceria sus comentarios,recomendaciones, y respuestas lo mas antes posible. Si tienen alguna duda diganmela pa k explique de nuevo :P