Foros del Web » Programando para Internet » PHP »

if en xhtml con usuario logueado o no logueados

Estas en el tema de if en xhtml con usuario logueado o no logueados en el foro de PHP en Foros del Web. hola chicos tengo una pregunta, en estos momento estoy haciendo un trabajito de la universidad y quería que cuando entran a la pagina si el ...
  #1 (permalink)  
Antiguo 05/12/2010, 10:49
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 7 años, 10 meses
Puntos: 28
if en xhtml con usuario logueado o no logueados

hola chicos tengo una pregunta,
en estos momento estoy haciendo un trabajito de la universidad y quería que cuando entran a la pagina si el usuario esta logueado muestre en un form el nombre de usuario que es, pero si no esta logueado que en el mismo form muestre para hacer logging...

Código HTML:
				<td>
<?php
session_start();
$usuario = $_SESSION["usuario"];
echo $usuario;
?>
				<form name="form1" method="post" action="log.php" id="form1">
					<p class="style5"><span>Inicio de Sesion - Usuario: <input name="username" type="text" id="username" /></span></p>
					<p class="style5"><span>Contraseña: <input name="password" type="password" id="password" /></span></p>
					<p class="style5"><span><input type="submit" name="Submit" value="Entrar" /></span></p>
				</form>
</td> 
  #2 (permalink)  
Antiguo 05/12/2010, 11:10
 
Fecha de Ingreso: diciembre-2010
Ubicación: valencia
Mensajes: 203
Antigüedad: 7 años, 4 meses
Puntos: 11
Respuesta: if en xhtml con usuario logueado o no logueados

