Me pregunto acerca de cómo el $_SESSION matriz de obras. Si tengo una gran cantidad de usuarios utilizando mi sitio no me es necesario establecer un subarray para cada usuario? Por ejemplo ahora mismo tengo

$_SESSION['userid'] = $userid;
$_SESSION['sessionid'] = $sessionid;
$_SESSION['ipaddress'] = $ipaddress;

pero con el fin de hacer frente con más usuarios que necesito para hacer una matriz multidimensional?

$_SESSION[$userid]['sessionid'] = $sessionid;
$_SESSION[$userid]['ipaddress'] = $ipaddress;

Es el $_SESSION global manejado por cliente o simplemente en general? Va a haber $_SESSION[‘idusuario’] set de inicio de sesión de tiro del usuario anterior y a incrementar el último usuario registrado?

  • hasta donde yo sé, la sesión es el lado del cliente, lo que significa que se almacena en el navegador. no de lado de servidor. en este caso, no debería ser un problema para tener muchos usuarios al mismo tiempo por sesión para cada usuario será creado.
  • usted está equivocado. $_SESSION se almacena en el servidor.
  • usted está confundido por el identificador de sesión lo que se almacena en el navegador la cookie para identificar la sesión actual, también podría ser llevado por la URL.
  • oops lo siento por mi mal la información. pero la sesión siendo creado por separado para cada usuario de la derecha?

