Foros del Web » Programando para Internet » PHP »

Cambiar un div por otro

Estas en el tema de Cambiar un div por otro en el foro de PHP en Foros del Web. Muy buenas. Acabo de hacer el tipico formulario de registro de usuarios en mi pagina y queria hacer lo siguiente. Cuando un usuario se ha ...
  #1 (permalink)  
Antiguo 13/08/2008, 11:20
 
Fecha de Ingreso: octubre-2007
Mensajes: 9
Antigüedad: 16 años, 5 meses
Puntos: 0
Cambiar un div por otro

Muy buenas.

Acabo de hacer el tipico formulario de registro de usuarios en mi pagina y queria hacer lo siguiente.
Cuando un usuario se ha logueado en mi pagina, le redirijo a la pagina principal "index.php", donde como ahora esta logueado, lo que antes era el formulario para loguearte, ahora tendria que ser algo como "Bienvenido fulanito, url_desconectate".

Bien, la idea que se me ha ocurrido es la de comprobar si se ha logueado algun usuario y en caso de haberlo hecho cambiar el div donde se situa el formulario de logueo, por el texto de bienvenida.

El codigo que estoy utilizando hasta el momento es el siguiente.

Código HTML:
<script type="text/javascript">
function changeLogin(){
    if (document.getElementById('usuarios').value=='TRUE') {
    var content = '<p align="center">&iexcl;Bienvenido <?php echo $row_Usuarios['Usuario']; ?>!<br/><a href="<?php echo $logoutAction ?>">logout</a></p>'; 
    document.getElementById('usuarios').innerHTML = content;
}
</script>

<body onload="changeLogin()">

<div id="usuarios" value="<?php isset($loginUsername); ?>" >
<form ACTION="<?php echo $loginFormAction; ?>" id="login" name="login" method="POST">
    <label>Usuario<input name="User" type="text" id="User" maxlength="8" /></label><br />
    <label>Contraseña<input name="Password" type="password" id="Password" maxlength="8" /></label><br />
    <a href="registro.php" target="contenedor" onClick="window.parent.scroll(0,300)">Registrarse</a>
<input type="submit" name="Send" id="Send" value="Enviar" />       
</form>
</div> 
De tal modo que al div que quiero cambiar le asigno el id "usuarios" y le doy el valor que devuelve isset, siendo TRUE en caso de haberse conectado alguien.

En el script compruebo si el id "usuarios" vale TRUE y en caso de hacerlo, cambio el codigo con innerHTML (esto es lo que no estoy seguro de si esta bien).

Por ultimo, cada vez que alguien se desconecta le vuelvo a redirigir index.php, que al ejecutarse la funcion al cargar la pagina, comprobara que no hay nadie conectado y mostrar el formulario de logueo.


¿Alguna idea de porque no puede funcionar?, ¿otras posibilidades para hacer lo mismo de otro modo?
  #2 (permalink)  
Antiguo 13/08/2008, 11:30
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Cambiar un div por otro

Creo que en este caso lo mejor es usar directamente PHP para devolver un contenido u otro, ya que usando Javascript como siempre habrá un problema de Accesibilidad.

Es fácil, solo en vez de colocar el FORM directamente crealo con echo y con un if si alguien está logueado envias el otro contenido.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 13/08/2008, 11:45
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Cambiar un div por otro

Hola, como te dice David, es mejor se uses php. Yo vengo de asp pero para el caso es lo mismo.

+ En un include, montas ambas opciones (formulario y datos del usuario). Con una condicional que verifique si se creo la sesión. Si se creo muestra los datos del usuario, sino el formulario. Este include has de incluirlo en todas las páginas.

+ En la página que recibe los datos del form creas una session

session("usuario") = los recibido del ataque a la bd

te redirecciona a la página index.php. Si todo fue bien la condicional del include mostrará los datos del usuario.

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #4 (permalink)  
Antiguo 13/08/2008, 12:06
 
Fecha de Ingreso: octubre-2007
Mensajes: 9
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Cambiar un div por otro

Muy buenas, gracias por la respuesta tan rapida.
Estoy probando lo que me comentas, pero se vuelve loco con los codigos php que tengo dentro del formulario.

Esto es lo que he hecho, espero haberte entendido bien:

Código PHP:
<?php 
                
if (!isset($loginUsername)) {
                 echo 
'<form ACTION="<?php echo $loginFormAction; ?>" id="login" name="login" method="POST">';
                 echo 
'<label>Usuario<input name="User" type="text" id="User" maxlength="8" /></label><br />';
                 echo 
'<label>Contraseña<input name="Password" type="password" id="Password" maxlength="8" /></label><br />';
                 echo 
'<a href="registro.php" target="contenedor" onClick="window.parent.scroll(0,300)">Registrarse</a>';
                 echo 
'<input type="submit" name="Send" id="Send" value="Enviar" /> ';
                 echo 
'</form>';
                }
                else {
                 echo 
'<p align="center">&iexcl;Bienvenido !<br/>';
                 echo 
'<a href="<?php echo $logoutAction ?>">logout</a></p>';
                }
?>
Cargar la pagina la carga perfectamente, pero el problema viene cuando me logueo, que al intentar cargar la pagina index.php, en la linea de direcciones me aparece... "localhost/%3C?php%20echo%20$loginFormAction;%20?>"
Como ves esta metiendo el codigo php de la accion del formulario de por medio.

Surge el mismo problema en el otro caso con el codigo de logout.
  #5 (permalink)  
Antiguo 13/08/2008, 12:12
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: Cambiar un div por otro

Hola maqjav

En el foro de PHP podrán orientarte mejor.

Mensaje movido al foro de PHP desde Javascript.

Saludos,
  #6 (permalink)  
Antiguo 13/08/2008, 12:32
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Cambiar un div por otro

de hecho no es necesario que muestres todo con echo puedes hacer lo siguiente


<body>

<?php if (!isset($loginUsername)) { ?>

<div id="usuarios" value="<?php isset($loginUsername); ?>" >
<form ACTION="<?php echo $loginFormAction; ?>" id="login" name="login" method="POST">
<label>Usuario<input name="User" type="text" id="User" maxlength="8" /></label><br />
<label>Contraseña<input name="Password" type="password" id="Password" maxlength="8" /></label><br />
<a href="registro.php" target="contenedor" onClick="window.parent.scroll(0,300)">Registrarse</a>
<input type="submit" name="Send" id="Send" value="Enviar" />
</form>
</div>

<?php } else { ?>

<div> Bienvenido XXXXXXXXXXXXXXXXXXXXXX </div>

<?php } ?>


------------------------------------------------------------------------------------------------------------------------------------------

La razon por la que te parecen esos simbolos es pq tratas de meter codigo PHP desntro de lo que ya es PHP

echo '<form ACTION="<?php echo $loginFormAction; ?>" id="login" name="login" method="POST">';

la linea quedaria algo asi

echo '<form ACTION="'.$loginFormAction.'" id="login" name="login" method="POST">';

Última edición por Avatar810; 13/08/2008 a las 12:35 Razón: Complementando
  #7 (permalink)  
Antiguo 13/08/2008, 12:46
 
Fecha de Ingreso: octubre-2007
Mensajes: 9
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Cambiar un div por otro

Hay que ver lo que sabeis.

Ha funcionado perfectamente tal cual has dicho Avatar810:

Código PHP:
<?php if (isset($_SESSION['MM_Username'])) { ?>
<p align="center">&iexcl;Bienvenido <?php echo $row_Usuarios['Usuario']; ?>!<br/> 
<a href="<?php echo $logoutAction ?>">desconectar</a></p>
<?php 
else { 
?>
<form ACTION="<?php echo $loginFormAction?>" id="login" name="login" method="POST">
<label>Usuario<input name="User" type="text" id="User" maxlength="8" /></label><br />
<label>Contraseña<input name="Password" type="password" id="Password" maxlength="8" /></label><br /> 
<a href="registro.php" target="contenedor" onclick="window.parent.scroll(0,300)">Registrarse</a>
<input type="submit" name="Send" id="Send" value="Enviar" />
</form>
<?php ?>
Una gran idea lo de hacerlo directamente con PHP.

Muchas gracias a todos por vuestra ayuda, parece que no, pero este modo de programar con PHP me va a permitir hacer muchas cosas que tenia mis dudas de como hacerlas.
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 07:04.