Veréis, tengo un problema que me está dando bastantes dolores de cabeza. Estoy haciendo una página con una entrada de usuarios hecha en Ajax, para que cuando entra un usuario registrado no se tenga que recargar toda la página.
El caso es que me funciona perfectamente en IE, pero no así en Firefox. El error es que todo lo que va dentro de las etiquetas <form></form> no se visualiza en Firefox.
Os dejo aquí el código a ver si me podéis ayudar.
login.php:
Código:
<?php
session_start();
include ("lang/idioma.es.php");
?>
<table id="login" align="center">
<?php
if (!isset($_SESSION["user"]))
{
?>
<tr><td id="errorlogin" class="errorlogin" colspan="2"></td></tr>
<form method="post" name="formlogin">
<tr>
<td class="impacto"><?php echo USUARIO ?>: </td>
<td><input type="text" name="usuario"></td>
</tr>
<tr>
<td class="impacto"><?php echo CONTRASENA ?>: </td>
<td><input type="password" name="password" onFocus="this.select()"></td>
</tr>
<tr>
<td colspan="2" align="center"><br><input type="button" value="Entrar" onClick="comprobarLogin()"></td>
</tr>
</form>
<tr>
<td colspan="2" align="center" class="registrado">
<br>
<?php echo SINREGISTRO ?>
<a href="registrate.php"><?php echo HAZLOAQUI ?></a>
</td>
</tr>
<tr>
<td colspan="2" align="center" class="registrado">
<br>
<a href="olvido.php"><?php echo OLVIDOCONTR ?></a>
</td>
</tr>
<?php
} else { // La parte a continuación es la que aparece cuando el usuario ya ha iniciado sesión en el sistema.
?>
<tr>
<td align="center" class="impacto"><?php echo BIENVENIDO . ", " . htmlentities($_SESSION["username"]) ?>!</td>
</tr>
<tr>
<td align="center" class="registrado">
<br><a href="avanzadas.php"><?php echo OPCAVANZADAS ?></a>
</td>
</tr>
<tr>
<td align="center"><br><input type="button" value="<?php echo CERRARSES ?>" onClick="cerrarSesion()"></td>
</tr>
<?php
}
?>
</table>
y las funciones ajax son:
Código:
function nuevoAjax()
{
/* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
lo que se puede copiar tal como esta aqui */
var xmlhttp=false;
try
{
// Creacion del objeto AJAX para navegadores no IE
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
// Creacion del objet AJAX para IE
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(E) { xmlhttp=false; }
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp=new XMLHttpRequest(); }
return xmlhttp;
}
function cargarLogin()
{
var contenedor;
contenedor = document.getElementById('divlogin');
var ajax = nuevoAjax();
ajax.open("GET","login.php",true);
ajax.onreadystatechange = function() {
if (ajax.readyState == 4) {
contenedor.innerHTML = ajax.responseText
}
}
ajax.send(null)
}
Para hacer que aparezca la ventana de login, en la página principal simplemente hay una llamada:
<script language="javascript">cargarLogin();</script>
al terminar la página, justo antes de las etiquetas </body></html>.
Repito que el problema es que en Firefox no se visualiza el código que hay entre las etiquetas <form> y </form>, es decir, los cuadros de texto y el botón de envío. Por favor, a ver si alguien puede ayudarme. Muchas gracias.