2 Comentarios

  1. 46

    No. Hay una nueva $_SESSION creado para cada usuario. Todo esto es realizado por el servidor, usted no tiene que preocuparse acerca de esto. Al escribir el código, el tratamiento de la $_SESSION, como si sólo hubiera un usuario en el sitio.

    Edit: en Realidad, pensando en ello, es una muy buena pregunta. Es bueno preguntar a este tipo de preguntas, significa que está pensando seriamente en cómo el código realmente funciona. Siga preguntando estas cosas, y de conservar las pruebas. Tengo la sensación de que un día usted va a escribir algunos increíble código.

    Así que en esa nota, aquí hay algo de información de la apache sitio:

    Qué es una sesión?

    En el núcleo de la sesión de la interfaz es una tabla de pares clave /valor que se puede acceder a través del navegador de solicitudes. Estos pares se puede ajustar a cualquier cadena válida, según sea necesario por la aplicación que hace uso de la sesión.

    Mantener las sesiones en el servidor

    Apache puede ser configurado para mantener un seguimiento de por las sesiones de usuario se almacenan en un determinado servidor o grupo de servidores. Esta funcionalidad es similar a la de las sesiones disponibles en la aplicación típica de los servidores.

    Si está configurado, las sesiones de seguimiento se realiza a través de la utilización de un IDENTIFICADOR de sesión que se almacena en el interior de una cookie, o se extrae a partir de los parámetros incrustados dentro de la URL de la cadena de consulta, tal como se encuentra en un típico solicitud GET.

    Y de la PHP docs en las Sesiones:

    Soporte de sesión en PHP consiste en una forma de conservar ciertos datos a través de accesos posteriores. Esto le permite crear más aplicaciones a medida y aumentar el atractivo de su sitio web.

    Un visitante acceder a su sitio web se le asigna un identificador único, el llamado identificador de sesión. Este es almacenado en una cookie en el lado del usuario o se propaga en la dirección URL.

    La sesión de soporte le permite almacenar los datos entre las solicitudes en la variable superglobal $_SESSION matriz. Cuando un visitante accede a su sitio web, PHP comprobará automáticamente (si la sesión.auto_start se establece en 1) o en su petición (de forma explícita a través de session_start() o implícitamente a través de session_register()) si un determinado id de la sesión ha sido enviado con la solicitud. Si este es el caso, el estado de la guarda entorno se vuelve a crear.

    • Y para ellos que quieren saber de dónde son $_SESSION datos almacenados stackoverflow.com/questions/454635/…
    • En realidad, es una fantástica y refrescante ver a las personas que quieran entender su código y saber cómo se está trabajando en el interior en vez de simplemente esperar lo mejor.
    • Gracias por la preventiva cumplido! EDIT: por Lo que el session_id() son funciones como la sesión subarray nombre para cada usuario, $_SESSION[session_id][userid] pero no se ve nunca y no tener que lidiar con ella. Gracias!
    • Si usted piensa acerca de ello, es más como que hay una serie como esta: [userID]->_SESSION[] para cada usuario.
    • es allí cualquier manera de mantener todos los datos de la sesión en una sola página(ej:el archivo tiene que estar sincronizado con la sesión de detalle, si algunos sesión de destruir o nueva sesión creada se debe replicar en esto, necesito que a la lista el usuario que todos se decidiria en el sitio web en la actualidad)
    • Siempre me pareció la manera más fácil a la lista de los usuarios actuales iba a tener una tabla que actualiza su última actividad cada vez que se carga una página y simplemente consulta la tabla de la actividad en los últimos cinco o diez minutos, ya que la «actual de los usuarios». Este enfoque es MUCHO más sencillo que intentar hacer cualquier cosa con un archivo común, o peor aún de la memoria compartida.
    • estás en lo correcto, pero ¿cómo podría localizar a la persona que cierre el navegador con cierre de sesión(siendo el valor en la tabla), aunque también hemos de ejecutar el cron job para este problema ¿cómo podemos encontrar el usuario cierra el navegador?

  2. 0

    bien, después de buscar mucho y trabajando en la sesión he encontrado mi propio camino. espero que funciona muy bien para todo el mundo aquí

    esta es la consulta para la página de inicio de sesión para mis usuarios:
    aquí estoy de almacenamiento de correo electrónico de sesión desde el campo de entrada después de coincidencia de datos de mysql

    <?php
    include_once("dbcon.php");
    $que=mysqli_query($con,"select * from agents where companyemail='$email' AND 
    pass='$password' AND post != 'Owner'"); 
    $record = mysqli_fetch_assoc($que);
    $_SESSION[$email]=$email;
    header("Location:/dashboard/woresk/Dashboard_For_Agents/light/index.php? 
    &loginid=$agentid");
    ?>

    y, a continuación, en el panel de control para que los usuarios no es una opción cierre de sesión donde he utilizado este método

    <?php
    session_start();
    include_once("dbcon.php");
    $sid=$_GET['loginid'];
    $que=mysqli_query($con,"select * from agents where id='$sid'"); 
    $recorde = mysqli_fetch_assoc($que);
    $email=$recorde['companyemail'];
    unset($_SESSION[$email]); 
    header('location:/dashboard/woresk/index.php');
    ?>

    y para evitar que los usuarios entrar dashbboard si no están de inicio de sesión o en su sesión no está establecido el siguiente código funciona muy bien para mí

    <?php
    session_start();
    include_once("dbcon.php");
    $sid=$_GET['loginid'];
    $que=mysqli_query($con,"select * from agents where id='$sid'"); 
    $recorde = mysqli_fetch_assoc($que);
    $email=$recorde['companyemail'];
    if(isset($_SESSION[$email]) && isset($_SESSION['alllogout'])){
    
     }
     else if(!isset($_SESSION[$email])){
        echo 
        "<script>
          window.location.href='/dashboard/woresk/index.php'
        </script>";
      }
      else if (!isset($_SESSION['alllogout'])){
        echo 
        "<script>
          window.location.href='/dashboard/woresk/index.php'
        </script>";
      }
      ?>

    espero que esto funciona para los demás también. si cualquier pregunta, por favor hágamelo saber

    • Hey man, estás usando algunos muy viejos sql cosas – usted no debe usar mysqli_fetch_assoc – sino que se debe utilizar la clase PDO y declaraciones preparadas. leer esto: phpdelusions.net/pdo leer todo. subir de nivel!

Dejar respuesta

Please enter your comment!
Please enter your name here