Código PHP:
Ver original
  1. if (!isset($_SESSION)) { session_start(); }
  2. if (array_key_exists("logeado",$_SESSION))
  3. {
  4.  //aqui lo que quieres mostrar cuando esta logeado
  5. }
  6. else { //aqui cuando no esta logeado }
  #3 (permalink)  
Antiguo 06/12/2010, 10:17
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 7 años, 10 meses
Puntos: 28
Respuesta: if en xhtml con usuario logueado o no logueados

pero recuerda que este codigo va dentro de un archivo xhtml como iria entonces???
  #4 (permalink)  
Antiguo 06/12/2010, 13:12
 
Fecha de Ingreso: diciembre-2010
Ubicación: valencia
Mensajes: 203
Antigüedad: 7 años, 4 meses
Puntos: 11
Respuesta: if en xhtml con usuario logueado o no logueados

lo recuerdo perfectamente, php se interpreta en el servidor y es enviado a tu navegador ya formateado. tu eres quien tienes que ver que quieres poner en la condicion yo solo te digo el como.
  #5 (permalink)  
Antiguo 06/12/2010, 13:23
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 9 años, 8 meses
Puntos: 1531
Respuesta: if en xhtml con usuario logueado o no logueados

como te indica @enrique4480, necesitas un script de lado del servidor, puede ser PHP, ASP, JSP u otro, php no es el único.

XHTML es simplemente un lenguaje de marcado, carece de estructuras de control y al ser interpretado en el cliente no puede administrar la sesión.

para incluir por ejemplo un código de php en tu xhtml, debes de embebirlo, además de cambiar la extensión del archivo a *.php para que así el servidor web (apache por ejemplo) lo remita al interprete php para que lo procese:

Código PHP:
Ver original
  1. <html>
  2. ...
  3. <body>
  4.     <?php echo "este es un bloque que será procesado por php"; ?>
  5. </body>
  6. </html>
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #6 (permalink)  
Antiguo 06/12/2010, 19:15
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 7 años, 10 meses
Puntos: 28
Respuesta: if en xhtml con usuario logueado o no logueados

ok todo entendido, pero un ejemplo de lo que me pasa:

lo pongo asi:

Código PHP:
Ver original
  1. if (!isset($_SESSION)) { session_start(); }
  2.                 if (array_key_exists("logeado",$_SESSION))
  3.                 {
  4.                 $usuario = $_SESSION["usuario"];
  5.                 echo $usuario;
  6.                 }
  7.                 else {
  8.                 <form name="form2" method="post" action="log.php" id="form2">
  9.                     <p class="style5"><span>Inicio de Sesi&#243;n - Usuario: <input name="username" type="text" id="username" /></span></p>
  10.                     <p class="style5"><span>Contrase&#241;a: <input name="password" type="password" id="password" /></span></p>
  11.                     <p class="style5"><span><input type="submit" name="Submit" value="Entrar" /></span></p>
  12.                 </form>
  13.                 }
  14.                 ?>

y me manda este error:

Parse error: syntax error, unexpected '<' in C:\xampp\htdocs\index.php on line 58 tomando que en esas lineas esta:

56 }
57 else {
58 <form name="form2" method="post" action="log.php" id="form2">
59 <p class="style5"><span>Inicio de Sesión - Usuario: <input name="username" type="text" id="username" /></span></p>
  #7 (permalink)  
Antiguo 06/12/2010, 21:09
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 9 años, 8 meses
Puntos: 1531
Respuesta: if en xhtml con usuario logueado o no logueados

ocurre error de sintaxis porque estás rompiendo el bloque php con código html, debes de embeberlo (abriendo y cerrando los bloques php) o dumpearlo a la salida como un string con echo

forma 1: embebido
Código PHP:
Ver original
  1. <?php
  2.     if (!isset($_SESSION)) { session_start(); }
  3.     if (array_key_exists("logeado",$_SESSION))
  4.     {
  5.         $usuario = $_SESSION["usuario"];
  6.         echo $usuario;
  7.     }
  8.     else {
  9. ?>
  10.         <form name="form2" method="post" action="log.php" id="form2">
  11.             <p class="style5"><span>Inicio de Sesión - Usuario: <input name="username" type="text" id="username" /></span></p>
  12.             <p class="style5"><span>Contraseña: <input name="password" type="password" id="password" /></span></p>
  13.             <p class="style5"><span><input type="submit" name="Submit" value="Entrar" /></span></p>
  14.         </form>
  15. <?php
  16.     } //otro bloque solo para cerrar la llave
  17. ?>

forma 2: dumpeado

Código PHP:
Ver original
  1. <?php
  2.     if (!isset($_SESSION)) { session_start(); }
  3.     if (array_key_exists("logeado",$_SESSION))
  4.     {
  5.         $usuario = $_SESSION["usuario"];
  6.         echo $usuario;
  7.     }
  8.     else { //simplemente convierto mi html en una cadena (string), así php no la interpreta como código
  9.         echo '<form name="form2" method="post" action="log.php" id="form2">
  10.            <p class="style5"><span>Inicio de Sesión - Usuario: <input name="username" type="text" id="username" /></span></p>
  11.            <p class="style5"><span>Contraseña: <input name="password" type="password" id="password" /></span></p>
  12.            <p class="style5"><span><input type="submit" name="Submit" value="Entrar" /></span></p>
  13.        </form>';
  14.     }
  15. ?>
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #8 (permalink)  
Antiguo 06/12/2010, 21:33
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 7 años, 10 meses
Puntos: 28
Respuesta: if en xhtml con usuario logueado o no logueados

gracias por la ayuda
  #9 (permalink)  
Antiguo 06/12/2010, 21:49
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 7 años, 10 meses
Puntos: 28
Respuesta: if en xhtml con usuario logueado o no logueados

mmm que raro haora esto:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\index.php:52) in C:\xampp\htdocs\index.php on line 54

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\index.php:52) in C:\xampp\htdocs\index.php on line 54


intente usando el hex editor pero los errores persisten XD

Última edición por arcanisgk122; 06/12/2010 a las 21:57 Razón: aun no funka
  #10 (permalink)  
Antiguo 09/12/2010, 04:20
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 7 años, 10 meses
Puntos: 28
Respuesta: if en xhtml con usuario logueado o no logueados

not work XD
  #11 (permalink)  
Antiguo 09/12/2010, 08:02
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 9 años, 8 meses
Puntos: 1531
Respuesta: if en xhtml con usuario logueado o no logueados

se debe a que session_start(); modifica los headers HTTP y por lo tanto no puede ser llamado después de que se han volcado datos a la salida del script, es decir, que no puedes llamar a session_start(); antes de ningún echo ni de un bloque HTML.
Otro problema es que no puedes llamar a session_start(); más de 1 vez, puede deberse a consecuencia de los includes múltiples que realices.

