Variabile di sessione è un array PHP7

nicemotion

Nuovo Utente
6 Feb 2010
17
1
3
Ciao,

Ho questo script di login tramite form dove tra le altre cose viene settata la var di sessione $_SESSION['MM_UserGroup'] tramite query :

PHP:
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['username'])) {
  $loginUsername=mysqli_real_escape_string($tao_conn, $_POST['username']);

  $password=sha1($_POST['password']);
 
 
  $MM_fldUserAuthorization = "AuthLev";
  $MM_redirectLoginSuccess = "Pub_LoginRedirect.php";
  $MM_redirectLoginFailed = "Pub_loginSorry.php";
  $MM_redirecttoReferrer = false;
  mysqli_select_db($tao_conn, $database_tao_conn);
  $LoginRS__query=sprintf("SELECT email01, Pwd, AuthLev FROM utenti WHERE email01=%s AND Pwd=%s",
  GetSQLValueString($tao_conn,$loginUsername, "text"), GetSQLValueString($tao_conn,$password, "text"));
   
  $LoginRS = mysqli_query($tao_conn,$LoginRS__query) or die(mysqli_error($tao_conn));
  $loginFoundUser = mysqli_num_rows($LoginRS);
  if ($loginFoundUser) {
    
  $loginStrGroup  = mysqli_result($LoginRS,0,'AuthLev');

    if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();}
    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;          
    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];    
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}

Quando la richiamo nelle varie pagine

PHP:
<?php echo $_SESSION['MM_UserGroup'] ; ?>

in php5 mi restituisce il valore ma in php7 restituisce "Array" con il seg errore:

Notice: Array to string conversion in ....

Come assegnare il valore a $_SESSION['MM_UserGroup'] nello script sopra per poterlo poi usare nelle varie pagine ?
 
PS: per la mysqli_result utilizzo questa funzione:

PHP:
function mysqli_result($result,$row=0,$field=0)

{


    $numrows = $result->num_rows;

  

    if ($numrows && $row <= ($numrows-1) && $row >=0){

        $result->data_seek(0);

        $result->data_seek($row);

        $resrow = (is_numeric($field)) ? mysqli_fetch_row($result) : mysqli_fetch_assoc($result);

      

        if (isset($resrow[$field])){return $resrow;}

    }

    return false;
 
PS:

PHP:
print_r($_SESSION['MM_UserGroup']);

restituisce:

Array ( [email01] => xxx@mailutente [Pwd] => xxx_pwdutente [AuthLev] => 2 )

In pratica l'intera query mentre devo assegnare il valore solo di [AuthLev]
 

Discussioni simili