Foros del Web » Creando para Internet » HTML »

Xhtml+php problema para mostrar seciones

Estas en el tema de Xhtml+php problema para mostrar seciones en el foro de HTML en Foros del Web. buenas noches Tengo un problema quiero presentare a los usuarios de la pagina que han iniciado sesión algo que les confirmen que lo han hecho. ...
  #1 (permalink)  
Antiguo 25/10/2011, 15:35
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
Pregunta Xhtml+php problema para mostrar seciones

buenas noches Tengo un problema quiero presentare a los usuarios de la pagina que han iniciado sesión algo que les confirmen que lo han hecho.


utilizo este código:


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 les agradezco toda su colaboración.
  #2 (permalink)  
Antiguo 25/10/2011, 17:15
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Xhtml+php problema para mostrar seciones

Bueno, ver como trabaja tu aplicación, requeriria ver si esta todo correcto, te dejo una pequeña guia de como hacerlo, despues tendrias que adaptarlo

Para trabajar con sesiones, primero te conviene entender bien como trabajan
tedejo el codigo de tres archivos

sesion.php (es el inicio o página de acceso)

Código PHP:
Ver original
  1. <?php
  2. session_name('MI_SESION');
  3. if(isset($_SESSION['logueado'])){
  4. if($_SESSION['logueado'] == "si"){
  5. echo "conectado como <b>" . $_SESSION['usuario'] . "</b>\n";
  6. echo "<a href='salir.php'>Cerrar sesion</a>";
  7. }else{
  8. echo "Inicia sesión <a href='loguin.php'>aqui</a>";
  9. }
  10. }else{
  11. echo
  12. <form action='loguin.php' method='post'>
  13. usuario <input type='text' name='ingreso_usuario' value=''>
  14. <input type='submit' name='procesar_ingreso' value='ingresar'>
  15. </form>
  16. ";
  17. echo "Inicia sesión <a href='loguin.php'>aqui</a> [genera un error ya que no hay post]";
  18. }
  19. ?>
  20. <hr>
  21. <p>Ver cookies de sesion</p>
  22. <?php
  23. foreach ($_COOKIE as $indice=>$str){
  24. $$indice =  $str ;
  25. echo "$indice = $str \n";
  26. }
  27. ?>
  28. <p>Ver variables de sesion</p>
  29. <?php
  30. foreach ($_SESSION as $indice=>$str){
  31. $$indice =  $str ;
  32. echo "$indice = $str <br>";
  33. }
  34. ?>

loguin.php, aqui se crean las variables de sesion (una vez que veriificas el usuario correcto, yo en el ejemplo no valido nada, solo que se haga el post)

Código PHP:
Ver original
  1. <?php
  2. session_name('MI_SESION');
  3. if(isset($_POST['procesar_ingreso'])){
  4. $ingreso_usuario = $_POST['ingreso_usuario'];
  5. }else{
  6. echo "error, no hubo post";
  7. exit();
  8. }
  9. $_SESSION['logueado'] = "si";
  10. $_SESSION['usuario'] = $ingreso_usuario;
  11. // para hacer el test deshabilitamos la redirección automática a través de headers
  12. //header('Location: sesion.php');
  13. echo "<br><a href='sesion.php'>ir al inicio</a>";
  14. ?>
  15.  
  16. <hr>
  17. <p>Ver cookies de sesion</p>
  18. <?php
  19. foreach ($_COOKIE as $indice=>$str){
  20. $$indice =  $str ;
  21. echo "$indice = $str \n";
  22. }
  23. ?>
  24. <p>Ver Variables de sesion</p>
  25. <?php
  26. foreach ($_SESSION as $indice=>$str){
  27. $$indice =  $str ;
  28. echo "$indice = $str <br>";
  29. }
  30. ?>

salir.php (el logout, cierre se sesion y expiracion de cookie de sesion)

Código PHP:
Ver original
  1. <?php
  2. session_name('MI_SESION');
  3. $_SESSION = array();
  4. if (ini_get("session.use_cookies")) {
  5. setcookie(session_name(), '', time() - 60000,
  6. $params["path"], $params["domain"],
  7. $params["secure"], $params["httponly"]
  8. );
  9. }
  10. // para hacer el test deshabilitamos la redirección automática a través de headers
  11. //header('Location: sesion.php');
  12. echo "<br><a href='sesion.php'>ir al inicio</a>";
  13. ?>
  14. <p>Ver cookies de sesion</p>
  15. <?php
  16. foreach ($_COOKIE as $indice=>$str){
  17. $$indice =  $str ;
  18. echo "$indice = $str \n";
  19. }
  20. ?>
  21. <p>Ver variables de sesion</p>
  22. <?php
  23. foreach ($_SESSION as $indice=>$str){
  24. $$indice =  $str ;
  25. echo "$indice = $str <br>";
  26. }
  27. ?>

Como verás eliminé la redireccion automática para que puedas analizarlo, y al pie de cada archivo, deje a manera de debug, que te muestre los valores actuales. para la cookie y para las variables de sesion.

Cuando entiendas bien el funcionamiento, creo que te será más fácil resolver tu problema.

Sería oportuno tambien que pidas muevan tu post al foro de php

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 25/10/2011, 17:58
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
Respuesta: Xhtml+php problema para mostrar seciones

si eso pensé pero en el foro de php no me dan solución a enbeder el PHP+ xhtml, estoy revisando los codigo y su funcionamiento gracias.
  #4 (permalink)  
Antiguo 25/10/2011, 23:09
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
Respuesta: Xhtml+php problema para mostrar seciones

Funciona correctamente:

queda de la siguiente forma:


Código PHP:
<body>
<?php
//sesion.php (es el inicio o página de acceso)
@session_name('MI_SESION');
@
session_start();
?>
    <table class="t1" align="center">
        <tr>
            <td class="td5">
                <?php
                    
if(isset($_SESSION['logueado'])){
                        if(
$_SESSION['logueado'] == "si"){
                            echo 
"Conectado Como <b>" $_SESSION['usuario'] . "</b>\n";
                            echo 
"<br>";
                            
?> <a href="salir.php">Cerrar Sesion</a> <?php
                            
}
                        else{
                            
?> <a href="salir.php">Cerrar Sesion</a> <?php
                        
}}
                    else{
                        
?> <a href="log.html">Inicia Sesión</a> <?php
                    
}
                
?>
            </td>

Última edición por arcanisgk122; 26/10/2011 a las 00:17 Razón: código actualizado

Etiquetas: php
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 03:18.