Visualizzazione dei risultati da 1 a 9 su 9

Discussione: problema session

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    196

    problema session

    ciao a tutti,ho una domanda(problema) riguardo alle session.Sto realizzando un sito in cui c'è un'are di login per gli utenti per poter accedere alle loro pagine personali.Sto gestendo il tutto con le session, quando l'utente si logga invia nick e passwd e in base al nick recupero con una query i dati dell'utente,nell'area privata l'utente può fare varie cose e per sapere cquale utente è che ha fatto un'azione passo tra le pagine tramite GET l'id dell'utente(tutto funziona se è loggato un unico utente); il mio problema è che se contemporaneamente si logga un altro utente comincia a far casini (clicco sul link ad una pagina e prende l'id dell'altro utente) oppure qunaod uno dei 2 si slogga anche l'altro nel momento in cui clicca su un link della sua area privata viene sloggato pur nn avendo cliccato su logout...
    cosa ci può essere che nn va?
    c'è una spiegazione teorica a questo problema,altrimenti provo a postare il codice della session e vedere se qualcuno mi sa aiutare...

    ciao
    PHP, ASP, Javascript

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Cosa te ne fai delle sessioni se passi l'id dell'utente in get??

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    196
    piccola rettifica,il problema mi succede quando clicco sui link "torna alla home" delle varie pagine della sezione privata e quando mi sloggo.
    il codice della session è questo

    <?php
    session_start();
    require_once('Connections/Connessione.php');

    $MM_authorizedUsers = "";
    $MM_donotCheckaccess = "true";

    // *** Restrict Access To Page: Grant or deny access to this page
    function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
    // For security, start by assuming the visitor is NOT authorized.
    $isValid = False;

    // When a visitor has logged into this site, the Session variable MM_Username set equal to their username.
    // Therefore, we know that a user is NOT logged in if that Session variable is blank.
    if (!empty($UserName)) {
    // Besides being logged in, you may restrict access to only certain users based on an ID established when they login.
    // Parse the strings into arrays.
    $arrUsers = Explode(",", $strUsers);
    $arrGroups = Explode(",", $strGroups);
    if (in_array($UserName, $arrUsers)) {
    $isValid = true;
    }
    // Or, you may restrict access to only certain users based on their username.
    if (in_array($UserGroup, $arrGroups)) {
    $isValid = true;
    }
    if (($strUsers == "") && true) {
    $isValid = true;
    }
    }
    return $isValid;
    }


    $MM_restrictGoTo = "login.php";
    if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {
    $MM_qsChar = "?";
    $MM_referrer = $_SERVER['PHP_SELF'];
    if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
    if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0)
    $MM_referrer .= "?" . $QUERY_STRING;
    $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
    header("Location: ". $MM_restrictGoTo);
    exit;
    }
    $nick = $_SESSION['MM_Username'];


    // ** Logout the current user. **
    $logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";
    if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
    $logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);
    }

    if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
    //to fully log out a visitor we need to clear the session varialbles
    session_unregister('MM_Username');
    session_unregister('MM_UserGroup');

    $logoutGoTo = "index.php";
    if ($logoutGoTo) {
    header("Location: $logoutGoTo");
    exit;
    }
    }
    ?>

    ciao
    PHP, ASP, Javascript

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    196
    quindi dovrei togliere in tutti i link tra le varie pagine della "sezione privata" la GET che passa l'id dell'utente?ma le azioni vengono associate in che modo all'utente specifico?
    PHP, ASP, Javascript

  5. #5

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    196
    ho capito come funzionano,ho guardato il file php.ini per vedere dove salvava il file di session, praticamente scrive un file quando si logga il primo utente,mentre per gli altri nn scirve nulla,come mai?in teoria dovrebbe scrivere per ogni utente che si logga no?questo può essere anche il problema per il quale quando clicco su "torna alla home" mi va alla home dell'ultimo utente che si è loggato?
    PHP, ASP, Javascript

  7. #7
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Scusa ma tu stai simulando n utenti da un unico browser?
    Perché in quel caso la sessione è sempre la stessa...

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    196
    hai ragione,nn avevo pensato a questo fatto,purtroppo nn ho 2 o più pc per poter testare come funziona online..cmq nn dovrebbero esserci problemi simili no?
    grazie per l'aiuto e il chiarimento

    ciao
    PHP, ASP, Javascript

  9. #9
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    basterebbe usare due browser

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.