Hola, tengo un problema y no llego a encontrar la solución... A ver si me podeis echar un cable.
Estoy estableciendo un sistema de autentificación de usuarios en una web, lo típico, hacer una consulta a la base de datos y validarla si coincide usuario y contraseña. Además de eso a la vez que un usuario se conecta mediante AJAX quiero que me cambie un valor almacenado en una tabla en la BD que establezca simplemente un 1 en estado. Pues bien, esto nunca sucede...
Lo primero no hay problema, se conecta perfectamente, el problema viene cuando hago la llamada correspondiente a la función en javascript de AJAX. Os pongo código, a ver si me sabeis echar un cable y me sabeis decir.
Código PHP:
[...]
$consulta="Select count(usuario) as existe from autor where autor.usuario='".$_POST['nombre']."' and autor.pass='".md5($_POST['password'])."';";
$bd=new AgenteBD("localhost", "root", "", "blog");
$bd->Connect();
$resultado=$bd->Consulta($consulta);
$row = mysql_fetch_array($resultado);
if($row['existe']==1)
{
$log=$_POST['nombre'];
$estado=1;
$_SESSION['autor']=$log;
$_SESSION['usuariolog']=$log;
echo $log;
echo $estado;
echo" <script lenguage=\"text/javascript\">";
echo "conectarUsuario('$log', '$estado')";
echo "</script>";
}
La llamada a conectarUsuario la tengo en un fichero llamado Ajax.js (que incluí en la cabecera del index) y el código es el siguiente:
Código Javascript
:
Ver originalfunction conectarUsuario(nombre, stat) {
//Si es firefox, chrome o similares
if(window.XMLHttpRequest) {
//Creamos una peticion para estos navegadores
peticion_http = new XMLHttpRequest();
}
//Si utilizamos Internet Explorer
else if(window.ActiveXObject) {
//Creamos la peticion para este navegador
peticion_http = new ActiveXObject("Microsoft.XMLHTTP");
}
// Preparar la funcion de respuesta, es decir, cuando realizamos una peticion, el objeto peticion_http, se queda
peticion_http.onreadystatechange = muestraContenido;
// Realizar peticion HTTP, especificamos mediante la funcion open, el metodo de transferencia de datos. GET
//o POST, y la direccion a la que realizamos la peticion.
peticion_http.open('GET', 'http://localhost/blog/public/serviciosAjax/actualizarEstado.php?usuario='+nombre+'&estado='+stat, true);
//Decimosque no queremos hacer nada mas
peticion_http.send(null);
Y finalmente el actualizarEstado.php:
Código PHP:
<?php
include_once("AgenteBD.php");
session_start();
$bd=new AgenteBD("localhost", "root", "", "blog");
$bd->Connect();
$consulta="Update estado set estado='".$_GET['estado']."' where codigoAutor='".$_GET['usuario']."'";
$bd->Consulta($consulta);
?>
A ver si me solucionais el problemilla con estas dos llamadas a conectarUsuario y actualizarEstado.
Edito: para aclarar, el problema viene que hace caso omiso de esas dos llamadas parece ser o que tengo algo mal en ellas que hace que no se ejecuten...
Gracias.