como norma session_start(); debe de ser una de las primeras llamadas del script (exceptuando session_name() y header() )

para garantizar compatibilidad con respecto a hosting configurados para sesiones automáticas (opción poco probable y no recomendable), o en el caso de varias llamadas a session_start() por medio de includes, puedes colocar el @ para evitar el típico mensaje de warning, y tu script será completamente funcional:

@session_start(); // y así evito los warnings
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #12 (permalink)  
Antiguo 25/10/2011, 02:24
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 7 años, 10 meses
Puntos: 28
Pregunta Respuesta: if en xhtml con usuario logueado o no logueados

bueno retomando el tema estoy utilisando el siguiente codigo:


Código PHP:

<body>
<?php
    
if (!isset($_SESSION)) { session_start(); }
    if (
array_key_exists("logueado",$_SESSION)){
        
$usuario $_SESSION["usuario"];
        echo 
' ?> <div id="capa1" style="position: absolute; background-color: #00FF00; width: 100px; height: 50px; z-index: 1; top: 43px; left: 23px; text-align: center;"> <?php ';
        echo 
"$usuario <br>";
        echo 
"Estas Conectado";
           echo 
' ?> </div> <?php ';}
    else { 
//simplemente convierto mi html en una cadena (string), así php no la interpreta como código
        
echo ' ?> <div id="capa1" style="position: absolute; background-color: #00FF00; width: 100px; height: 50px; z-index: 1; top: 43px; left: 23px; text-align: center;"><p><a href="Sin_título_1.htm">Inicia tu sesion.</a></p></div> <?php ';}
?>
el inicio de sesion es este:


Código PHP:
<?
@session_start();
include(
"config/config.php");
mysql_connect ($dbhost$dbusername$dbuserpass);
mysql_select_db($dbname) or die('No se puede seleccionar la base de datos');
if (
$_POST['username']) {
    
$username $_POST['username'];
    
$password $_POST['password'];
    
$pass md5($_POST['password']);
    if (
$pass==NULL) {
        
header('refresh:10; url=/loggin.html');
        echo 
"<br> <br>";
        echo 
"La Contraseña no fue enviada<br>";
        echo 
"Si tiene algun problema en crear su cuenta por favor enviar un correo a [email][email protected][/email].<br>";
    }else{
        
$query mysql_query("SELECT username,password,GM FROM user WHERE username = '$username'") or die(mysql_error());
        
$data mysql_fetch_array($query);
        if(
$data['password'] != $pass) {
            
header('refresh:10; url=/loggin.html');
            echo 
"<br> <br>";
            echo 
"Login incorrecto,".$password." La contraseña utilisada es incorrecta.<br>";
            echo 
"Si ha olvidado la contraseña, por favor enviar un correo a [email][email protected][/email] <br>";
            echo 
"Informacion nesesaria:<br>";
            echo 
"Nombre Completo<br>";
            echo 
"Telefono<br>";
            echo 
"e-mail (el utilisado para crear la cuenta.)<br>";
        }else{
            if(
$data['GM'] != 1){
                echo 
"<br> <br>";
                echo 
"No eres un maestro de juego, nesesitas consultar al Staff, <br>";
                echo 
"o enviar un correo a [email][email protected][/email]";
            }else{
            
$query mysql_query("SELECT username,password,GM FROM user WHERE username = '$username'") or die(mysql_error());
            
$row mysql_fetch_array($query);
            
$_SESSION["s_username"] = $row['username'];
            
header('refresh:15; url=/index.html');
            echo 
" <br> <br> <br> <br> <br>";
            echo 
" Inicio de Sesion Correcto!! <br>";
            echo 
" Biembenido Maestro de Juego ".$username." !!";
            }
        }
    }
}
?>
</body>
en el momento que habro la pagina me aparece lo siguiente:
la direccion es la siguiente:
http://genesis1.zxq.net/index.html



muchas gracias y disculpen que aya respondido después de tanto tiempo.

Última edición por arcanisgk122; 25/10/2011 a las 02:31

Etiquetas: html, logueado, xhtml, usuarios
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 14:46.