【问题标题】:Session get another value when navigating thru pages PHP浏览页面 PHP 时会话获得另一个值
【发布时间】:2015-08-01 04:06:38
【问题描述】:

当我转到网页上的特定菜单时,我的会话丢失了。 在 login.php 上创建了会话,然后我被重定向到 menus.php,这是我的用户的主页。如果我进入 usuarios.php 然后选择其中一个用户,我将重定向到 ver_usuarios.php 并使用 get 方法在 url 上携带一些变量。

当我到达 ver_usuarios.php 时,如果我刷新页面,会话就会过期,它会将我踢出网页并且我没有使用 session_destroy();绝不。你可以在这里看到我的网页运行:http://santateclacentral.org/login.phpuser=alejo pass=123 转到 usuarios,然后转到每个用户,看看这里的问题是我的代码:

USUARIOS.PHP

<?php 
include("../conexion.php");
require_once('../sesion_usuarios.php');
include("../paginacion/paginator.class.php");
$query_usuarios = mysql_query("select usuarios.nick_usuario, roles.rol, miembros.imagen_miembro, usuarios.estado_usuario, usuarios.id_usuario, miembros.nombre_miembro from usuarios join roles on usuarios.id_rol = roles.id_rol join miembros on miembros.id_usuario = usuarios.id_usuario $pages->limit");

$hay = mysql_num_rows($query_usuarios);
if($hay){
    while ($datos = mysql_fetch_row($query_usuarios)) {
        # code...
        ?>

        <td class="resize"><a href="ver_usuarios.php?user=<?php echo $datos[2]?>&state=<?php echo $datos[3]?>&e=<?php echo $datos[4]?>"><img src="<?php echo $datos[2]?>" width="50px" height="50px"></a></td>
        <td class="resize"><?php echo $datos[5]?></td>
        <td class="resize"><?php echo $datos[0]?></td>
        <td><?php echo $datos[1]?></td>
        //Take a look at this , here is where i get the variables and redirect to ver_usaurios.php page 
        <td><a class="btn btn-info"  href="ver_usuarios.php?user=<?php echo $datos[2]?>&state=<?php echo $datos[3]?>&e=<?php echo $datos[4]?>">Ver</a></td>
        <?php 
        if ($datos[3] == true) {
            # code...
            ?>
                <td><a class="btn btn-success" href="activar_usuarios.php?user=<?php echo $datos[2]?>&state=<?php echo $datos[3]?>&k=<?php echo $datos[4]?>&activate=9468752130_edit" value="Ver">&nbsp;&nbsp;&nbsp;Activar&nbsp;&nbsp;&nbsp;</a></td>
            <?php
        } else{ 
            ?>
                <td><a class="btn " href="desactivar_usuarios.php?user=<?php echo $datos[2]?>&state=<?php echo $datos[3]?>&k=<?php echo $datos[4]?>&deactivate=1679854320_edit">Desactivar</a></td>
            <?php
        }
        ?>
        <!-- <td><a class="btn btn-danger" onClick="borrar(<?php echo $datos[4]?>)">Borrar</a></td> -->
        <tr></tr>                                   
        <?php
    }
}else{
    ?>
    <tr>No hay registros</tr>
    <?php
}
?>

VER_USUARIOS.PHP?user=&e=

<?php 
require("../conexion.php");
session_start();
require_once('../sesion_usuarios.php');
$query_menus_usuarios = mysql_query("SELECT m.id_menu, m.menu_url, m.nombre_menu FROM menus m join menus_usuarios mu on m.id_menu = mu.id_menu join usuarios u on mu.id_usuario = u.id_usuario where u.id_usuario = '".$_SESSION['id_usuario']."' and mu.estado = 1");
while($menus_mostrar = mysql_fetch_row($query_menus_usuarios)){
    if($menus_mostrar[2] == "Usuarios"){
        ?>                        
            <li class="active"><a href="<?php echo $menus_mostrar[1]; ?>"><?php echo $menus_mostrar[2]; ?></a></li>                
        <?php                        
        } else {
        ?>                        
            <li ><a href="<?php echo $menus_mostrar[1]; ?>"><?php echo $menus_mostrar[2]; ?></a></li>                
        <?php
    }
}
?>                        
<li class="dropdown">
<a href="#" class="active" class="dropdown-toggle" data-toggle="dropdown">Administrador<b class="caret"></b></a>
<ul class="dropdown-menu">
<?php 
if (!isset($_SESSION['login'])) {
    # code...
    ?>
        <li><a href="menus/menus.php">Login</a></li>                                
    <?php
} else {
?>
    <li class=""><a href="../menus/menus.php">Administrar</a></li>                              
    <li><a href="../cerrar.php">Cerrar Sesion</a></li>
<?php
}
?>

【问题讨论】:

  • 什么意思?你测试我给你的页面了吗?
  • 我的意思是我按照你在你的网站上说的做了,并且会话没有被破坏
  • @xNeyte 它被我毁掉了。一个关键的难题是刷新。
  • @Alejo_Blue conexion.phpp 是做什么的?
  • 这些动画过渡在尖叫“NEWBIE EXCITED DEVELOPER”。您正在制作管理系统,而不是 javascript 图形演示。我不能浏览超过 2 页,我开始感到头晕目眩。请回到地球。如果您在代码上投入的时间与在这些转换上投入的时间一样多,那么您将不会遇到会话问题。

标签: php html session


【解决方案1】:

听起来您忘记将session_start() 放在(每个)管理页面的顶部。

【讨论】:

  • session_start();有没有。所以这不是解决方案。不过谢谢-
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-01
  • 2013-01-28
  • 2017-02-01
  • 2016-12-01
  • 2012-07-08
  • 2015-03-31
相关资源
最近更新 更多