Retroceder   Foros del Web > Programación para sitios web > PHP

Respuesta
 
Herramientas Desplegado
Antiguo 13-ago-2008, 12:20   #1 (permalink)
maqjav ha deshabilitado el karma
 
Fecha de Ingreso: octubre-2007
Mensajes: 7
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?
maqjav está desconectado   Responder Citando
Antiguo 13-ago-2008, 12:30   #2 (permalink)
Colaborador
David el Grande llegará a ser famoso muy prontoDavid el Grande llegará a ser famoso muy prontoDavid el Grande llegará a ser famoso muy prontoDavid el Grande llegará a ser famoso muy prontoDavid el Grande llegará a ser famoso muy pronto
 
Avatar de David el Grande
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 7.170
Idea 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.
__________________
"En la vida muchas veces tenemos que ser aprendices, y muchas veces maestros"
P.S.: Pregunta siempre en el foro correcto.
David el Grande está desconectado   Responder Citando
Antiguo 13-ago-2008, 12:45   #3 (permalink)
Adler está en el buen camino
 
Avatar de Adler
 
Fecha de Ingreso: diciembre-2006
Mensajes: 706
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
__________________
Nunca has tenido un sábado sangriento??
Adler está desconectado   Responder Citando
Antiguo 13-ago-2008, 13:06   #4 (permalink)
maqjav ha deshabilitado el karma
 
Fecha de Ingreso: octubre-2007
Mensajes: 7
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.
maqjav está desconectado   Responder Citando
Antiguo 13-ago-2008, 13:12   #5 (permalink)
Moderata
JavierB es realmente agradableJavierB es realmente agradableJavierB es realmente agradableJavierB es realmente agradableJavierB es realmente agradableJavierB es realmente agradable
 
Avatar de JavierB
 
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 20.341
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,
__________________
Lee las Políticas de los foros y escribe correctamente.
JavierB está desconectado   Responder Citando
Antiguo 13-ago-2008, 13:32   #6 (permalink)
Avatar810 está en el buen camino
 
Avatar de Avatar810
 
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 175
Idea 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-ago-2008 a las 13:35. Razón: Complementando
Avatar810 está desconectado   Responder Citando
Antiguo 13-ago-2008, 13:46   #7 (permalink)
maqjav ha deshabilitado el karma
 
Fecha de Ingreso: octubre-2007
Mensajes: 7
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.
maqjav está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 10:29.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96